学习Vim的一点心得

时间:2021-01-31 11:11:30

现在的工作是在unix平台,平时是用UE的ftp功能来写代码的,有时候文件大了,传输就很慢,而且经常不是很稳定。
下定决心要学学Vim(现在应该没有人用原始的vi了吧),在经过二周的使用后,发现Vim实在是非常不错的一个editor,现在我在Windows上也装了一个Vim,使用起来颇为顺手,基本上已经替代了UE。

下面介绍一些我在使用Vim的过程中得到的一些心得:
1. 在使用Vim之前一定要进行一些设置,否则你使用起来肯定会很不爽,下面是我的配置

 1 学习Vim的一点心得" ==============================================
 2 学习Vim的一点心得 "  General settings
 3 学习Vim的一点心得 " ==============================================
 4 学习Vim的一点心得
 5 学习Vim的一点心得set nocp
 6 学习Vim的一点心得set ru
 7 学习Vim的一点心得 "  使用cindent
 8 学习Vim的一点心得set cin
 9 学习Vim的一点心得set cino = :0g0t0(sus
10 学习Vim的一点心得
11 学习Vim的一点心得set sm
12 学习Vim的一点心得set ai
13 学习Vim的一点心得 "  缩近
14 学习Vim的一点心得set sw=4
15 学习Vim的一点心得set ts=4
16 学习Vim的一点心得 "  不展开tab为空格,反之set et
17 学习Vim的一点心得set noet
18 学习Vim的一点心得
19 学习Vim的一点心得set lbr
20 学习Vim的一点心得set hls
21 学习Vim的一点心得set backspace = indent , eol , start
22 学习Vim的一点心得set whichwrap = b , s , < , > , [ , ]
23 学习Vim的一点心得set fo+ = mB
24 学习Vim的一点心得set selectmode =
25 学习Vim的一点心得set mousemodel = popup
26 学习Vim的一点心得set keymodel =
27 学习Vim的一点心得set selection = inclusive
28 学习Vim的一点心得set matchpairs+ = <:>
29 学习Vim的一点心得
30 学习Vim的一点心得 " ==============================================
31 学习Vim的一点心得 "  Cursor movement
32 学习Vim的一点心得 " ==============================================
33 学习Vim的一点心得nnoremap <Down> gj
34 学习Vim的一点心得nnoremap <Up> gk
35 学习Vim的一点心得vnoremap <Down> gj
36 学习Vim的一点心得vnoremap <Up> gk
37 学习Vim的一点心得inoremap <Down> <C-o>gj
38 学习Vim的一点心得inoremap <Up> <C-o>gk
39 学习Vim的一点心得
40 学习Vim的一点心得nnoremap <End> g$
41 学习Vim的一点心得nnoremap <Home> g0
42 学习Vim的一点心得vnoremap <End> g$
43 学习Vim的一点心得vnoremap <Home> g0
44 学习Vim的一点心得inoremap <End> <C-o>g$
45 学习Vim的一点心得inoremap <Home> <C-o>g0
46 学习Vim的一点心得
47 学习Vim的一点心得nmap <C-F4> :confirm bd<CR>
48 学习Vim的一点心得vmap <C-F4> <ESC>:confirm bd<Enter>
49 学习Vim的一点心得omap <C-F4> <ESC>:confirm bd<Enter>
50 学习Vim的一点心得map! <C-F4> <ESC>:confirm bd<Enter>
51 学习Vim的一点心得
52 学习Vim的一点心得 "  打开语法高亮
53 学习Vim的一点心得syntax on
54 学习Vim的一点心得 "  使用语法进行折叠
55 学习Vim的一点心得set foldmethod=syntax
56 学习Vim的一点心得
57 学习Vim的一点心得if (has( " gui_running " ))
58 学习Vim的一点心得    set nowrap
59 学习Vim的一点心得    set guioptions+=b
60 学习Vim的一点心得    colo inkpot
61 学习Vim的一点心得else
62 学习Vim的一点心得    set wrap
63 学习Vim的一点心得    colo ron
64 学习Vim的一点心得endif
65 学习Vim的一点心得
66 学习Vim的一点心得 "  设置swap文件的目录
67 学习Vim的一点心得set dir = D:"vim"tmp
68 学习Vim的一点心得 " 设置备份文件的目录
69 学习Vim的一点心得set backupdir=D:"vim"bak
70 学习Vim的一点心得
71 学习Vim的一点心得 "  设置leader的快捷键,原来的“"”太远了,而且位置还不固定
72 学习Vim的一点心得let mapleader = " , "

这里是一些基本设置
如果有什么不太清楚的,可以在Vim里normal模式下
:h 关键字
查看帮助

2. Vim教程
推荐先看看Vim自带的Tutor(这可是位好老师)
用vimtutor启动Vim
或者在Vim里面用:h tutor来启动
中文教程我推荐李果正的《大家来学Vim》
这里还有Vim的键位示意图,可以打出来随时查看哦

 
3. Vim的插件
有几个插件强烈推荐
(1) A:在同名的cpp和h文件之间切换 http://www.vim.org/scripts/script.php?script_id=31
(2) NERD_comments:超强的注释插件,支持很多语言的注释风格,按照上面的设置,只需要",cc"就可以添加注释了 http://www.vim.org/scripts/script.php?script_id=1218
(3) csupport:写C/C++代码必备 http://www.vim.org/scripts/script.php?script_id=213
(4) LargeFile:再也不用担心打开大文件会慢了 http://www.vim.org/scripts/script.php?script_id=1506
(5) TipOfTheDay:多读读vim的tips会有很多收获的,记得要经常更新tips文件啊 http://www.vim.org/scripts/script.php?script_id=88
(6) cppomnicomplete:提供C++中类/对象成员的补全(需要Vim7) http://www.vim.org/scripts/script.php?script_id=1520
(7) ColorSamplerPack:提供上百种颜色主题,必有一款适合你,不过大多数都是在GUI下才有相应的效果 http://www.vim.org/scripts/script.php?script_id=625
(8) vimcdoc:汉化的vim帮助 http://vimcdoc.sourceforge.net/

3. 在telnet中使用vim的颜色
如果是在linux中使用telnet,SecureCRT会自动使用合适的颜色来显示vim不同的颜色,但是如果在其他unix下就会无法显示正确的颜色,所有的东西都是同一种颜色。

在.vimrc中加入(^[的输入方式是Ctrl-v然后输入Esc):
if !has("gui_running")
set t_Co=8
set t_Sf=^[[3%p1%dm
set t_Sb=^[[4%p1%dm
endif
并在SecureCRT的模拟终端类型选择ANSI,并钩上ANSI Color,就可以显示不同的颜色了

4. vim的自动补全功能
一般使用Ctrl+n就可以自动补全了,从Vim7后,C/C++的函数、变量或者是类的成员,使用Ctrl+x,Ctrl+o也可以自动补全。在安装了cppomnicomplete后,对象的成员也可以用Ctrl+x,Ctrl+o来补全

5. 代码折叠
许多editor都支持代码折叠,Vim也不例外
常用的快捷键
zc 折叠代码
zo 打开折叠的代码
还有其他的快捷键可以查看帮助
:h fold

6. 自动格式化代码
在Visual模式下,选中代码按=就可以了
Normal模式下,按=会格式化光标所在行

7. 脚本支持
Vim不仅有内建的脚本功能,还支持Perl,Python,Tcl,Ruby和MzScheme这些流行的脚本语言编写Vim的扩展

Vim的功能是不是很强大?
经过1年多的测试Vim 7.0也release了,还不快下载来试试
http://www.vim.org

Happy Vimming!

对于已经习惯了使用Vim但是要在Windows下编程的用户
我还推荐
ViEmu,可以在VisualStudio下模拟Vi的编辑操作
不过只有30天的试用期学习Vim的一点心得