我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:
Zz, zt, zb -位置光标在中间,顶部或底部的屏幕
还有什么其他有用或优雅的命令是你希望很久以前就学会的?
我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:
Zz, zt, zb -位置光标在中间,顶部或底部的屏幕
还有什么其他有用或优雅的命令是你希望很久以前就学会的?
当前回答
我最近学到的令人惊叹的技巧是一种进行复杂搜索和替换的方法。在过去,我经常有一个非常复杂的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
其他回答
ZZ(工作方式:wq)
关于光标的位置:我发现光标总是停留在屏幕中间是很酷的
set scrolloff=9999
Q <字母> -记录一个宏。
and
@<相同字母> -回放。
这些是到目前为止在Vim中最有用的命令,因为你可以让计算机为你做很多工作,你甚至不需要写一个程序或任何东西。
我很惊讶没有人提到Vim的窗口支持。我几乎每次打开Vim都会使用Ctrl + W, S。
^P和^N
完成上一个(^P)或下一个(^N)文本。
^O和^I
转到前一个(^O -“O”为旧)位置或下一个(^I -“I”靠近“O”)位置。
当您执行搜索、编辑文件等时,您可以通过这些“跳转”向前和向后导航。
标志着
按ma (m-标记,a -标记的名称)。稍后要返回位置,键入' a '。
我的Vim脑库中最近添加的一些内容:
^wi:通过分割窗口跳转到光标下的标签。 cib/ cib:分别更改当前括号()或大括号{}集合内的文本。 :set listchars=tab:>-,trail:_ list:显示不同于其他空格的制表符/尾随空格。它对Python编码有很大帮助。