Vim中的管道和冒号命令

Vim中的管道和冒号命令,vim,Vim,我是一个快乐的Emacs用户。无论如何,我发现有一个字段可以让Vim更好地适应工作,这是在Linux终端或Windows CLI中,当您不想打开单独的窗口时。有一些micro Emacs发行版用于这种轻量级任务,但我仍然没有找到一个好的 对于我来说,Vim的典型用途是作为less的更强大的替代品,例如: 现在我来谈谈我的问题 首先,Vim从文件的顶部开始。我想将光标放在最后一行屏幕上,但dir | vim+L-不起作用。我想是因为我不是前指挥官。我怎样才能克服这个问题 当我完成浏览并想退出时,我

我是一个快乐的Emacs用户。无论如何,我发现有一个字段可以让Vim更好地适应工作,这是在Linux终端或Windows CLI中,当您不想打开单独的窗口时。有一些micro Emacs发行版用于这种轻量级任务,但我仍然没有找到一个好的

对于我来说,Vim的典型用途是作为less的更强大的替代品,例如:

现在我来谈谈我的问题

首先,Vim从文件的顶部开始。我想将光标放在最后一行屏幕上,但dir | vim+L-不起作用。我想是因为我不是前指挥官。我怎样才能克服这个问题

当我完成浏览并想退出时,我必须键入::q!五把钥匙,两只手在移动。对于快速输出检查来说,这真是太多了。冒号命令非常慢,因为它们需要移位。因此,我想知道是否有一种方法可以替换冒号:使用功能键,比如F2,或者Tab键。我还想换新的!具有非移位键的键,如“-=[];”\,./”等单键。这可能吗?这样做的缺点是什么

编辑
注:冒号替换我的意思是只替换每个冒号命令的:符号,这样我就可以键入q表示退出。例如,在Emacs中,可以将修改器键和Alt键指定给非标准键,或者将以前缀Ctrl-x开头的所有命令重新映射到其他键

在Linux中,您可以执行以下操作:

ls | vim +$ +'map <F2> :' +'map <F3> !' -

在Linux中,您可以执行以下操作:

ls | vim +$ +'map <F2> :' +'map <F3> !' -
在Vim中,L用于将光标放置在窗口底部

使用$command | vim-+8将光标放置在第8行

使用+$将光标放置在最后一行

如果您不喜欢:q!:

将光标放在最后可见的行上

您可以使用任意键代替:但Vim或多或少使用整个键盘。您必须明智地选择替换密钥,并在~/.vimrc中使用如下内容:

在Vim中,L用于将光标放置在窗口底部

使用$command | vim-+8将光标放置在第8行

使用+$将光标放置在最后一行

如果您不喜欢:q!:

将光标放在最后可见的行上

您可以使用任意键代替:但Vim或多或少使用整个键盘。您必须明智地选择替换密钥,并在~/.vimrc中使用如下内容:


在Ubuntu上安装Vim73时,有一个运行VIM的脚本。我在你描述的情况下使用这个。 脚本位于replace中的less.sh,安装路径为/usr/share/vim/vim73/macros/less.sh

以下是脚本,以防您的服务器上没有该脚本: script/usr/share/vim/vim73/macros/less.sh:

!/垃圾箱/垃圾箱 用less.Vim启动Vim的Shell脚本。 如果没有给出参数,请阅读stdin。 如果测试-t1;然后 如果测试$=0;然后 vim-cmd'let no_plugin_maps=1'-c'运行时!宏/less.vim'- 其他的 vim-cmd'let no_plugin_maps=1'-c'运行时!宏/less.vim'$@ fi 其他的 输出不是终端、cat参数或stdin 如果测试$=0;然后 猫 其他的 猫$@ fi fi 请注意,它正在关闭所有插件。 如果你想在你的.vimrc中做一些特殊的事情,当你以这种方式启动它时,你可以使用一个别名来启动它

