我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:
Zz, zt, zb -位置光标在中间,顶部或底部的屏幕
还有什么其他有用或优雅的命令是你希望很久以前就学会的?
我一直在Vim中学习新的命令,但我相信每个人都偶尔会学习一些新东西。我最近才知道:
Zz, zt, zb -位置光标在中间,顶部或底部的屏幕
还有什么其他有用或优雅的命令是你希望很久以前就学会的?
当前回答
我很惊讶没有人提到Vim的窗口支持。我几乎每次打开Vim都会使用Ctrl + W, S。
其他回答
我经常创建用于编辑任务的函数,并将它们存储在.vimrc文件中,这样我就可以再次找到它们。
例如,读取已转换为单行的.NET调用栈:
function! FixCallStacks()
:%s;\[NLN\];\r;g
:%s;\[TAB\];\t;g
endfunction
我的Vim脑库中最近添加的一些内容:
^wi:通过分割窗口跳转到光标下的标签。 cib/ cib:分别更改当前括号()或大括号{}集合内的文本。 :set listchars=tab:>-,trail:_ list:显示不同于其他空格的制表符/尾随空格。它对Python编码有很大帮助。
在我们的软件商店中,变量声明需要排序。在我们使用的语言中,多个变量可以出现在同一行上。
new var1,var2,var3,etc
这是一个真正的痛苦,通过和视觉上尝试排序每个变量。在Vim中,块突出显示和排序命令是我的朋友:
将光标移动到要排序的第一个变量。 发出v命令进入可视模式。 将光标移动到最后一个要排序的变量的末尾(在我的例子中,我输入$到行末尾)。 执行!sort命令告诉Vim对突出显示的文本进行排序。
只有在底层系统上存在'sort'命令时,这才会起作用。
: % s /搜索/替换,
您可以使用除/(斜杠)以外的其他字符分隔模式以进行替换。这样就不必转义文件路径的斜杠。
您可以使用一整套命令来更改括号/圆括号/引号/标记内的文本。这对于避免寻找群组的起点和终点非常有用。试试ci(, ci{, ci<, ci", ci', ct这取决于你想要改变的对象类型。而ca(, ca{,…变体也会删除括号/引号。
容易记住:change inside a bracasted statement /更改一个括号内语句。