简单的vim配置:
在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,那么我们可以在自己的工作目录下建立一个“.vimrc”文件将配置vim的命令写进去来配置我们的vim。
下面是我自己配置的vim:
在“.vimrc”中添加以下代码就可以达到同样的效果
1 " 选中状态下 Ctrl+c 复制
2 vmap <C-c> "+y""
3 " "C,C++ 按F5编译运行
4 map <F5> :call CompileRunGcc()<CR>
5 func! CompileRunGcc()
6 exec "w"
7 if &filetype == 'c'
8 exec "!g++ % -o %<"
9 exec "! ./%<"
10 elseif &filetype == 'cpp'
11 exec "!g++ % -o %<"
12 exec "! ./%<"
13 elseif &filetype == 'java'
14 exec "!javac %"
15 exec "!java
16 %<"
17 elseif" &filetyp e
18== 'sh'
19 :!./%
20 endif
21 endfunc 5 5 " 设定窗口位置 set statusline=%F%m%r%h%w\ [FORMAT=% {&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\
22 set lines=40 columns=155 " 设定窗口大小
23 set shortmess=atI
24 set nu " 显示行号
25 set go= " 不要图形按钮
26 syntax on " 语法高亮
27 autocmd InsertEnter * se cul " 用浅色高亮当前行
28 set ruler " 显示标尺
29 set nobackup
30 set cursorline
31 set foldcolumn=0
32 set foldenable
33 set confirm
34 " 自动缩进
2 vmap <C-c> "+y""
3 " "C,C++ 按F5编译运行
4 map <F5> :call CompileRunGcc()<CR>
5 func! CompileRunGcc()
6 exec "w"
7 if &filetype == 'c'
8 exec "!g++ % -o %<"
9 exec "! ./%<"
10 elseif &filetype == 'cpp'
11 exec "!g++ % -o %<"
12 exec "! ./%<"
13 elseif &filetype == 'java'
14 exec "!javac %"
15 exec "!java
16 %<"
17 elseif" &filetyp e
18== 'sh'
19 :!./%
20 endif
21 endfunc 5 5 " 设定窗口位置 set statusline=%F%m%r%h%w\ [FORMAT=% {&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\
22 set lines=40 columns=155 " 设定窗口大小
23 set shortmess=atI
24 set nu " 显示行号
25 set go= " 不要图形按钮
26 syntax on " 语法高亮
27 autocmd InsertEnter * se cul " 用浅色高亮当前行
28 set ruler " 显示标尺
29 set nobackup
30 set cursorline
31 set foldcolumn=0
32 set foldenable
33 set confirm
34 " 自动缩进
35 set autoindent
36 set cindent
37 " " Tab键的宽度
38 set tabstop=4
39 " " 统一缩进为4
40 set softtabstop=4
41 set shiftwidth=4
42 " " 不要用空格代替制表符
43 set noexpandtab
44 " " 在行和段开始处使用制表符
45 set smarttab
46 " " 历史记录数
47 set history=1000
48 " "禁止生成临时文件
49 set nobackup
50 set noswapfile
51 " "搜索忽略大小写
52 set ignorecase
53 " "搜索逐字符高亮
54 set hlsearch
55 set incsearch
56 " "行内替换
57 set gdefault
58 " "编码设置
59 set enc=utf-8
60 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
61 " "语言设置
62 set langmenu=zh_CN.UTF-8
63 set helplang=cn
64 " " 我的状态行显示的内容(包括文件类型和解码)
65
66 set laststatus=2
67 " " 命令行(在状态行下)的高度,默认为1,这里是2
68 set cmdheight=2
69 " " 侦测文件类型
36 set cindent
37 " " Tab键的宽度
38 set tabstop=4
39 " " 统一缩进为4
40 set softtabstop=4
41 set shiftwidth=4
42 " " 不要用空格代替制表符
43 set noexpandtab
44 " " 在行和段开始处使用制表符
45 set smarttab
46 " " 历史记录数
47 set history=1000
48 " "禁止生成临时文件
49 set nobackup
50 set noswapfile
51 " "搜索忽略大小写
52 set ignorecase
53 " "搜索逐字符高亮
54 set hlsearch
55 set incsearch
56 " "行内替换
57 set gdefault
58 " "编码设置
59 set enc=utf-8
60 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
61 " "语言设置
62 set langmenu=zh_CN.UTF-8
63 set helplang=cn
64 " " 我的状态行显示的内容(包括文件类型和解码)
65
66 set laststatus=2
67 " " 命令行(在状态行下)的高度,默认为1,这里是2
68 set cmdheight=2
69 " " 侦测文件类型
70 filetype on
71 filetype plugin on
72 " " 为特定文件类型载入相关缩进文件
73 filetype indent on
74 " " 保存全局变量
75 set viminfo+=!
76 " " 带有如下符号的单词不要被换行分割
77 set wildmenu
78 " " 允许backspace和光标键跨越行边界
79 set whichwrap+=<,>,h,l
80 " " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
81 set mouse=a
82 set selection=exclusive
83 set selectmode=mouse,key
84 " " 通过使用: commands命令,告诉我们文件的哪一行被改变过
85 set report=0
86 " " 在被分割的窗口间显示空白,便于阅读
87 set fillchars=vert:\ ,stl:\ ,stlnc:\
88 " " 高亮显示匹配的括号
89 set showmatch
90 " " 匹配括号高亮的时间(单位是十分之一秒)
91 set matchtime=1
92 " " 光标移动到buffer的顶部和底部时保持3行距离
93 set scrolloff=3
94 " " 为C程序提供自动缩进
95 set smartindent
96 " " 高亮显示普通txt文件(需要txt.vim脚本)
97 au BufRead,BufNewFile * setfiletype txt
98 " "自动补全
99 :inoremap ( ()<ESC>i
100 :inoremap ) <c-r>=ClosePair(')')<CR>
101 :inoremap { {<CR>}<ESC>O
102 :inoremap } <c-r>=ClosePair('}')<CR>
103 :inoremap [ []<ESC>i
104 :inoremap ] <c-r>=ClosePair(']')<CR>
105 :inoremap " ""<ESC>i
71 filetype plugin on
72 " " 为特定文件类型载入相关缩进文件
73 filetype indent on
74 " " 保存全局变量
75 set viminfo+=!
76 " " 带有如下符号的单词不要被换行分割
77 set wildmenu
78 " " 允许backspace和光标键跨越行边界
79 set whichwrap+=<,>,h,l
80 " " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
81 set mouse=a
82 set selection=exclusive
83 set selectmode=mouse,key
84 " " 通过使用: commands命令,告诉我们文件的哪一行被改变过
85 set report=0
86 " " 在被分割的窗口间显示空白,便于阅读
87 set fillchars=vert:\ ,stl:\ ,stlnc:\
88 " " 高亮显示匹配的括号
89 set showmatch
90 " " 匹配括号高亮的时间(单位是十分之一秒)
91 set matchtime=1
92 " " 光标移动到buffer的顶部和底部时保持3行距离
93 set scrolloff=3
94 " " 为C程序提供自动缩进
95 set smartindent
96 " " 高亮显示普通txt文件(需要txt.vim脚本)
97 au BufRead,BufNewFile * setfiletype txt
98 " "自动补全
99 :inoremap ( ()<ESC>i
100 :inoremap ) <c-r>=ClosePair(')')<CR>
101 :inoremap { {<CR>}<ESC>O
102 :inoremap } <c-r>=ClosePair('}')<CR>
103 :inoremap [ []<ESC>i
104 :inoremap ] <c-r>=ClosePair(']')<CR>
105 :inoremap " ""<ESC>i
106 :inoremap ' ''<ESC>i
107 function! ClosePair(char)
109 if getline('.')[col('.') - 1] == a:char
110 return "\<Right>"
111 else
112 return a:char
113 endif
114 endfunction
115 filetype plugin indent on
116 "打开文件类型检测, 加了这句才可以用智能补全
117 set completeopt=longest,menu
118 let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
119 let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
120 let g:miniBufExplMapWindowNavVim = 1
121 let g:miniBufExplMapWindowNavArrows = 1
122 let g:miniBufExplMapCTabSwitchBufs = 1
123 let g:miniBufExplModSelTarget = 1
124 let g:winManagerWindowLayout="FileExplorer|TagList"
125 nmap wm :WMToggle<cr>
107 function! ClosePair(char)
109 if getline('.')[col('.') - 1] == a:char
110 return "\<Right>"
111 else
112 return a:char
113 endif
114 endfunction
115 filetype plugin indent on
116 "打开文件类型检测, 加了这句才可以用智能补全
117 set completeopt=longest,menu
118 let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
119 let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
120 let g:miniBufExplMapWindowNavVim = 1
121 let g:miniBufExplMapWindowNavArrows = 1
122 let g:miniBufExplMapCTabSwitchBufs = 1
123 let g:miniBufExplModSelTarget = 1
124 let g:winManagerWindowLayout="FileExplorer|TagList"
125 nmap wm :WMToggle<cr>
安装TagList 插件
http://www.vim.org/scripts/script.php?script_id=273
下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将
解压出来的plugin下的内容拷贝到~/.vim/plugin
7. 在~/.vimrc 中添加:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1
6. 安装⽂文件浏览器和窗⼜⼝口管理器 -- 插件: WinManager
http://www.vim.org/scripts/script.php?script_id=95
下载winmanager.zip,2.X版本以上的。
解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来
的plugin下的内容拷贝到~/.vim/plugin
7. 在~/.vimrc 中添加:
let g:winManagerWindowLayout=‘FileExplorer|TagList'
nmap wm :WMToggle<cr>
8. 然后重启vim, 打开~/XXX.c或~/XXX.cpp, 在normal状态下输⼊入"wm", 你将
看到上图的效果。