我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:
Zz, zt, zb -位置光标在中间,顶部或底部的屏幕
还有什么其他有用或优雅的命令是你希望很久以前就学会的?
我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:
Zz, zt, zb -位置光标在中间,顶部或底部的屏幕
还有什么其他有用或优雅的命令是你希望很久以前就学会的?
当前回答
Gv启动可视模式并自动选择您之前选择的内容。
其他回答
我经常创建用于编辑任务的函数,并将它们存储在.vimrc文件中,这样我就可以再次找到它们。
例如,读取已转换为单行的.NET调用栈:
function! FixCallStacks()
:%s;\[NLN\];\r;g
:%s;\[TAB\];\t;g
endfunction
ma
move cursor down
:'a,.!program
这将获取从您设置的a标记(ma)到当前行(.)之间的所有文本,通过程序运行它,并用结果替换标记区域的内容。您甚至可以使用它来查看目录的内容(例如),通过创建一个空行,然后将光标放在该行上,
:.!ls
哦,你可以像这样为a-z(即ma)设置标记,以及
'a
会跳到你标记为"a "的位置
/向前搜索,和?重复向后搜索,而不需要补充搜索模式。
Groovy的东西。Vi被严重低估了。一旦你掌握了它的窍门,你就再也不想使用IDE提供的编辑器了。
您可以使用一整套命令来更改括号/圆括号/引号/标记内的文本。这对于避免寻找群组的起点和终点非常有用。试试ci(, ci{, ci<, ci", ci', ct这取决于你想要改变的对象类型。而ca(, ca{,…变体也会删除括号/引号。
容易记住:change inside a bracasted statement /更改一个括号内语句。
:x #(Save and Quit a File)
与:wq或ZZ相同
输入行号和gg将转到该行。