别名lessv='use_less=1/usr/share/vim/vim73/macros/less.sh' 使用它: lessv一些文件 和 dir | lessv无需- 然后可以在.vimrc中将其引用为$use_less,例如,在所有常规映射之前完成。如果以正常方式启动vim,则不会出现错误,您不必使用exists$use\u less之类的测试。如果没有其他好的理由使用它,那么使用一个名为use_less的变量会很有趣

当用less.sh打开命令时,有一些帮助,只需点击h 我还在vim帮助中找到了它: 我试图在互联网上找到less.vim的代码并使用链接,但没有成功。我认为该文件是安装的一部分

编辑: 窗户: 在某些安装中的windows上,也有一个less.bat来或多或少地像less一样启动vim。如果它不是安装的一部分,我会将其粘贴到此处: 脚本C:\Program\Vim\vim73\macros\less.bat:

@回音 rem批处理文件以使用less.Vim启动Vim。 如果未给出参数,rem将读取stdin。 高田肯写的雷。 如果%1== vim-cmd让无插件映射=1-c运行时!宏/less.vim- 其他的 vim-cmd让无插件映射=1-c运行时!宏/小于0.vim%* 最后一点提示: j、 e、Ctrl+j、Ctrl+e、Ctrl+n都映射为向下滚动一行,首先将光标放置在窗口底部。 k、 y、Ctrl+k、Ctrl+y、Ctrl+p都映射为向上滚动一行,第一个将光标放置在窗口底部。
要上下移动,请使用和。

在Ubuntu上安装Vim73时,有一个运行VIM的脚本。我在你描述的情况下使用这个。 脚本是less.sh 位于替换为您的安装路径/usr/share/vim/vim73/macros/less.sh

以下是脚本,以防您的服务器上没有该脚本: script/usr/share/vim/vim73/macros/less.sh:

!/垃圾箱/垃圾箱 用less.Vim启动Vim的Shell脚本。 如果没有给出参数,请阅读stdin。 如果测试-t1;然后 如果测试$=0;然后 vim-cmd'let no_plugin_maps=1'-c'运行时!宏/less.vim'- 其他的 vim-cmd'let no_plugin_maps=1'-c'运行时!宏/less.vim'$@ fi 其他的 输出不是终端、cat参数或stdin 如果测试$=0;然后 猫 其他的 猫$@ fi fi 请注意,它正在关闭所有插件。 如果你想在你的.vimrc中做一些特殊的事情,当你以这种方式启动它时,你可以使用一个别名来启动它

别名lessv='use_less=1/usr/share/vim/vim73/macros/less.sh' 使用它: lessv一些文件 和 dir | lessv无需- 然后可以在.vimrc中将其引用为$use_less,例如,在所有常规映射之前完成。如果以正常方式启动vim,则不会出现错误,您不必使用exists$use\u less之类的测试。如果没有其他好的理由使用它,那么使用一个名为use_less的变量会很有趣

当用less.sh打开命令时,有一些帮助,只需点击h 我还在vim帮助中找到了它: 我试图在互联网上找到less.vim的代码并使用链接,但没有成功。我认为该文件是安装的一部分

编辑: 窗户: 在某些安装中的windows上,也有一个less.bat来或多或少地像less一样启动vim。如果它不是安装的一部分,我会将其粘贴到此处: 脚本C:\Program\Vim\vim73\macros\less.bat:

@回音 rem批处理文件以使用less.Vim启动Vim。 如果未给出参数,rem将读取stdin。 高田肯写的雷。 如果%1== vim-cmd让无插件映射=1-c运行时!宏/less.vim- 其他的 vim-cmd让无插件映射=1-c运行时!宏/小于0.vim%* 最后一点提示: j、 e、Ctrl+j、Ctrl+e、Ctrl+n都映射为向下滚动一行,首先将光标放置在窗口底部。 k、 y、Ctrl+k、Ctrl+y、Ctrl+p都映射为向上滚动一行,第一个将光标放置在窗口底部。
要上下移动,请使用和。

