Vim 常用插件和键位映射配置

  1. VundleVundle 是一个 Vim 的插件管理工具,它使得安装插件不过是在 .vimrc 文件中增加一行描述那么简单。Vundle 吸引我的最重要的原因是让我可以将插件和其对应的配置(如键位映射)写在一起,这样当要删除某个插件时,也能很方便地将对应的配置删除。

    比如下面的 .vimrc 片段中,Bundle 语句告诉了 Vundle 要安装的插件名,而我将每个插件的配置写在了相应的 Bundle 的下面。这样当我要删除 Lokaltog/vim-easymotion 插件时,就可以很方便地将其对应的配置 let g:EasyMotion_leader_key = 'f' 删除,避免了因为插件描述和其配置分隔两处造成的不同步现象。

    Bundle 'Lokaltog/vim-easymotion'
    let g:EasyMotion_leader_key = 'f'
    
    Bundle 'bling/vim-airline'
    let g:airline_left_sep = ''
    let g:airline_right_sep = ''
    
  2. Easymotionf<char> 可以实现定位到一行中的某个字符,如 fa 会定位到当前光标到行末出现的第一个 "a"。然而如果存在多个 "a",就得通过 f<number>a 来完成定位。而使用 Easymotion 后,只需要敲击 <leader><leader>fa,则该行及该行以下所有的 "a" 都将被高亮并标记序号,此时再按相应的序号即可定位到指定的 "a"。

    <leader><leader> 是 Easymotion 默认的引导键,也可以自定义。比如我将其定义为 "f",这样用 "f" 定位字符只需要按 ff<char> 即可,非常方便。

    Easymotion 不仅支持 f,还支持其它定位功能键,如 wt。不过我 99% 的时间都只用其和 "f" 来配合。

  3. AirlineAirline 和 Powerline 类似,都是在 Vim 底部显示一个很好看的状态条,可以自定义状态条中的显示项目。不同的是 Airline 更加轻量,而且支持一些特殊插件的状态显示。

  4. The NERD treeThe NERD tree 是 Vim 中的资源管理器,它是我最常用的插件之一。The NERD tree 能够查看文件夹下文件列表(包括标记文件类型状态等),执行复制、移动和删除文件(夹)等操作。

    我将 Shift + m 映射为切换 The NERD tree 窗口(map <S-m> <plug>NERDTreeTabsToggle<CR>)。

  5. SyntasticSyntastic 是一个语法检查工具,它通过外部语法检查器来校验代码,并将结果显示在 Vim 的状态栏中。Syntastic 是一个神级的插件,它可以极大地减少编码出错的概率,对于脚本语言开发者来说绝对是一个福音。

    对我而言,Syntastic 最大的作用就是校验 JavaScript 代码。我通过配置 Syntastic 使用代码质量检查工具 JSHint 来检查代码错误,同时控制代码质量。

  6. bufexplorerbufexplorer 可以加快切换 buffer 的速度。我通过 noremap <silent> <CR> :BufExplorer<CR> 将回车键映射为显示 buffer 列表,同时在 buffer 列表中还可以使用回车键选择想要编辑的 buffer,非常方便。

  7. NERDtree + ack.vim这个插件的名字很直白,就是 The NERD tree 和 ack 两个插件的合体。这个插件为 The NERD tree 的文件菜单中加入了搜索功能,可以实现搜索整个文件夹,不用再单独调用 grep 之类的命令了。

  8. vim-multiple-cursorsSublime Text 支持多个光标选择功能,在重构时非常有用。这个插件将 Sublime Text 中的这个邪恶功能引入了 Vim。想要修改变量名时,只需要将光标放在变量名内,然后多次敲击 Ctrl + n,即可将多个同名变量选中,此时再按 s 就能同时将这些变量重命名了。

  9. CommentaryCommentary 可以帮你注释代码。只需要选中要注释的内容,然后敲击 gcc 即可将这段内容注释(Commentary 会根据当前的 filetype 使用不同的注释符号),再次敲击 gcc 即可还原注释。我做了如下映射:

    nmap <BS> gcc
    vmap <BS> gc
    

    即在 normal 模式下,敲击退格键可以注释当前行,在 visual 模式下,敲击退格键可以注释选中的内容。平时无聊时,我就会不停地按退格键来注释/还原注释,还是挺能消磨时间的 :P。

  10. vim-expand-region这个插件用来扩展选择的内容。比方说当前光标在一对双引号中,双引号包含在一对括号中,此时敲击 + 可以选中双引号中的内容,再敲击 + 可以选中括号中的内容。我将其绑定为最大的空格键以显示我对这个插件的虔诚。

键位映射

每个 Vim 使用者都有自己的键位映射,通过映射键位可以在一些小的地方大大提高 Vim 的使用效率。下面列举几个我的映射配置。

  1. 将分号和冒号互换

    nnoremap ; :
    nnoremap : ;
    

    这样输入 :w 这样的命令时可以就少敲一个键了。

  2. 使用左右光标键切换 buffer

    noremap <silent> <Left> :bp<CR>
    noremap <silent> <Right> :bn<CR>
    
  3. 使用 \ 键打开当前编辑的文件

    nnoremap \ :!open <C-R>%<CR><CR>
    
  4. 粘贴时不置换“剪贴板”

    xnoremap p pgvy
    

    我经常复制一段内容,在 visual 模式下选中一段文本并粘贴来实现替换,此时“剪贴板”中的内容会被替换成被删掉的文本,如果想粘贴第二次就很不方便了。这个映射解决了这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值