[vim]Vim 配置

摘要:
转移自:http://www.cnblogs.com/witcxc/archive/2011/12/28/2304704.htmlvim使用名为vimrc的文件来设置默认安装的vim-tiny设置文件。您可以在/usr/share/vim中找到它。这非常简单。如果您的主目录中没有vimrc文件,您可以:cp/usr/share/vim/vimXX/vimrc_example.vim~/.vi

转自:http://www.cnblogs.com/witcxc/archive/2011/12/28/2304704.html

vim通过一个叫vimrc的文件来进行设置 
默认安装的vim-tiny的设置文件可以在/usr/share/vim中找到,果然极其简洁 

若你的home目录下没有.vimrc文件,你可以:

cp /usr/share/vim/vimXX/vimrc_example.vim ~/.vimrc

其中xx为版本号
这里我们需要重新定制一个 

vimrc的存放位置: 
系统 vimrc 文件: "$VIM/vimrc" 
用户 vimrc 文件: "$HOME/.vimrc" 
用户 exrc 文件: "$HOME/.exrc" 
系统 gvimrc 文件: "$VIM/gvimrc" 
用户 gvimrc 文件: "$HOME/.gvimrc" 
系统菜单文件: "$VIMRUNTIME/menu.vim" 
$VIM 预设值: "/usr/share/vim"

下面是网上比较流行的一个版本,可以直接拿来用 
在用戶主目录下建一个文件.vimrc(这是一个隐藏文件),把下面的内容拷贝到这个文件中 
再用vim打开程序,就能看到语法高亮以及其他诸多功能 
当然完全可以再在上面进行删改,添加代码折叠啊或是增加一些windows的文件保存快捷方式什么的 
不想麻烦的,下面的直接拿来用就OK了 

[vim]Vim 配置第1张[vim]Vim 配置第2张.vimrc
  1 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
  2 " 一般设定 
  3 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
  4 " 设定默认解码 
  5 set fenc=utf-8 
  6 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 
  7 
  8 " 不要使用vi的键盘模式,而是vim自己的 
  9 set nocompatible 
 10 
 11 " history文件中需要记录的行数 
 12 set history=100 
 13 
 14 " 在处理未保存或只读文件的时候,弹出确认 
 15 set confirm 
 16 
 17 " 与windows共享剪贴板 
 18 set clipboard+=unnamed 
 19 
 20 " 侦测文件类型 
 21 filetype on 
 22 
 23 " 载入文件类型插件 
 24 filetype plugin on 
 25 
 26 " 为特定文件类型载入相关缩进文件 
 27 filetype indent on 
 28 
 29 " 保存全局变量 
 30 set viminfo+=! 
 31 
 32 " 带有如下符号的单词不要被换行分割 
 33 set iskeyword+=_,$,@,%,#,- 
 34 
 35 " 语法高亮 
 36 syntax on 
 37 
 38 " 高亮字符,让其不受100列限制 
 39 :highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white 
 40 :match OverLength '\%101v.*' 
 41 
 42 " 状态行颜色 
 43 highlight StatusLine guifg=SlateBlue guibg=Yellow 
 44 highlight StatusLineNC guifg=Gray guibg=White 
 45 
 46 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
 47 " 文件设置 
 48 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
 49 " 不要备份文件(根据自己需要取舍) 
 50 set nobackup 
 51 
 52 " 不要生成swap文件,当buffer被丢弃的时候隐藏它 
 53 setlocal noswapfile 
 54 set bufhidden=hide 
 55 
 56 " 字符间插入的像素行数目 
 57 set linespace=0 
 58 
 59 " 增强模式中的命令行自动完成操作 
 60 set wildmenu 
 61 
 62 " 在状态行上显示光标所在位置的行号和列号 
 63 set ruler 
 64 set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%) 
 65 
 66 " 命令行(在状态行下)的高度,默认为1,这里是2 
 67 set cmdheight=2 
 68 
 69 " 使回格键(backspace)正常处理indent, eol, start等 
 70 set backspace=2 
 71 
 72 " 允许backspace和光标键跨越行边界 
 73 set whichwrap+=<,>,h,l 
 74 
 75 " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位) 
 76 set mouse=a 
 77 set selection=exclusive 
 78 set selectmode=mouse,key 
 79 
 80 " 启动的时候不显示那个援助索马里儿童的提示 
 81 set shortmess=atI 
 82 
 83 " 通过使用: commands命令,告诉我们文件的哪一行被改变过 
 84 set report=0 
 85 
 86 " 不让vim发出讨厌的滴滴声 
 87 set noerrorbells 
 88 
 89 " 在被分割的窗口间显示空白,便于阅读 
 90 set fillchars=vert:\ ,stl:\ ,stlnc:\ 
 91 
 92 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
 93 " 搜索和匹配 
 94 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
 95 " 高亮显示匹配的括号 
 96 set showmatch 
 97 
 98 " 匹配括号高亮的时间(单位是十分之一秒) 
 99 set matchtime=5 
