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

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

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


当前回答

我很惊讶没有人提到Vim的窗口支持。我几乎每次打开Vim都会使用Ctrl + W, S。

其他回答

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

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

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

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

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

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

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

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

^X-F使用当前目录中的文件名完成。不再从终端复制/粘贴或痛苦的双重检查。

^X-P使用当前文件中的单词完成

:set scrollbind强制一个缓冲区与另一个缓冲区一起滚动。例如,把你的窗户分成两个垂直的窗格。在每个文件中加载一个文件(可能是同一文件的不同版本)。Do:设置每个scrollbind。现在,当你滚动其中一个窗格时,两个窗格将一起滚动。比较文件的理想选择。

使用选项卡打开多个文件

: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

我很惊讶没有人提到Vim的窗口支持。我几乎每次打开Vim都会使用Ctrl + W, S。

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