我的Vim配置

网上关于Vim配置的讲很多,一键配置也很多。但是我们使用Vim不是因为它的插件实现的功能,自动补全,提示有多厉害,而是它自身的逻辑,自身的快速定位,格式化代码。

所以自己使用方便,好用的配置才是最好的!

我起初就是写python,所以主要配置围绕python。首先,在~目录新建.vimrc文件,添加一些配置:

vimrc文件在这.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"去掉vi的一致性
set nocompatible
"文件类型
filetype on
自动补全
set autoindent
智能补全
set smartindent
"显示行号
set nu!
"高亮搜索
set hlsearch
" 相对行
set relativenumber

" tab size
set tabstop=4
"不折叠
set unwrap
"指示当前行
set cursorline
"指示当前列
set cursorcolumn
"语法
syntax enable
"根据文件类型缩进
filetype indent on

syntax on
"python 缩进4
au FileType python set cindent shiftwidth=4

" 绑定jk为ESC按键,操作更方便
inoremap jk <ESC>
" 设置Control a左删除, Control d又删除
inoremap <C-a> <backspace>
inoremap <C-d> <Right><backspace>

" 回车 visual line mode
map <CR> <S-v>
`
" 设置 leader key 为空格键
let mapleader = "\<Space>"

"设置在插入模式下, xz为下行输入, zx为上行输入
imap xz <ESC>o
imap zx <Up><ESC>o

"结合leader key设置 空格加w 保存, 空格加zz 保存退出,也是为了快捷操作"
nnoremap <Leader>zz :wq<CR>
nnoremap <Leader>w :w<CR>

之后安装插件:

vundle插件管理工具

  • 安装

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

  • 配置

.vimrc中添加

1
2
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
  • 插件安装

目前我用的插件,之后再更新.

1
2
3
4
5
6
7
8
9
10
11
"目前我使用的插件

Bundle 'gmarik/vundle'

Bundle 'davidhalter/jedi'

Bundle 'Valloric/YouCompleteMe'

Bundle 'jiangmiao/auto-pairs'

Bundle 'scrooloose/nerdcommenter'

安装插件,只需在任一vim窗口normal模式下执行BundleInstall即可.

jedi

Python补全强力插件.

YouCompleteMe

介绍

YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.

特点:

  • 识别every language
  • 支持C-family languages(C/C++/Objective-C/Objective-C++)
  • 对于Python2/3附带Jedi-based补全(尴尬,另外的jedi卸载了也没关系),使用jediHttp wrapper
  • an OmniSharp-based completion engine for C#(不懂C#)
  • a Tern-based completion engine for JavaScript

此外还有[semantic IDE-like features](a Tern-based completion engine for JavaScript),像goto declarations, definitions, usages, etc这种,根据语意重命名变量(rename variables)等等,使用体验试试吧

安装

  • 使用mvim(Vim binary that is inside the MacVim.app package )更好体验,将vim链接到mvim
1
ln -s /usr/local/bin/mvim vim
  • vundle cloneYCM后,到YCM目录编译,需要用到Cmake
  • 编译
1
2
cd ~/.vim/bundle/YouCompleteMe
./install.py --[xxx]

可选参数有:

  • –clang-completer,添加C-family支持
  • –all, everything

auto-pairs

添加引号,括号配对补全,不多说了.

nerdcommenter

添加/解除注释,支持多种语言,默认操作为:

1
2
<leader>cc   加注释
<leader>cu 解开注释

vim学习

  • vimtutor是最基础的老师了.
  • 在推荐一个vim 学习的链接,看完这个应该能学到好多
  • 话说新MacBook Pro with TouchBar取消了esc键后,vim使用便比较尴尬
1
inoremap jk <ESC>

环境搭建好之后,强迫自己多使用学习到的vim高端操作,逐渐熟悉,尤其是在远程CLI环境中,vim很有用,慢慢你会熟悉掌握并爱上vim.

映射到自己喜欢的按键吧.
等等.