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

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

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


当前回答

^P和^N

完成上一个(^P)或下一个(^N)文本。

^O和^I

转到前一个(^O -“O”为旧)位置或下一个(^I -“I”靠近“O”)位置。

当您执行搜索、编辑文件等时,您可以通过这些“跳转”向前和向后导航。

标志着

按ma (m-标记,a -标记的名称)。稍后要返回位置,键入' a '。

其他回答

我希望我能早点知道基本的视觉块模式。即使你不使用Vim做其他的事情,在Vim中打开一个文件仅仅是为了一些块操作也可以节省大量的时间。我很确定我在手动做这种事情上浪费了大量的时间。

我发现一些特别有用的例子,比如始终如一地重构符号常量名列表:

进入可视块模式(我在Windows上用Ctrl + Q代替Ctrl + V)

移动光标以突出显示所需的块。

然后,我无论文本和按Esc有文本插入前面的块上的每一行。

使用A而不是I将文本插入到每行的块之后。

此外,简单地用~切换视觉选择的大小写可以节省大量时间。

还有简单地删除列,当然是用d。

:shell从Vim启动shell控制台。例如,当您想在不退出Vim的情况下测试一个脚本时,它很有用。当你完成shell控制台时,只需点击^d,然后你回到Vim和你编辑的文件。

Gi切换到插入模式,将光标放置在先前的相同位置。

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

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