我将键映射F2到刷新(:edit
)当前打开的文件。当文件已在外部更新时(在日志文件末尾添加新行),我在观看日志文件以更新屏幕时使用它。
nnoremap <silent> <F2> :edit<CR>
刷新后我想跳到文件的末尾。
如何创建:edit
同时跳转到文件末尾(快捷方式G
)的键映射?
我将键映射F2到刷新(:edit
)当前打开的文件。当文件已在外部更新时(在日志文件末尾添加新行),我在观看日志文件以更新屏幕时使用它。
nnoremap <silent> <F2> :edit<CR>
刷新后我想跳到文件的末尾。
如何创建:edit
同时跳转到文件末尾(快捷方式G
)的键映射?
将光标定位在刚刚打开(或重新打开)的文件中的惯用方法是使用命令的 - 参数(请参阅+
参考资料)。尽管通用语法允许执行任何命令,但在某些特殊情况下,通过该行上的模式匹配文本(后跟模式)或行号(后跟数字)导航到该行。如果后一种形式中省略了数字,则假定它是文件的最后一行。:edit
:help +cmd
+/
+
这样,要重新加载将光标定位在最后一行的当前文件,可以使用命令
:edit +$
或者
:edit + %
可以通过使用:e
代替:edit
并在 - 参数之前+
省略一个可选空格来缩短这些命令。
:e+$
或者
:e+ %
相应的映射将采用以下形式
:nnoremap <silent> <F2> :edit +$<CR>
和
:nnoremap <silent> <F2> :edit + %<CR>
请注意,此+
-argument 语法对于从命令行打开文件也有效,因此
$ vim + filename
也可以。
这就是我要使用的:
nnoremap <silent><F2> :edit<bar>$<CR>
您可以使用<bar>
. 此映射可以满足您的要求:
:nnoremap <silent> <F2> :edit <bar> :normal! G<enter>
normal!
使用而不是在映射/脚本中使用很重要,normal
因为先验不会考虑用户定义的映射。即使G
在这种情况下存在映射,vim 也会将G
其视为根本没有映射。
在 Vim'|'
中可用于分隔命令,就像许多 Linux/Unix 风格一样。有关使用酒吧的更多信息,请查看:help bar
例子:
:edit | normal! G
如果您希望在键映射中使用它,您可能会发现您~/.vimrc
不喜欢使用|
或的映射\|
。为了使这项工作使用等价物<bar>
。