less非常类似Vim。在使用了大约两年之后,我想我可以升级到Vim。我不需要转到命令输出的最后一行,所以+$不能解决它,就像没有管道一样。相反,我想将光标移动到最后一个可见的行,如L,以便再次使用箭头可以查看输出的其余部分。+[num]的问题是我不知道最后一个可见的行号是什么。我关于冒号的想法更离谱。我只想替换:for every冒号命令,以便编写类似q!的东西@antonio我的vim启动速度比less慢得多。也许我的插件太多了。我不知道你的维姆怎么样了。谢谢@肯特:我也是。这并不是一个很好的延迟,也是因为,在发送命令时,我正在开始长时间的读取,而Emacs,我的自然位置,会更慢。也许这里的极客们可以给你一些建议。less很像Vim。在使用了大约两年之后,我想我可以升级到Vim。我不需要转到命令输出的最后一行,所以+$不能解决它,就像没有管道一样。相反,我想将光标移动到最后一个可见的行,如L,以便再次使用箭头可以查看输出的其余部分。+[num]的问题是我不知道最后一个可见的行号是什么。我关于冒号的想法更离谱。我只想替换:for every冒号命令,以便编写类似q!的东西@antonio我的vim启动速度比less慢得多。也许我的插件太多了。我不知道你的维姆怎么样了。谢谢@肯特:我也是。这并不是一个很好的延迟,也是因为,在发送命令时,我正在开始长时间的读取,而Emacs,我的自然位置,会更慢。也许这里的极客们可以提供一些提示。我编辑了“我的问题”以澄清冒号替换的想法。@antonio:好的-你可以使用map命令执行任何键映射。我编辑了“我的问题”以澄清冒号替换的想法。@antonio:好的-你可以使用map命令执行任何键映射。不是直接的回答,我真的不明白你们想解决什么问题,但你们试过vifm吗?它是一个在终端/控制台环境下工作的优秀文件管理器。@ErcanErden:我试图用一个键字符替换冒号,例如F2。我的意思是为每个冒号命令只替换:符号,这样我就可以键入q作为quit。vifm看起来不错。谢谢,我会试试的。无论如何,它与替换冒号字符无关。GNU Emacs也可以在终端/控制台窗口中愉快地工作,使用-nw选项。dir | emacs-nw给出错误emacs:标准输入不是tty;我无法使用shift+箭头键选择CUA模式的线路。不是直接答案,a
我真的不明白你们想解决什么问题,但你们试过vifm吗?它是一个在终端/控制台环境下工作的优秀文件管理器。@ErcanErden:我试图用一个键字符替换冒号,例如F2。我的意思是为每个冒号命令只替换:符号,这样我就可以键入q作为quit。vifm看起来不错。谢谢,我会试试的。无论如何,它与替换冒号字符无关。GNU Emacs也可以在终端/控制台窗口中愉快地工作,使用-nw选项。dir | emacs-nw给出错误emacs:标准输入不是tty;我无法使用shift+箭头键选择CUA模式的线路。+1谢谢。我需要研究这个脚本,并可能在M$Windows上复制它。我认为,与less相比,没有插件映射能够解决命令vim的缓慢问题。在Windows中,我的文件夹c:\Program Files x86\vim\vim73\macros`只有一个less.sh`和一个less.vim文件。奇怪的是,没有人花时间将.sh转换成.bat。@antonio:我添加了less.bat脚本。+1谢谢。我需要研究这个脚本,并可能在M$Windows上复制它。我认为,与less相比,没有插件映射能够解决命令vim的缓慢问题。在Windows中,我的文件夹c:\Program Files x86\vim\vim73\macros`只有一个less.sh`和一个less.vim文件。奇怪的是,没有人花时间将.sh转换成.bat。@antonio:我添加了less.bat脚本。
nnoremap <F2> :q!<CR>
$ command | vim - +'norm L'
nnoremap <F2> :