-
Notifications
You must be signed in to change notification settings - Fork 0
/
vim使用经验.txt
293 lines (206 loc) · 9.45 KB
/
vim使用经验.txt
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
打开vim时指定打开多个文件,而且垂直分割窗口:
vim -O file1.c file2.c
水平打开则是:
vim -o file1.c file2.c
如果一开始只有file1.c独占一个窗口,想垂直打开另一个,则:
vs file2.c
同理,如果想水平打开另一个文件:则:
sp file2.c
如果单单输入sp或者vs也是可以的,只是这时是一个文件被分成多个窗口
已经打开了多个窗口,想调整各个窗口的大小,使用res命令,高度调节:
res +12
res -12
宽度调节:
vertical res +12
vertical res -12
查看当前文件名和当前位置:ctrl + g 或者 :f
查看当前光标下的符号的下/上个出现的地方:先按shift + 8 再按n和N上下寻找
获取某个插件的帮助文档(拿taglist来说):
:help taglist
换主题:
:colorscheme <空格+tab>
找到自己喜欢的然后按回车
上面讲的只是临时设置,永久设置方法如下:
在~/.vimrc中添加colorscheme morning
添加主题的方法:
1、创建~/.vim/colors目录
2、去网上找别人写好的,或者自己写一个主题文件,以.vim为后缀,放在上面讲的那个目录
3、在~/.vimrc中添加colorscheme <你自己的主题>
重复上次操作:.
查看命令历史,或者想输入上条命令:
在普通模式下直接按"q",然后按":"
撤销:u
重来:ctrl + r
vundle使用
==========
vundle是一个vim下的一个插件管理器(vim本身没有插件管理器),它本身也是一个插件。
有了它,你只要在.vimrc文件中写入你想要的插件名它就会帮你安装插件,你删除插件名它就会帮你卸载掉,比手动维护方便得多。
项目地址:
https://github.com/gmarik/Vundle.vim.git
或者:
https://github.com/VundleVim/Vundle.vim.git
两个都是一样的库
安装:
1. git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
2. 把下面这段文本(这只是个示例文件)写入你的$HOME/.vimrc文件
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
3. 进入vim,然后运行":PluginInstall"
可能遇到的问题及解决办法:
问题:在vim中输入":PluginInstall"提示"E492 Not an editor command"
办法:"PluginInstall"这个命令本来就不是vim的原生命令,它来自vundle,既然vim不能识别,很有可能是vim没能识别到vundle。
你可能把~/.vimrc文件做成/etc/vimrc或者别的什么了,得改成~/.vimrc,因为这个插件不支持全局配置
问题:切到root用户后原来的vimrc不起作用了
办法:你换用户了,这意味着"~/"目录发生了变化,所以你得重装一次vundle,重新设置一份.vimrc文件,当然你必须全程保持是root用户
ctags使用
=========
ctags不是vim的插件,是一个独立的程序,用来生成代码索引库的
安装:sudo apt-get install ctags
使用前必须生成数据库:ctags -R
符号跳转:ctrl + ]
符号跳转不包括局部变量,想要查看局部变量,可以这样输入:gd(先按g,再按d)
~/.vimrc设置:
set tags=~/path/tags
set tags=tags;
set autochdir
taglist使用
===========
安装(vundle作为插件管理器):在~/.vimrc中添加:Plugin 'taglist.vim',然后在vim界面中执行:PluginInstall,等待安装完成
<Space> 显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
~/.vimrc设置:
map <f3> :TlistToggle<CR>
let Tlist_Use_Right_Window=1 " taglist is in the right side
let Tlist_Exit_OnlyWindow=1 " if taglist is the last windown, quit vim
let Tlist_WinWidth=35
let Tlist_Show_One_File=1 " don't show several files' taglist, just show current one
airline使用
===========
airline可以在vim的界面下部显示一个状态栏,它同时还集成了很多其他的插件
安装(vundle作为插件管理器):在~/.vimrc中添加:
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
然后在vim界面中执行:PluginInstall,等待安装完成
cscope使用
==========
我不怎么喜欢cscope,讲得简单点,cscope和ctag都不全面,得两个都用,两个都用也还是不好用,比不过eclipse
cscope不是vim的插件,它是一个独立的程序,vim编译(一般默认是使能的)的时候也要支持cscope才能跟cscope联动
安装:
1、vim必须在编译时就有加上--cscope(好像是这个),如果vim没有,就要卸载,加上那个选项重新编译安装
2、sudo apt-get install cscope
使用:
1、在源码目录下执行cscope -Rbk生成数据库cscope.out文件
2、输入这个语句让cscope索引你想要的文件格式:find . -name "*.h" -o -name "*.c" -o -name "*.S" >> cscope.files
3、在vim中输入cs add cscope.out
4、在vim中用光标悬停在一个符号的某个字符上,然后按ctrl + 空格,放开后再按s,找到相关引用。除了这
个快捷键,还有很多,具体都在~/.vim/plugin/cscope_map.vim里面,这是cscope自己生成的vim配置文件
一般不用改
注意:vim系统设置set autochdir会导致cscope不能进入子目录,所以如果使用cscope,就不能有这项
~/.vimrc相关配置:
map <F5> :!cscope -Rbk<CR>
nerd-tree使用
=============
这是一个文件浏览器插件
安装(vundle作为插件管理器):
在~/.vimrc中添加:Plugin 'The-NERD-tree'
然后在vim中输入:PluginInstall
~/.vimrc相关配置:
autocmd StdinReadPre * let s:std_in=1
map <F2> :NERDTreeToggle<CR>
选定一个单词
============
先按v,再按下面任一命令
aw a word
iw inner word
aW a WORD
iW inner WORD
as a sentence
is inner sentence
ap a paragraph
ip inner paragraph
a[|] a[] block (这里的'|'是或的意思,也就是说'a['和'a]'都表示一个[]块)'{} &al;>()与[]作用类似
at a tag (这里的tag可以是html或xml中任何标签对)
it inner tag
删除行尾空格
============
vim查看模式下输入':',然后输入'%s/\s\+$//g'
统计查找匹配个数
===============
:%s/hello//gn # hello是你要找的东西。这条命令跟替换就末尾多了个n而已
解决粘贴代码时乱缩进的问题
=========================
粘贴前输入":set paste"
粘贴后输入":set nopaste"
vim切回终端(vim与shell交互)
===========================
vim按ctrl+z切到终端
终端按fg切回vim
刷新文件
=======
:e
使用quickfix在vim内部执行make
============================
1. :set makeprg=mingw32-make " 设置你的make程序,如果有空格要加\转义符
2. :make
3. cc " 查看详细错误
查看vim的版本,安装了哪些功能,vimrc的位置
=======================================
:version
或者
vim --version
ubuntu彻底卸载vim
=================
sudo apt-get remove vim
sudo apt-get remove vim-runtime
sudo apt-get remove vim-tiny
sudo apt-get remove vim-common
sudo apt-get remove vim-doc
sudo apt-get remove vim-scripts
gvim去掉烦人的un~文件
=================
在gvim的安装目录找到vimrc_example.vim文件,把下面两行(else 和 set...)注释掉:
if has("vms")
set nobackup " do not keep a backup file, use versions instead
" else
" set backup " keep a backup file