Vim 常用插件和键位映射配置
来源:互联网 发布:网站域名和空间 编辑:程序博客网 时间:2024/05/05 21:44
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 = ''
Easymotion
f<char>
可以实现定位到一行中的某个字符,如fa
会定位到当前光标到行末出现的第一个 "a"。然而如果存在多个 "a",就得通过f<number>a
来完成定位。而使用 Easymotion 后,只需要敲击<leader><leader>fa
,则该行及该行以下所有的 "a" 都将被高亮并标记序号,此时再按相应的序号即可定位到指定的 "a"。<leader><leader>
是 Easymotion 默认的引导键,也可以自定义。比如我将其定义为 "f",这样用 "f" 定位字符只需要按ff<char>
即可,非常方便。Easymotion 不仅支持
f
,还支持其它定位功能键,如w
、t
。不过我 99% 的时间都只用其和 "f" 来配合。AirlineAirline 和 Powerline 类似,都是在 Vim 底部显示一个很好看的状态条,可以自定义状态条中的显示项目。不同的是 Airline 更加轻量,而且支持一些特殊插件的状态显示。
The NERD treeThe NERD tree 是 Vim 中的资源管理器,它是我最常用的插件之一。The NERD tree 能够查看文件夹下文件列表(包括标记文件类型状态等),执行复制、移动和删除文件(夹)等操作。
我将 Shift + m 映射为切换 The NERD tree 窗口(
map <S-m> <plug>NERDTreeTabsToggle<CR>
)。SyntasticSyntastic 是一个语法检查工具,它通过外部语法检查器来校验代码,并将结果显示在 Vim 的状态栏中。Syntastic 是一个神级的插件,它可以极大地减少编码出错的概率,对于脚本语言开发者来说绝对是一个福音。
对我而言,Syntastic 最大的作用就是校验 JavaScript 代码。我通过配置 Syntastic 使用代码质量检查工具 JSHint 来检查代码错误,同时控制代码质量。
bufexplorerbufexplorer 可以加快切换 buffer 的速度。我通过
noremap <silent> <CR> :BufExplorer<CR>
将回车键映射为显示 buffer 列表,同时在 buffer 列表中还可以使用回车键选择想要编辑的 buffer,非常方便。NERDtree + ack.vim这个插件的名字很直白,就是 The NERD tree 和ack 两个插件的合体。这个插件为 The NERD tree 的文件菜单中加入了搜索功能,可以实现搜索整个文件夹,不用再单独调用 grep 之类的命令了。
vim-multiple-cursorsSublime Text 支持多个光标选择功能,在重构时非常有用。这个插件将 Sublime Text 中的这个邪恶功能引入了 Vim。想要修改变量名时,只需要将光标放在变量名内,然后多次敲击 Ctrl + n,即可将多个同名变量选中,此时再按 s 就能同时将这些变量重命名了。
CommentaryCommentary 可以帮你注释代码。只需要选中要注释的内容,然后敲击 gcc 即可将这段内容注释(Commentary 会根据当前的 filetype 使用不同的注释符号),再次敲击 gcc 即可还原注释。我做了如下映射:
nmap <BS> gccvmap <BS> gc
即在 normal 模式下,敲击退格键可以注释当前行,在 visual 模式下,敲击退格键可以注释选中的内容。平时无聊时,我就会不停地按退格键来注释/还原注释,还是挺能消磨时间的 :P。
vim-expand-region这个插件用来扩展选择的内容。比方说当前光标在一对双引号中,双引号包含在一对括号中,此时敲击
+
可以选中双引号中的内容,再敲击+
可以选中括号中的内容。我将其绑定为最大的空格键以显示我对这个插件的虔诚。
键位映射
每个 Vim 使用者都有自己的键位映射,通过映射键位可以在一些小的地方大大提高 Vim 的使用效率。下面列举几个我的映射配置。
将分号和冒号互换
nnoremap ; :nnoremap : ;
这样输入
:w
这样的命令时可以就少敲一个键了。使用左右光标键切换 buffer
noremap <silent> <Left> :bp<CR>noremap <silent> <Right> :bn<CR>
使用
\
键打开当前编辑的文件nnoremap \ :!open <C-R>%<CR><CR>
粘贴时不置换“剪贴板”
xnoremap p pgvy
我经常复制一段内容,在 visual 模式下选中一段文本并粘贴来实现替换,此时“剪贴板”中的内容会被替换成被删掉的文本,如果想粘贴第二次就很不方便了。这个映射解决了这个问题。
- Vim 常用插件和键位映射配置
- VIM键位映射总结
- vim键位映射map
- vim插件和配置
- vim插件和配置
- Vim配置和插件
- Vim常用插件及配置
- vim基础配置及常用插件配置
- vim配置和插件安装
- VIM插件安装和配置
- vim配置和插件NERDTree
- Vim配置、插件和使用
- windows下使用HHKB键盘,配置autohotkey键位映射
- VIM 插件以及一些常用配置
- 配置自己的vim-常用插件
- vim配置及常用插件安装
- VIM键位图
- Vi/Vim键位图
- 线程池任务队列
- Java EE单元测试笔记
- 重量级和轻量级(转)
- UVA 10795 <递归>
- 机房收费系统重构之设计
- Vim 常用插件和键位映射配置
- RHEL/CentOS 7.x如何启动/关闭、启用/禁用服务? 修改系统运行级别
- No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案
- Vim神级插件: EasyMotion
- 31CentOS7开机启动管理systemd简介及使用
- 【转载】 汇编语言考前总结
- 安卓开发----关于集合遍历的问题
- csharp:Learn how to post JSON string to generic Handler using jQuery in ASP.Net C
- csharp:Learn how to post JSON string to generic Handler using jQuery in ASP.Net