我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:
Zz, zt, zb -位置光标在中间,顶部或底部的屏幕
还有什么其他有用或优雅的命令是你希望很久以前就学会的?
我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:
Zz, zt, zb -位置光标在中间,顶部或底部的屏幕
还有什么其他有用或优雅的命令是你希望很久以前就学会的?
当前回答
我很惊讶没有人提到Vim的窗口支持。我几乎每次打开Vim都会使用Ctrl + W, S。
其他回答
我希望我能早点知道基本的视觉块模式。即使你不使用Vim做其他的事情,在Vim中打开一个文件仅仅是为了一些块操作也可以节省大量的时间。我很确定我在手动做这种事情上浪费了大量的时间。
我发现一些特别有用的例子,比如始终如一地重构符号常量名列表:
进入可视块模式(我在Windows上用Ctrl + Q代替Ctrl + V)
移动光标以突出显示所需的块。
然后,我无论文本和按Esc有文本插入前面的块上的每一行。
使用A而不是I将文本插入到每行的块之后。
此外,简单地用~切换视觉选择的大小写可以节省大量时间。
还有简单地删除列,当然是用d。
cw
更改单词-删除光标下的单词,并将您置于插入模式下键入一个新的单词。当然,这也适用于其他移动键,所以你可以做c$之类的事情来改变到行尾。
F +字符
查找当前行上字符的下一个出现位置。因此,您可以使用vft来选择当前行上下一个“t”之前的所有文本。这是另一个移动键,所以它也适用于其他命令。
我刚刚在浏览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页面。
^y将复制光标上方的字符。
:b[缓冲区名称的任何部分]来切换缓冲区。因此,如果你有两个缓冲区," someotherfile1 .txt"和"someotherfile2.txt",你可以切换到第二个,只需输入":b 2.t<enter>"。它还支持制表符补全,尽管这不是必需的。
说到制表符补全,设置:set wildmode=full wildmenu也非常有用。它为命令模式提供了完全的选项卡补全功能,在使用它时还提供了非常有用的ncurses风格菜单,其中包含所有可能的匹配。