目录[-]
高效vim插件
如果不熟悉vim的,请在使用vim插件之前,请先阅读 Vim学习指南, 建议通过前3个层次。以及有一个有趣的vim练习游戏http://vim-adventures.com/。
插件管理利器
vim的插件原始安装容易混乱,而且管理起来,不方便。那么就渴望一个插件管理工具:pathogen
简单安装:
1
2
3
|
mkdir
-p ~/.vim
/autoload
~/.vim
/bundle
; \
curl -Sso ~/.vim
/autoload/pathogen
.vim \
https:
//raw
.github.com
/tpope/vim-pathogen/master/autoload/pathogen
.vim
|
详细请查看:https://github.com/tpope/vim-pathogen
配置:
在vimrc文件的filetype plugin之前·「没有的就在最前面」添加:
1
2
|
call pathogen
#infect()
filetype plugin indent on
|
高效插件集
- jedi-vim [python]
- eclim [java]
- c.vim[C/C++]
- vim-colorschemes
NerdTree
The NERD tree allows you to explore your filesystem and to open files and directories. It presents the filesystem to you in the form of a tree which you manipulate with the keyboard and/or mouse. It also allows you to perform simple filesystem operations.
你可以使用Git这样安装:
1
2
|
cd
$HOME/.vim
/bundle
git clone https:
//github
.com
/scrooloose/nerdtree
.git
|
snipMate
这个可以有。想快速写或者减少重复写代码,那么code snippets就是必须的,而对于vim来说,snipMate,你值得拥有。[ps:你可以在其snippets目录下找到对应语言的snippets,可以修改相应的snippets]。请到vim官网下载http://www.vim.org/scripts/script.php?script_id=2540。
tagbar
如果你使用过eclipse,那么它右边有个叫做Outline函数列表,对,tagbar就是这个效果。
你可以使用Git这样安装:
1
2
|
cd
$HOME/.vim
/bundle
git clone https:
//github
.com
/majutsushi/tagbar
.git
|
这个插件具有Sublime Text的多光标编辑功能哟。
你可以使用Git这样安装:
1
2
|
cd
$HOME/.vim
/bundle
git clone https:
//github
.com
/terryma/vim-multiple-cursors
.git
|
jedi-vim
如果使用python的,有了它,爽歪歪。它拥有强大的提示能力。
注意,刚开始我安装这个插件,总是报错,主要是vim没有--enable-pythoninterp 和没有安装jedi·「pip install jedi」,而且后来 在jedi-vim开发者David Halter提示下,在.bashrc中设置·「export PYTHONSTARTUP="$(python -m jedi repl)" 」就可以让python具有ipython的功能。很强大!你可以使用Git这样安装:
1
2
|
cd
$HOME/.vim
/bundle
git clone https:
//github
.com
/davidhalter/jedi-vim
.git
|
eclim
eclim 就是 eclipse 和 vim的有机结合。它充分利用了eclipse强大的提示功能,快捷键<c-x><c-u>
按照官网安装之后,它会在.vim目录下生成eclim和plugin目录,请在bundle目录新建一个目录eclim,然后将这两个目录剪切到bundle/eclim目录中.这时它没有启动,还需要执行ECLIPSE目录中的eclimd。这个并没有列举出来。
其实还可以加一个supertab插件,但是我习惯使用tab来代替空格,实际上一个tab是4个空格。所以并没有列举出来。
你可以使用git这样安装:
1
2
|
cd
$HOME/.vim
/bundle
git clone https:
//github
.com
/ervandew/supertab
.git
|
c.vim
请到这里去下载,这个不解释,很强大,官网有很详细的解释和帮助文档,对于c/c++来说不可缺少。
vim-colorschemes
保护视力,请从一个好的主题开始。那么vim-colorschemes中集成了很多的主题,个人比较爱好cobalt,不过有些主题只能在gvim中才能显示效果,而在vim中没有背景颜色等等问题。github去下载
1
2
|
cd
$HOME/.vim
/bundle
git clone https:
//github
.com
/upsuper/vim-colorschemes
.git
|
vim配置
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
" Uncomment the next line to
make
Vim
more
Vi-compatible
" NOTE: debian.vim sets
'nocompatible'
. Setting
'compatible'
changes numerous
" options, so any other options should be
set
AFTER setting
'compatible'
.
"
set
compatible
set
nocompatible
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if
has(
"syntax"
)
syntax on
endif
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"
set
background=dark
" Uncomment the following to have Vim jump to the last position when
" reopening a
file
"if has("
autocmd")
" au BufReadPost * if line("
'\"") > 1 && line("'
\"") <= line(
"$"
) | exe
"normal! g'\""
| endif
"endif
" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"if has("
autocmd")
" filetype plugin indent on
"endif
call pathogen
#infect()
filetype plugin indent on
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
set
showcmd " Show (partial)
command
in
status line.
"set showmatch "
Show matching brackets.
"set ignorecase "
Do
case
insensitive matching
set
smartcase " Do smart
case
matching
"set incsearch "
Incremental search
"set autowrite "
Automatically save before commands like :next and :
make
"set hidden "
Hide buffers when they are abandoned
set
mouse=a " Enable mouse usage (all modes)
set
nu
set
tabstop=4
set
softtabstop=4
"
set
shiftwidth=4
set
expandtab " use whitespace instead of tab
set
autoindent
set
smartindent
set
cindent shiftwidth=4
"
set
autoindent shiftwidth=4
set
foldmethod=indent
set
backspace=indent,eol,start
set
colorcolumn=80
" === tagbar setting =======
nmap <F4> :TagbarToggle<CR> " shortcut
let
g:tagbar_width = 20 " tagbar's width, default 20
autocmd VimEnter * nested :call tagbar
#autoopen(1) "automate to open tagbar
let
g:tagbar_left = 1 " on the left side
"let g:tagbar_right = 1 "
on the right side
let
NERDTreeIgnore=[
'\.pyc'
,
'\.pyo'
,
'\.swp'
,
'\~'
] " ignore *.py[co], *.swp and *~
" =======end==================
" switch window
nnoremap <c-h> <c-w>h
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-l> <c-w>l
" ===== brace autocompletion =========
inoremap ( ()<Esc>i
inoremap [ []<Esc>i
inoremap { {<CR>}<Esc>O
autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair(
'>'
)<CR>
inoremap ) <c-r>=ClosePair(
')'
)<CR>
inoremap ] <c-r>=ClosePair(
']'
)<CR>
inoremap } <c-r>=CloseBracket()<CR>
inoremap
" <c-r>=QuoteDelim('"
')<CR>
inoremap
' <c-r>=QuoteDelim("'
")<CR>
function
ClosePair(char)
if
getline(
'.'
)[col(
'.'
) - 1] == a:char
return
"\<Right>"
else
return
a:char
endif
endf
function
CloseBracket()
if
match(getline(line(
'.'
) + 1),
'\s*}'
) < 0
return
"\<CR>}"
else
return
"\<Esc>j0f}a"
endif
endf
function
QuoteDelim(char)
let
line = getline(
'.'
)
let
col = col(
'.'
)
if
line[col - 2] ==
"\\"
"Inserting a quoted quotation mark into the string
return
a:char
elseif line[col - 1] == a:char
"Escaping out of the string
return
"\<Right>"
else
"Starting a string
return
a:char.a:char.
"\<Esc>i"
endif
endf
" Source a global configuration
file
if
available
if
filereadable(
"/etc/vim/vimrc.local"
)
source
/etc/vim/vimrc
.
local
endif
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<span><
/span
>
<div>
<
/div
>
|
一个实例
这是我在写python nose插件nose-colorxunit时截图:
http://my.oschina.net/swuly302/blog/156784