人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。

然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。


当前回答

Vim将打开一个URL,例如

vim http://stackoverflow.com/

当你需要查找页面的源代码以供参考时,这很好。

其他回答

从十六进制值输入字符(插入模式):

<C-Q>x[type the hexadecimal byte]

这里有些不明显的地方。如果你的$HOME中有很多自定义插件/扩展,你需要从su/sudo/。。。有时,这可能是有用的。

在~/.bashrc中:

export VIMINIT=“:so$HOME/.vimrc”

在~/.vimrc中:

如果$HOME=='/root'如果$USER=='root'如果是目录('/home/your_typeualusername')let rtuser='your_typeal_user'elseif是目录('/home/your_other_username')let rtuser='your_other_username'结束符其他的let rtuser=$USER结束符让&runtimepath=替换(&runtimepath,$HOME,'/HOME/'.rutter,'g')结束符

它将允许您的本地插件加载-无论您使用何种方式更改用户。

您可能还想将*.swp文件从当前路径中取出,并放入~/vimtmp(这将放入.vimrc中):

如果isdirectory(展开('~/vimtmp'))调用mkdir(展开('~/vimtmp'))结束符如果是目录(展开('~/vimtmp'))设置目录=~/vimtmp其他的设置目录=/var/tmp、/tmp结束符

此外,我使用一些映射来简化编辑-使ctrl+s可以像escape和ctrl+h/l那样切换选项卡:

inoremap<C-s><ESC>vnoremap<C-s><ESC>noremap<C-l>gtnoremap<C-h>gT

在插入模式下,Ctrl-n将根据打开缓冲区中的所有单词自动完成您键入的任何单词。如果有多个匹配项,它将为您提供一个可能的单词列表,您可以使用ctrl-n和ctrl-p进行循环。

我使用vim进行几乎所有的文本编辑,所以我经常使用复制和粘贴。问题是默认情况下vim经常会通过粘贴扭曲导入的文本。阻止这种情况的方法是使用

:set paste

在粘贴数据之前。这将使它不致混乱。

注意,您必须发出:set nopaste以恢复自动缩进。粘贴预格式化文本的替代方法是剪贴板寄存器(*和+)和:r!cat(您必须用^D结束粘贴的片段)。

打开高对比度配色方案有时也很有用。这可以通过

:color blue

我注意到它不适用于我使用的所有版本的vim,但它适用于大多数版本。

想查看您的:命令历史记录吗?

q:

然后浏览、编辑,最后执行命令。

曾经对两个文件进行过类似的更改,并在它们之间来回切换吗?(例如,源文件和头文件?)

:set hidden
:map <TAB> :e#<CR>

然后在这些文件之间来回切换。