人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。
人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。
当前回答
:sp%:h-目录列表/文件选择器,使用当前文件的目录
(属于rampion的cd提示下的评论,但我还没有评论权限)
其他回答
我喜欢使用“sudobash”,我的系统管理员讨厌这样。他锁定了“sudo”,因此它只能与少数命令(ls、chmod、chown、vi等)一起使用,但无论如何我都能使用vim获得根shell:
bash$ sudo vi +'silent !bash' +q
Password: ******
root#
:%TOhtml
创建当前文件的html呈现。
键入==将根据上面的行更正当前行的缩进。
实际上,您可以在任何移动命令后执行一个=符号={移动}
例如,可以使用在匹配大括号之间移动的%移动。将光标放在以下代码中的{上:
if (thisA == that) {
//not indented
if (some == other) {
x = y;
}
}
然后按=%立即获得:
if (thisA == that) {
//not indented
if (some == other) {
x = y;
}
}
或者,您可以在代码块中执行=a{,而不是将自己定位在{字符上。
在复制和粘贴到stackoverflow之前:
:retab 1
:% s/^I/ /g
:% s/^/ /
现在复制并粘贴代码。
根据意见要求:
表1。这会将选项卡大小设置为1。但它也会遍历代码并添加额外的制表符和空格,以便格式化不会移动任何实际文本(即文本在ratab之后看起来相同)。
%s/^I//g:请注意,^I是单击制表符的结果。这将搜索所有制表符并用一个空格替换它们。由于我们刚刚进行了重新标记,这不应导致格式更改,但由于将标签放入网站是一触即发的,因此最好将其删除。
%s/^//:用四个空格替换行首。由于实际上不能用任何东西替换行的开头,所以它在行的开头插入四个空格(SO格式需要这样做才能使代码突出)。
sudo write的变化:
插入.vimrc
cmap w!! w !sudo tee % >/dev/null
重新加载vim后,您可以将“sudo save”保存为
:w!!