常言道:工欲善其事,必先利其器 ,作为一个程序员,一个常用的工具就是编辑器,我选择一个能极大提高自己开发效率的编辑器vim(有些人可能选择emacs)。而vim编辑器方面具有以下几种特性:
-
跨平台及统一环境
无论是在windows还是在*nix,vim是一个很完美的跨平台文本编辑器,甚至可以直接在服务器平台CentOS,Ubuntu等直接配置使用,配置文件大同小异,操作习惯基本相同。 -
定制化及可扩展
vim提供一个vimrc的配置文件来配置vim,并且自己可以定制一些插件来实现文件浏览(NERD Tree),代码补全(YouCompleteMe,语法检查(syntastic),文件模糊搜索(ctrlp),显示vim状态栏(Vim Powerline),主题颜色(Molokai),显示文件结构(tagbar)等多种功能。 -
高效命令行
使用vim编辑文本,只需在键盘上操作就可以,根本无需用到鼠标。就拿光标移动来说,与重复击键、一个字符一个字符或一行一行移动相比,按一次键就能以词、行、块或函数为单位移动,效率高得多。有时一些重复删除、粘帖的操作,也只需一条命令就可以完成,甚至你可以用键映射来简化或组合多种命令来提高效率。
配置
如果你需要配置vim,只需在Home目录创建一个~/.vimrc文件即可以配置vim了,可以参考我的vimrc配置文件。由于我需要安装插件,并且将需要安装的插件列表分离到另外一个文件~/.vimrc.bundles,这个文件也是存放在Home目录,文件内容可以参考vimrc.bundles。若想加载~/.vimrc.bundles文件,必须在~/.vimrc文件加入以下代码片段:
if filereadable(expand("~/.vimrc.bundles"))
source ~/.vimrc.bundles
endif
插件
插件管理工具vunble
vundle是vim的插件管理工具,它能够搜索、安装、更新和移除vim插件,再也不需要手动管理vim插件。
- 在Home目录创建~/.vim目录和.vimrc文件(可复制我的vimrc文件)
-
安装vundle
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
- 在.vimrc配置文件中添加vundle支持
但实际上我是添加一个~/.vimrc.bundles文件来保存所有插件的配置,必须在~/.vimrc文件加入以下代码片段:filetype off set rtp+=~/.vim/bundle/vundle/ call vundle#rc()
而~/.vimrc.bundles文件内容必须包含:if filereadable(expand("~/.vimrc.bundles")) source ~/.vimrc.bundles endif
你可以复制到我~/.vimrc.bundles文件到Home目录。filetype off set rtp+=~/.vim/bundle/vundle/ call vundle#rc()
安装插件
bundle分为三类,比较常用就是第二种:
- 在Github vim-scripts 用户下的repos,只需要写出repos名称
- 在Github其他用户下的repos, 需要写出”用户名/repos名”
- 不在Github上的插件,需要写出git全路径
将安装的插件在~/.vimrc配置,但是我是将插件配置信息放在~/.vimrc.bundles:
" Define bundles via Github repos
Bundle 'christoomey/vim-run-interactive'
Bundle 'Valloric/YouCompleteMe'
Bundle 'croaky/vim-colors-github'
Bundle 'danro/rename.vim'
Bundle 'majutsushi/tagbar'
Bundle 'kchmck/vim-coffee-script'
Bundle 'kien/ctrlp.vim'
Bundle 'pbrisbin/vim-mkdir'
Bundle 'scrooloose/syntastic'
Bundle 'slim-template/vim-slim'
Bundle 'thoughtbot/vim-rspec'
Bundle 'tpope/vim-bundler'
Bundle 'tpope/vim-endwise'
Bundle 'tpope/vim-fugitive'
Bundle 'tpope/vim-rails'
Bundle 'tpope/vim-surround'
Bundle 'vim-ruby/vim-ruby'
Bundle 'vim-scripts/ctags.vim'
Bundle 'vim-scripts/matchit.zip'
Bundle 'vim-scripts/tComment'
Bundle "mattn/emmet-vim"
Bundle "scrooloose/nerdtree"
Bundle "Lokaltog/vim-powerline"
Bundle "godlygeek/tabular"
Bundle "msanders/snipmate.vim"
Bundle "jelera/vim-javascript-syntax"
Bundle "altercation/vim-colors-solarized"
Bundle "othree/html5.vim"
Bundle "xsbeats/vim-blade"
Bundle "Raimondi/delimitMate"
Bundle "groenewege/vim-less"
Bundle "evanmiller/nginx-vim-syntax"
Bundle "Lokaltog/vim-easymotion"
Bundle "tomasr/molokai"
Bundle "klen/python-mode"
打开vim,运行:BundleInstall
或在shell中直接运行vim +BundleInstall +qall
安装完插件之后,可能还有一个问题:就是vim版本不够高
可以使用以下命令更新vim版本
brew install macvim --override-system-vim
然后运行以下命令符号连接到/Application
brew linkapps macvim
最后在.zshrc
配置文件中使用别名来使用更新后的vim
#setup macvim alias
alias vim='/usr/local/opt/macvim/MacVim.app/Contents/MacOS/Vim'
常用插件
NERD Tree
NERD Tree是一个树形目录插件,方便浏览当前目录有哪些目录和文件。
我在~/.vimrc文件中配置NERD Tree,设置一个启用或禁用NERD Tree的键映射
nmap <F5> :NERDTreeToggle<cr>
所以你只需按F5键就能启用或禁用NERD Tree,NERD Tree提供一些常用快捷键来操作目录:
- 通过hjkl来移动光标
- o打开关闭文件或目录,如果想打开文件,必须光标移动到文件名
- t在标签页中打开
- s和i可以水平或纵向分割窗口打开文件
- p到上层目录
- P到根目录
- K到同目录第一个节点
- P到同目录最后一个节点
YouCompleteMe & syntastic
YouCompleteMe是一个快速、支持模糊匹配的vim代码补全引擎。由于它是基于Clang引擎为C/C++/Objective-C提供代码提示,也支持其他语言代码提示的引擎,例如基于Jedi的Python代码补全,基于OmniSharp的C#代码补全,基于Gocode的Go代码补全。
只需敲入代码,就自动提示想输入的代码列表,你可以选择其中一个,然后tab键就可以补全代码。
YouCompleteMe已经集成了Syntastic,所以一旦你编写代码时语法错误,就会有红色错误提示
ctrlp
不知道你有没有遇到这样一种情况:在大规模的工程项目中,目录和文件嵌套比较深,打开一个文件要逐个逐个进入目录才能打开,这样的话,比较耗时间和效率很低,ctrlp重新定义打目录和文件方式,特别适用于大规模项目文件的浏览。
启用ctrlp
- 运行命令
:CtrlP
或:CtrlP [starting-directory]
来以查找文件模式来启用 ctrlp - 运行命令
:CtrlPBuffer
或:CtrlPMRU
来以查找缓冲或最近打开文件模式来启用ctrlp - 运行命令
CtrlPMixed
来查找文件、查找缓冲和最近打开文件混合模式来启动 ctrlp
基本使用
- 按
<c-f>
和<c-b>
在三种查找模式中互相切换 - 按
<c-y>
来创建新文件和对应的父目录 - 按
<c-d>
来切换到只查找文件名而不是全路径 - 按
<c-j>
,<c-k>
或箭头方向键来移动查找结果列表 - 按
<c-t>
或<c-v>
,<c-x>
来以新标签或分割窗口的方式来打开文件 - 按
<c-z>
来标识或取消标识文件,然后按<c-o>
来打开文件 - 按
<c-n>
,<c-p>
来在提示历史中选择下一个/上一个字符串
演示视频
具体如何使用ctrlp,请参考happypetterd的演示视频,讲解非常清楚。
Vim Powerline
Vim Powerline是一个显示vim状态栏插件,它能够显示vim模式、操作环境、编码格式、行数/列数等信息
Molokai
Molokai是vim颜色主题,效果如下
常用命令
对于入门vim基本命令可以参考 简明 Vim 练级攻略,以下是本人关于移动光标、插入/修改、删除、复制、粘帖、撤销和恢复等常用命令
-
移动光标
- 对于在行内移动,通过使用
f/F + 字符
来移动到特定的字符,然后再使用.
来重复执行命令;f
表示向前移动,F
表示向后移动。如果想直接移动到行首或行尾,使用^
或$
- 对于在多行移动,就有多种选择:第一种是通过
gg
,G
,行数 + G
指定行数来移动,gg
表示移动文件的第一行,G
表示移动文件的最后一行,行数 + G
表示移动到特定的行。第二种就是通过正则搜索的方式来移动,/string
表示正向查找,?string
表示反向查找,n
查找下一个匹配的结果,N
表示上一个匹配的结果,按up/down
可以浏览搜索历史。第三种就是使用标记来移动,m + {a-z}
标记位置(适用于单个文件,如果是多个文件,使用大写字母{A-Z}
),`{mark}
移动到标记位置的列,'{mark}
移动到标记位置的行首,还有一些特殊的标记,'
表示跳转前光标的位置
- 对于在行内移动,通过使用
-
选择文本
v
不规则选择V
按行选择Ctrl + V
按列选择 -
插入/修改
i
在当前字符前面插入I
在行首插入a
在当前字符后面插入A
在行尾插入o
在当前行的下一行插入O
在当前行的上一行插入r
更改当前的字符R
更改多个字符cw/caw
更改单词cf + 字符
更改从当前字符到指定字符c$
更改从当前字符到行尾cc
更改整行 -
删除
x
删除字符df + 字符
删除从当前字符到指定字符dw/daw
删除单词d$
删除从当前光标到行尾dd
删除一行 -
剪切与粘帖
dd + p
delete一行,然后放在当前光标下方dd + P
delete一行,然后放在当前光标上方dw + p
delete单词,然后放在当前光标后面dw + P
delete单词,然后放在当前光标前面p/P
可接受计数前缀,重复粘贴 -
复制
yw
复制单词yf
复制从当前字符到指定字符y$
复制当前光标到行尾yy
复制整行 -
撤销和恢复
u
撤销ctrl + r
重做 -
重复操作
数字+action
表示执行某个操作多少次.
重复上一个操作 -
宏录制
q + 寄存器(a-z)
开始录制录制动作
q
停止录制@ + 寄存器 / @@
replay被录制的宏
原文链接:http://www.jianshu.com/p/a0b452f8f720
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
相关推荐
这些技巧非常适合已经具有一定VIM使用基础的用户,并希望进一步提高在VIM环境下的工作效率,同时避免了安装插件可能带来的额外配置和维护成本。掌握这些技巧,可以让用户在不依赖外部插件的情况下,有效地浏览代码、...
二、Vim配置文件 Vim的配置文件通常为`.vimrc`,在这个文件中,用户可以设置各种快捷键、映射、颜色方案、插件配置等,以实现个性化的工作环境。例如,添加以下代码可以启用上述提到的NERDTree插件: ```vim " ...
以`Plug`为例,将其添加到`.vimrc`(Vim配置文件)中: ```vim call plug#begin('~/.vim/plugged') Plug '/plugin-name' call plug#end() ``` 然后在命令行运行`:PlugInstall`来安装指定的插件。 2. **选择...
3. **vimrc初步**:介绍了vim配置文件vimrc的基础知识,包括如何创建和编辑vimrc,以及如何通过键映射提高工作效率。 4. **保存项目相关配置**:讨论了如何根据不同项目设置个性化的配置,例如利用path选项保存项目...
Vim,全名Vi Improved,是一款强大的文本编辑器,它在传统的vi编辑器基础上进行了大量改进,提供了丰富的功能和高度的可定制性。...对于开发者来说,掌握Vim的高级使用技巧和插件配置,能显著提高开发效率。
掌握Vim插件的安装和使用是提高Vim使用体验的关键。通过选择合适的插件管理器,安装实用插件,结合个人工作习惯定制快捷键,Vim将成为你得心应手的开发工具。记得定期更新插件,保持与社区同步,享受Vim带来的高效...
`vim_bak`可能是这个备份或归档的配置文件,用于保存和恢复你的vim配置。 关于vim的配置,以下是一些重要的知识点: 1. **基本操作**:学习Vim的基础操作是必要的,包括启动Vim、进入插入模式(Insert mode)和...
安装完成后,开发者可以在设置中开启或关闭Vim模式,以及自定义各种Vim配置。 **2. VSCode的Vim插件** VSCode的Vim插件同样可以让开发者在VSCode中享受到Vim的操作方式。这个插件几乎实现了Vim的所有核心功能,...
三、Vim配置 1. `.vimrc`文件:这是Vim的配置文件,通过修改它可以定制个人喜好。比如,添加`set number`显示行号,`set autoindent`开启自动缩进。 2. 插件管理:推荐使用Vundle或NeoVim的Plug来管理插件。例如,...
一个标准的vim配置文件名为.vimrc,通常位于用户的主目录下。配置文件中可以设置语法高亮、快捷键、插件等。 在Linux下使用vim,首先需要安装vim的中文帮助手册。这是为了让英文不好的用户能够更加方便地查阅帮助...
Vim是一款强大的文本编辑器,深受程序员和代码爱好者们的喜爱。为了提高开发效率和增强功能,用户常常会安装各种插件并自定义配置文件。...不断优化你的Vim配置,可以使你的编程生涯更加顺畅愉快。
**MacVim** 是Mac OS平台上的一款高度定制的Vim编辑器版本,它结合了Vim的高效能和强大的文本操作能力,同时针对Mac OS进行了...不断更新和优化个人的Vim配置,可以让这个古老的编辑器成为一款得心应手的现代开发工具。
在vim中结合ctags,我们可以使用`:tag`命令快速跳转到指定的代码定义,极大提高了代码阅读和调试效率。 **二、ctags安装** 在大多数Linux发行版中,可以通过包管理器安装ctags。例如,在Ubuntu/Debian上: ```bash...
- 现代的Vim配置通常会使用如Vundle、Pathogen、NeoBundle或Plug.vim这样的插件管理器,以便方便地安装和管理这些插件。 5. **高级操作和映射**: - Vim支持自定义键盘映射,使得常用操作可以通过简短的快捷键...
**vim使用技巧合集** Vim(Vi Improved)是一款...以上只是 Vim 使用技巧的冰山一角,通过不断实践和探索,你可以发掘更多高效的操作方式,让Vim成为你的得力助手。记住,熟能生巧,多用才能真正发挥Vim的强大功能。
### VIM实用技术:技巧、插件和定制 #### 0. Vim简介 Vim是一款在开源领域中备受推崇的文本编辑器,以其强大的功能和高度的可定制性著称。它不仅支持多种操作系统,而且拥有一个庞大的社区,持续不断地贡献着新的...
1. `README.csupport`:这是cvim的说明文档,通常会包含插件的安装步骤、配置方法以及使用技巧等信息。通过阅读这个文件,用户可以了解到如何在自己的Vim环境中正确安装和配置cvim。 2. `ftplugin`:这是一个用于...
2. 配置:通过修改`~/.vimrc`文件定制Vim设置,如设置缩进、颜色方案等。 八、学习资源 除了《Vim实用技巧》这本书,还有在线教程、Vimcasts视频教程以及Vim官网文档,都是学习Vim的好资源。 通过熟练掌握Vim的...
《vim高级使用技巧详解...通过熟练掌握这些高级技巧,可以显著提升vim的使用体验,提高编程和文本编辑的效率。在日常工作中灵活运用,能使vim成为你得心应手的工具。记得不断实践和探索,vim的强大功能等待着你的发掘。