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

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

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


当前回答

我刚刚在浏览Vim帮助时发现了这个:

:help index

这将把您带到一个单独的(可搜索的!)页面,其中包含所有模式的所有命令。

所以,如果你知道你要记住/学习的命令是从某个按键开始或涉及到某个按键,你可以搜索并浏览所有的可能性。或者你可以浏览你感兴趣的模式,看看/学习编辑的可能性。

我都数不清有多少次我只是按Ctrl + R或者其他键,然后得到了第一个东西,当然这不是你想要的。在我看来,这比:helpgrep好多了。

然后进入。vimrc:

nnoremap <silent> <F1> :help normal-index<CR>
inoremap <silent> <F1> <C-O>:help insert-index<CR>

:help仍然会让你进入默认的F1页面。

其他回答

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

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

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

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

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

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

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

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

Gv启动可视模式并自动选择您之前选择的内容。

对于强制Vim配置,请查看https://github.com/jmcantrell/dotfiles-vim

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

:help 42

我最近学到的令人惊叹的技巧是一种进行复杂搜索和替换的方法。在过去,我经常有一个非常复杂的regexp来进行替换,但它不起作用。有一个更好的方法:

:set incsearch             " I have this in .vimrc
/my complicated regexp     " Highlighted as you enter characters
:%s//replace with this/    " You don't have to type it again

这里的“技巧”(找不到更好的词)是使用搜索来创建regexp(在输入字符时'incsearch'突出显示它),然后在替换中使用空模式:空模式默认为最后一个搜索模式。

例子:

/blue\(\d\+\)
:%s//red\1/

等价于:

:%s/blue\(\d\+\)/red\1/

See:

:help 'incsearch'
:help :substitute