Vim

VIM技巧收集

2015-06-30  本文已影响152人  mst7
  1. 启动vim,不加载.vimrc
    vim -u NONE -N

加载特定的.vimrc: vim -u code/vimrc.vim

  1. normal mode下的变量
    VIM vim软件的安装目录VIMRUNTIME vim程序的执行目录
    HOME 用户主目录(Win默认为C:\Users\username\,Linux默认为/home/username/)MYVIMRC 用户的第一VIMRC文件位置,为什么说是“第一”呢,请参考:version命令。

  2. 不重启vim重新加载.vimrc
    :source $MYVIMRC

  3. 关闭中文拼写检查
    :set nospell
    :set spell

  4. 统计字符数
    选中需要统计的文本,NORMAL 模式下,按g<C-g>

  5. 计算器
    INSERT 模式下,按<C-r>=,在命令栏输入表达式即可。计算的结果显示在插入光标位置。

  6. buffers
    查看buffer清单 :buffers:ls:files
    切换到指定Num的buffer Num <C-^>:buffer Num
    新建Buffer :enew
    关闭Buffer :bdelete

  7. windows
    新建水平拆分window :split [file]
    新建垂直拆分window :vsplit [file]
    关闭窗口: <C-w>c或q
    窗口间焦点切换:
    <C-w>h j k l,上下左右方向切换窗口
    <C-w>w,逆时针窗口逐步切换
    将焦点所在窗口移动到指定屏幕位置:
    <C-w>H J K L
    调整焦点所在窗口的屏占大小:
    <C-w>=,所有窗口高度一样
    <C-w>-,减小当前窗口高度
    <C-w>+, 增加当前窗口的高度
    <C-w>_,当前窗口高度最大化
    <C-w>L,所有窗口宽度一样
    <C-w><,减小当前窗口宽度
    <C-w>>,增加当前窗口宽度
    <C-w>|,当前窗口宽度最大化

  8. 在INSERT模式下粘贴文本
    <C-r>+
    参考URL:Paste in insert mode?

<C-r>{reg}命令用于粘贴VIM中的寄存器内容,{reg}是内存寄存器名字:
register description
" the default register
% the current file name
# the alternate file name
* the clipboard contents (X11: primary selection)
+ the clipboard contents
/ the last search pattern
: the last command-line
. the last inserted text
- the last small (less than a line) delete

参考URL:Pasting from Insert mode

  1. 让粘贴缩进等格式保持原样
    使用前::set paste
    使用后::set nopaste
    参考URL: Using Vim's paste mode with the system paste command

  2. 修改语法高亮
    :set syntax=markdown

  3. 不使用插件显示目录列表
    水平分屏显示目录列表::Ex[plore]
    垂直分屏显示目录列表::Ve[xplore] 推荐,实现效果类似于NERDTree

  4. VIM Help
    :help information
    <C-]> help内链接跳转
    <C-t> 返回跳转前

  5. 快捷跳转到当前编辑文件目录
    :edit %<TAB>
    :edit %:h<Tab> 当前编辑文件的所在目录的路径

  6. 选择模式跳转方向
    使用v命令进入字符选择模式,通过方向键可以选择指定区域的文本,但是如果选择了一半,发现起始位置有错,那可以在选择模式使用o命令切换选择方向。

  7. 高亮当前光标下所有单词
    在NORMAL模式下,光标移动到指定单词,输入*
    取消高亮:noh

  8. 正则表达式转义
    VIM中对正则表达式有完整的支持,尤其在搜索和替换过程中,使用正则表达式将会非常方便的完成对文本的精确匹配。
    很多正则表达式使用特殊字符标识(如反斜杠\),这就需要在搜索或替换过程中对其进行转义,以便VIM可以正常区分是VIM命令还是正则表达式,转义符与其他语言一致,使用\实现,但是如果需要转义的字符非常多,那整个搜索替换语句将会非常混乱、难以识别,这时候就需要用到整句的转义开关命令符,使用这个命令符后的所有字符均不用转义。
    转义字符:\v
    例子:%s/\vabc\aa/aba/g,转换文章所有abc\aa字符为aba
    参考URL:vim 正则表达式 很强大

  9. 当前光标复制的内容,粘贴到COMMAND MODE光标处
    正常操作:

  1. Normal Mode普通模式:yank复制内容
  2. 到COMMAND MODE下,输入<C-r>+"

快捷操作:

Command Mode命令模式:<C-r><C-w>复制当前光标处一个单词到命令行,或者<C-r><C-a>复制一个字符串。

其他技巧资料

  1. Vim使用笔记
  2. Vimcasts
  3. vim tips and tricks
上一篇下一篇

猜你喜欢

热点阅读