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

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

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


当前回答

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

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

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

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

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

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

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

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

其他回答

星号键*将搜索光标下的单词。

[+Tab将带您到光标下的C函数的定义。(不过,这种方法并不总是有效。)

在Bash的命令行上使用Vim绑定:

    set -o vi

在其他使用readline的程序中,按Ctrl + Alt + J从Emacs绑定切换到Vim绑定。

这句话总是让我高兴起来:

:help 42

^P和^N

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

^O和^I

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

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

标志着

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

cw

更改单词-删除光标下的单词,并将您置于插入模式下键入一个新的单词。当然,这也适用于其他移动键,所以你可以做c$之类的事情来改变到行尾。

F +字符

查找当前行上字符的下一个出现位置。因此,您可以使用vft来选择当前行上下一个“t”之前的所有文本。这是另一个移动键,所以它也适用于其他命令。