vim编辑器的介绍这里就不详细说了,对于不是十分了解的人,这里简单说明下vim是有两种模式的,编辑模式和命令模式。

在命令模式下通过命令可以快速的选取、操作文本,也就是其他编辑器的快捷键功能,但vim的命令模式会更加复杂强大一些。

编辑模式就是正常的代码编写,文本录入了。两种模式可以通过快捷键进行切换。

另外vim本身的功能毕竟有限,尚不足以与IDE比较,但是vim本身存在很多第三方插件,可以选择性拓展。根据具体的语言和插件选择,vim完全可以成为一个强大的开发工具。

###常用快捷键

快捷键说明
h向左移动光标
l向右移动光标
j向下移动光标
k向上移动光标
w光标移动到下一个单词首字母
b光标移动到上一个单词首字母
e光标移动到下一个单词最后一个字母
shift+5找到’()’,’[]’,’{}‘匹配项位置
gg光标移动到文件开始
G光标移动到文件结束
12G光标移动到第12行
12gg光标移动到第12行
/text查找文件中text关键字,按n查询下一个,N查询上一个
o在光标下一行位置插入段落并进入编辑模式
O在光标上一行位置插入段落并进入编辑模式
i在光标当前位置左侧进入编辑模式
I在光标当前段落开始处位置进入编辑模式
a在光标当前位置右侧进入编辑模式
A在光标当前段落结束处位置进入编辑模式
x删除光标当前位置处字符
X删除光标当前位置处前一个字符
d配合数字键和方向键可以选择光标位置处左右多个字符,上下多行
D删除从光标位置开始到行尾全部字符
r修改光标当前位置处字符
R在当前光标位置出进入编辑模式,并逐次修改下面所有字符
u撤销上一步操作
crtl+r恢复上一步撤销
U撤销当前行所有修改
v选取光标所在位置字符,配合方向键可以选取多个字符或者行
V选取当前行,配合方向键可以选取多行
y复制光标所选中字符
Y复制光标所在位置当前行
p在光标所在位置后粘贴复制内容
P在光标所在位置前粘贴复制内容
J合并光标当前位置行与下一行
H到屏幕顶端
L到屏幕底端
.重复上一次命令
ggVG全选
ddp当前行与下一行位置互换
daw删除光标所在位置出单词,d2w删除光标所在位置及其后工两个单词,标点符号算一个单词
esc退出编辑模式到命令模式
:w保存当前修改
:w!强制保存当前修改
:q退出vim
:q!强制退出vim
:wq保存修改并退出vim

###常用设置 以mac系统为例,vim相关文件会以隐藏文件存储在当前登录账户根目录下(Users/username),文件夹名称为.vim。

vim的配置文件也以隐藏文件存储在当前登录账户的根目录下,文件名称为.vimrc。

####文本设置

一般常用设置包括语法高亮、tab占位、设置行号显示、代码颜色、空格显示等。

具体配置代码如下:

"show number line"
set number

"set syntax heightlight for mac"
syntax on

"set markdown heightlight"
autocmd FileType modula2 set fl=

filetype plugin on

"set corret text indent by syntax"
filetype indent on

"set tab key as two space"
set expandtab
set tabstop=2
set shiftwidth=2

" Display extra whitespace as ."
set list listchars=tab:··,trail

####代码颜色设置

这里单独说明下代码颜色的设置,一般vim代码颜色文件都存放在。

vim目录下的colors目录中。你可以在google或者github查找下载相关的vim代码配色,然后拷贝到该位置。其中关键词检索录入vim colorscheme即可。

这里我使用的是github的配色,首先将配色文件拷贝到colors目录下。

然后在.vimrc文件中加入如下语句,设置vim启动时采用的配色。

 colorscheme github

###常用插件

vim的插件一般分散都存放在.vim目录下,管理起来不是十分方便。

这里为了方便插件的管理采用pathogen。

####pathogen

在.vim目录下创建一个autoload文件夹和一个bundle文件夹。

在autoload文件夹下获取到pathogen的配置文件:

$ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

然后在.vimrc配置文件中添加pathogen的启动方法:

