Vim:如何创建键映射到:编辑并跳转到最后一行?

ste*_*anB 2 vim keymapping

我将键映射F2到refresh(:edit)当前打开的文件.当我在外面更新文件时(日志文件末尾添加了新行),我在观看日志文件时使用此功能来更新屏幕.

nnoremap <silent> <F2> :edit<CR>
Run Code Online (Sandbox Code Playgroud)

我想在刷新后跳转到文件的末尾.

如何创建键映射,同时执行:edit并跳转到文件末尾(快捷方式G)?

ib.*_*ib. 5

将光标定位在刚刚打开(或重新打开)的文件中的惯用方法是使用命令的+-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)

也有效.