我将键映射F2到refresh(:edit)当前打开的文件.当我在外面更新文件时(日志文件末尾添加了新行),我在观看日志文件时使用此功能来更新屏幕.
nnoremap <silent> <F2> :edit<CR>
Run Code Online (Sandbox Code Playgroud)
我想在刷新后跳转到文件的末尾.
如何创建键映射,同时执行:edit并跳转到文件末尾(快捷方式G)?
将光标定位在刚刚打开(或重新打开)的文件中的惯用方法是使用命令的+-argument :edit(请参阅参考资料:help +cmd).虽然一般语法允许执行任何命令,但是有一些特殊情况可以通过模式匹配该行上的文本(+/后跟模式)或行号(+后跟数字)导航到某一行.如果在后一种形式中省略了该数字,则假定它是该文件的最后一行.
以这种方式,要重新加载当前文件,将光标定位在最后一行,可以使用该命令
:edit +$
Run Code Online (Sandbox Code Playgroud)
要么
:edit + %
Run Code Online (Sandbox Code Playgroud)
通过在-argument 之前使用:e而不是遗漏:edit可选空格,可以缩短这些命令+.
:e+$
Run Code Online (Sandbox Code Playgroud)
要么
:e+ %
Run Code Online (Sandbox Code Playgroud)
相应的映射将采用该形式
:nnoremap <silent> <F2> :edit +$<CR>
Run Code Online (Sandbox Code Playgroud)
和
:nnoremap <silent> <F2> :edit + %<CR>
Run Code Online (Sandbox Code Playgroud)
请注意,此+-argument语法对于从命令行打开文件也有效,因此
$ vim + filename
Run Code Online (Sandbox Code Playgroud)
也有效.