$ execute pathogen#infect()

之后使用pathogen安装插件就简单多了,只需要在bundle中通过git将相关插件clone到本地即可。

####nerdtree

nerdtree会将打开的文件所在的文件夹以树结构展现出来。

进到.vim/bundle目录下,执行clone命令拷贝项目到本地:

$ git clone https://github.com/scrooloose/nerdtree.git

修改.vimrc文件:

"nerd tree"
autocmd vimenter * NERDTree
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
map <C-n> :NERDTreeToggle<CR>

这样通过vim打开一个文件的时候默认就加载nerdtree插件,当你想隐藏的时候用组合键ctrl+n即可。

####Tagbar

tagbar可以将你当前打开的文件的结构以索引目录的形式罗列出来。

进到.vim/bundle目录下,执行clone命令拷贝项目到本地:

$ git clone https://github.com/majutsushi/tagbar

修改.vimrc文件:

let g:tagbar_width=35
let g:tagbar_autofocus=1
nmap <F8> :TagbarToggle<CR>
autocmd VimEnter * nested :call tagbar#autoopen(1)

这边默认配置是通过F8显示隐藏tagbar窗口,你也可以根据自己需求定义。

####ctrlp ctrlp可以帮助你快速查找打开文件,它默认会在你当前打开文件根目录搜索你键入关键字匹配的文件。

进到.vim/bundle目录下,执行clone命令拷贝项目到本地:

$ git clone https://github.com/kien/ctrlp.vim.git

修改.vimrc文件:

"ctrlp, for file search"
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.png,*.jpg,*.jpeg,*.gif
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'

####tComment tComment是一款快速注释的插件,它可以根据你当前文件的语言自动决定注释语法。

进到.vim/bundle目录下,执行clone命令拷贝项目到本地:

$ git clone https://github.com/vim-scripts/tComment.git

tComment可以不做特殊配置直接使用。

注释和取消注释的快捷键都是ctrl+/+/,你也可以选择多行然后执行注释命令进行多行注释。

####fugitive fugitive是一个git插件,它允许你在vim的命令模式下通过类似于git的命令执行git命令。

比如可以通过:Gstatus执行git status命令,查看文件修改情况。

进到.vim/bundle目录下,执行clone命令拷贝项目到本地:

$ git clone https://github.com/tpope/vim-fugitive.git

fugitive可以不做特殊配置直接使用。

####emmet-vim emmet是用来快速输入html代码的插件,emmet-vim是其在vim下的插件。

进到.vim/bundle目录下,执行clone命令拷贝项目到本地:

git clone https://github.com/mattn/emmet-vim.git

不需要做额外的配置,再次重启vim就可以使用了。

和在其他编辑器中不同,emmet的使用不再用tab出发,而是用组合键ctrl+y+,

如果你想自己定义组合键就在.vimrc中加入如下配置:

"emmet"
let g:user_emmet_leader_key='<C-Z>'

这样触发emmet的组合键就变成ctrl+z+,了,但是,是必须要的,不能省略。

####vim-surround vim-surround是一个方便快速编辑父子层文本的插件,比如快速删除一个元素的外层元素,给一段文本添加div元素等。

进到.vim/bundle目录下,执行clone命令拷贝项目到本地:

$ git clone https://github.com/tpope/vim-surround.git

重启vim就可以用surround的命令了,这里简单介绍几个个常用的:

命令说明演示
cs”’修改字符""为”"hello world" 执行命令cs"'后修改为 'hello world'
ds”删除包裹符号"hello world" 执行命令ds"后修改为 hello world
cst修改父级元素<p>hello world</p> 执行命令cst <h1>后修改为 <h1>hello world</h1>
dst删除父级元素<p>hello world</p> 执行命令dst后修改为 hello world
VS添加父级元素hello world 执行命令VS <a>后修改为 <a>hello world</a>

####delimitMate、matchit、auto-save

delimitMate会自动帮你完成'"([{ 等符号的补全。

matchit可以用%代替shitf+F5查找'"([{ 等对应符号。

auto-save会在文件修改时自动保存,省去了反复执行:w命令。