我映射了键 F2 以刷新(:edit
)当前打开的文件。当我在外面更新文件时(日志文件末尾添加了新行),我在观看日志文件时更新屏幕时使用此功能。
nnoremap <silent> <F2> :edit<CR>
我想在刷新后跳转到文件的末尾。
如何创建:edit
并同时跳转到文件末尾(快捷G
)的键映射?
答案 0 :(得分:5)
将光标定位在刚刚打开(或重新打开)的文件中的惯用方法
是使用+
命令的:edit
- 参数(参见:help +cmd
)。
虽然一般语法允许执行任何命令,但有一些特殊之处
通过与该行上的文本匹配的模式导航到某一行的情况
(+/
后跟模式),或行号(+
后跟
数)。如果在后一种形式中省略了数字,则假定为
文件的最后一行。
以这种方式,重新加载当前文件,将光标定位在最后 一行,可以使用命令
:edit +$
或
:edit + %
可以使用:e
代替:edit
来缩短这些命令
在+
- 参数之前省略一个可选空格。
:e+$
或
:e+ %
相应的映射采用
形式:nnoremap <silent> <F2> :edit +$<CR>
和
:nnoremap <silent> <F2> :edit + %<CR>
请注意,此+
- 参数语法对于从中打开文件也有效
命令行,所以
$ vim + filename
也可以。
答案 1 :(得分:4)
这是我使用的:
nnoremap <silent><F2> :edit<bar>$<CR>
答案 2 :(得分:2)
:nnoremap <silent> <F2> :edit<CR>:norm! G<CR>
或许更好的方法是使用:$
命令转到文件的末尾:
:nnoremap <silent> <F2> :edit<CR>:$<CR>
答案 3 :(得分:2)
您可以使用<bar>
在地图中链接命令。这种映射可以满足您的需求:
:nnoremap <silent> <F2> :edit <bar> :normal! G<enter>
在映射/脚本中使用normal!
而不是normal
非常重要,因为先前不会考虑用户定义的映射。即使在这种情况下存在G
的映射,vim也会将G
视为根本没有映射。
答案 4 :(得分:0)
在Vim '|'
中可以用来分离命令,就像许多Linux / Unix版本一样。有关使用栏的更多信息,请查看:help bar
示例:
:edit | normal! G
如果您希望在键映射中使用此功能您可能会发现~/.vimrc
不喜欢使用|
或\|
的地图。为了完成这项工作,请使用等效的<bar>
。