100 
101 " 在搜索的时候忽略大小写 
102 set ignorecase 
103 
104 " 不要高亮被搜索的句子(phrases) 
105 set nohlsearch 
106 
107 " 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索) 
108 set incsearch 
109 
110 " 输入:set list命令是应该显示些啥? 
111 set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$ 
112 
113 " 光标移动到buffer的顶部和底部时保持3行距离 
114 set scrolloff=3 
115 
116 " 不要闪烁 
117 set novisualbell 
118 
119 " 我的状态行显示的内容(包括文件类型和解码) 
120 set statusline=%F%m%r%h%w\[POS=%l,%v][%p%%]\%{strftime(\"%d/%m/%y\ -\ %H:%M\")} 
121 
122 " 总是显示状态行 
123 set laststatus=2 
124 
125 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
126 " 文本格式和排版 
127 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
128 " 自动格式化 
129 set formatoptions=tcrqn 
130 
131 " 继承前一行的缩进方式,特别适用于多行注释 
132 set autoindent 
133 
134 " 为C程序提供自动缩进 
135 set smartindent 
136 
137 " 使用C样式的缩进 
138 set cindent 
139 
140 " 制表符为4 
141 set tabstop=4 
142 
143 " 统一缩进为4 
144 set softtabstop=4 
145 set shiftwidth=4 
146 
147 " 不要用空格代替制表符 
148 set noexpandtab 
149 
150 " 不要换行 
151 set nowrap 
152 
153 " 在行和段开始处使用制表符 
154 set smarttab 
155 
156 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
157 " CTags的设定 
158 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
159 " 按照名称排序 
160 let Tlist_Sort_Type = "name" 
161 
162 " 在右侧显示窗口 
163 let Tlist_Use_Right_Window = 1 
164 
165 " 压缩方式 
166 let Tlist_Compart_Format = 1 
167 
168 " 如果只有一个buffer,kill窗口也kill掉buffer 
169 let Tlist_Exist_OnlyWindow = 1 
170 
171 " 不要关闭其他文件的tags 
172 let Tlist_File_Fold_Auto_Close = 0 
173 
174 " 不要显示折叠树 
175 let Tlist_Enable_Fold_Column = 0 
176 
177 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
178 " Autocommands 
179 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
180 " 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示 
181 
182 if has("autocmd") 
183 autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number 
184 autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o--> 
185 autocmd FileType java,c,cpp,cs vmap <C-o> <ESC>'<o 
186 autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100 
187 autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim 
188 autocmd BufReadPost * 
189 \ if line("'\"") > 0 && line("'\"") <= line("$") | 
190 \ exe " normal g`\"" | 
191 \ endif 
192 endif "has("autocmd") 
193 
194 " F5编译和运行C程序,F6编译和运行C++程序 
195 " 请注意,下述代码在windows下使用会报错 
196 " 需要去掉./这两个字符 
197 
198 " C的编译和运行 
199 map <F5> :call CompileRunGcc()<CR> 
200 func! CompileRunGcc() 
201 exec "w" 
202 exec "!gcc % -o %<" 
203 exec "! ./%<" 
204 endfunc 
205 
206 " C++的编译和运行 
207 map <F6> :call CompileRunGpp()<CR> 
208 func! CompileRunGpp() 
209 exec "w" 
210 exec "!g++ % -o %<" 
211 exec "! ./%<" 
212 endfunc 
213 
214 " 能够漂亮地显示.NFO文件 
215 set encoding=utf-8 
216 function! SetFileEncodings(encodings) 
217 let b:myfileencodingsbak=&fileencodings 
218 let &fileencodings=a:encodings 
219 endfunction 
220 function! RestoreFileEncodings() 
221 let &fileencodings=b:myfileencodingsbak 
222 unlet b:myfileencodingsbak 
223 endfunction 
224 
225 au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single au BufReadPost *.nfo call RestoreFileEncodings() 
226 
227 " 高亮显示普通txt文件(需要txt.vim脚本) 
228 au BufRead,BufNewFile * setfiletype txt 
229 
230 " 用空格键来开关折叠 
231 set foldenable 
232 set foldmethod=manual 
233 nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc':'zo')<CR> 
234 
235 " minibufexpl插件的一般设置 
236 let g:miniBufExplMapWindowNavVim = 1 
237 let g:miniBufExplMapWindowNavArrows = 1 
238 let g:miniBufExplMapCTabSwitchBufs = 1 
239 let g:miniBufExplModSelTarget = 1

 另外:

如果要让你的vim配置(~/.vimrc立即生效),你需要在vim中输入:

:so ~/.vimrc 或:source ~/.vimrc

参照:http://vim.wikia.com/wiki/Change_vimrc_with_auto_reload

可以让vimrc在每次保存时立即生效的方法,在.vimrc中添加下行:

autocmd! BufWritePost .vimrc source %

关于autocmd可以参考: http://yangbo.name/wp_page/vi/autocmd.html

另外2:
在插入模式下,你如果误操作使用ctrl+u删除光标所在行或ctrl+w光标前的一个单词,当你退出到一般模式时,是无法使用u来恢复删除的。
这需要添加如下两行:

inoremap <c-u> <c-g>u<c-u> inoremap <c-w> <c-g>u<c-w>

注:前面的一行已经默认在vim的配置中了(vimrc_example.vim)参照:http://vim.wikia.com/wiki/Recover_from_accidental_Ctrl-U

---------------------------------------------------------------------

我的vim配置:

免责声明:文章转载自《[vim]Vim 配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系三种比较好玩的黑客效果JS代码(摘取)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker下修改mysql配置文件

第一步: 找到要修改的镜像 docker ps    第二步: 进入要修改的镜像 docker exec -it 容器ID /bin/bash    第三步: 进入要修改的文件目录 cd /etc/mysql    第四步: 安装vim 如果不安装vim在使用vim的时候会报找不到,在修改docker中mysql的配置文件,无法使用vi命令。 apt...

【vim使用】利用可视块模式给多行代码添加注释

在开发中,可能会遇到一次性给多行代码增加注释的情况。 在Python中,要给代码添加注释,可以在代码前增加一个"#"。 操作步骤如下: ①、在命令模式下,移动到要添加注释代码的第一行,按下"^"将光标移动到行首。 ②、按下"Ctrl + v",命令模式 --> 可视块模式。 ③、使用"j"向下连续选中要添加的代码行。 ④、输入"I",可视块模式 -...

vim使用(转)

安装了Ubuntu 13.10 ,于是便开始捣鼓着用编辑器Vim编写C++的代码,同时通过GCC编译之,并运行显示结果。网上自然都有相应的操作,我最多也就算一次总结而已。(中途输入命令出现了任何错误记得Google哦)首先先安装Vim,通过终端下输入命令 sudo apt-get install vim 按回车后会进行下载安装,当然需要输入密码啦。。这时候...

最优秀的5个Linux文本编辑器

from: http://article.yeeyan.org/view/169956/174836 作为不久前举办的比赛的一部分内容,我从那些选出他们最喜欢的Linux文本编辑器的极客读者们那获得了约200个反馈。 基于这个数据, 最最优秀的Linux文本编辑器是 Vi / Vim Editor Vim以绝对优势获胜在大家的意料之中。如果你不熟悉最好的5...

程序员为什么要学习vim?

vim是优秀程序员必须掌握的工具,如果你真正开始使用它,你会发现它并不会耗费你太多的时间成本。 文本编辑器是开发工具中最重要的工具 如同任何工具一样,如果你能随意拆解,随意组装,那你就能随意掌控它,按照你的需求随意打造它。别的编辑器太庞大,很难拆解,vim就是一个可以随意拆解和组装的编辑器。你能对它进行编程,深度控制它。 生产效率的提高,使用vim的生产...

Vim:Vim入门级配置

转:https://vimjc.com/vimrc-config.html Vim配置文件.vimrc Vim编辑器相关的所有功能开关都可以通过.vimrc文件进行设置。 .vimrc配置文件分系统配置和用户配置两种。 系统vimrc配置文件存放在Vim的安装目录,默认路径为/usr/share/vim/.vimrc。可以使用命令echo $VIM来确定V...