我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:

Zz, zt, zb -位置光标在中间,顶部或底部的屏幕

还有什么其他有用或优雅的命令是你希望很久以前就学会的?


当前回答

Q <字母> -记录一个宏。

and

@<相同字母> -回放。

这些是到目前为止在Vim中最有用的命令,因为你可以让计算机为你做很多工作,你甚至不需要写一个程序或任何东西。

其他回答

:b[缓冲区名称的任何部分]来切换缓冲区。因此,如果你有两个缓冲区," someotherfile1 .txt"和"someotherfile2.txt",你可以切换到第二个,只需输入":b 2.t<enter>"。它还支持制表符补全,尽管这不是必需的。

说到制表符补全,设置:set wildmode=full wildmenu也非常有用。它为命令模式提供了完全的选项卡补全功能,在使用它时还提供了非常有用的ncurses风格菜单,其中包含所有可能的匹配。

在我们的软件商店中,变量声明需要排序。在我们使用的语言中,多个变量可以出现在同一行上。

new var1,var2,var3,etc

这是一个真正的痛苦,通过和视觉上尝试排序每个变量。在Vim中,块突出显示和排序命令是我的朋友:

将光标移动到要排序的第一个变量。 发出v命令进入可视模式。 将光标移动到最后一个要排序的变量的末尾(在我的例子中,我输入$到行末尾)。 执行!sort命令告诉Vim对突出显示的文本进行排序。

只有在底层系统上存在'sort'命令时,这才会起作用。

使用选项卡打开多个文件

:tabe filepath

在打开的文件之间导航

gt and gT or :tabn and :tabp

保存打开的会话,以便稍后可以返回打开的文件列表

:mksession session_file_name.vim

打开已创建的会话

vim -S session_file_name.vim

立即关闭所有文件

:qa

这是我最近学到的另一个命令

autocmd

它允许你在一个事件上运行命令,所以你可以在保存文件时使用如下命令:

:autocmd BufWritePost *.cpp :make

set confirm允许你优雅地用:q退出Vim。您不需要使用ZZ或其他盲目保存或丢弃所有更改的笨拙机制。

输入行号和gg将转到该行。