vim的配置:自己修改.vimrc文件,写自己风格的配置

windows下的gvim配置:

1.如果win下的gvim在保存并退出(:wq或ZZ)的时候,提示说无法写入默默路径下的_viminfo文件,那么,我遇到的情况是自己的HOME路径不存在。默认会在HOME路径中的_viminfo中写入。。参考:http://jiadingjun.blogspot.com/2009/05/viminfo_30.html

2.ctags报错

需要下载ctags.zip然后复制ctags.exe到<vimdir>/vim73/下面

参考配置:http://www.cnblogs.com/xiekeli/archive/2012/08/13/2637176.html

3.win下的gvim编译java文件,文件中的中文报错,cmd说不支持gbk

可以自己设定快捷键编译,编译的语句在vimrc中添加编码参数:

 1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 2 " 语言的编译和运行           
 3 " 支持的语言:java         F5编译(保存+编译)  F6运行
 4 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 5 func! CompileCode()
 6     exec "w"
 7     if &filetype == "java"
 8         exec "!javac -encoding utf-8 %"
 9     endif
10 endfunc
11 func! RunCode()
12     if &filetype == "java"
13         exec "!java -classpath %:h; %:t:r"
14     endif
15 endfunc
16 
17 " F5 保存+编译
18 map <F5> :call CompileCode()<CR>
19 
20 "  F6 运行
21 map <F6> :call RunCode()<CR>

参考:http://s1099.iteye.com/blog/1447662

完整版:

  1 "代码来源:http://s1099.iteye.com/blog/1447662
  2 set nocompatible "不要使用vi的键盘模式,而是vim自己的
  3 source $VIMRUNTIME/mswin.vim
  4 behave mswin    "兼容windows下的快捷键
  5 
  6 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
  7 " GVIM自身的设置
  8 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  9 language messages zh_CN.utf-8   " 解决consle输出乱码
 10 colorscheme desert              " 灰褐色主题
 11 set guioptions-=T        " 隐藏工具栏
 12 set guifont=Monaco:h10            " 字体 && 字号
 13 set noerrorbells        " 关闭错误提示音
 14 set nobackup            " 不要备份文件
 15 set linespace=0            " 字符间插入的像素行数目
 16 set shortmess=atI        " 启动的时候不显示那个援助索马里儿童的提示
 17 set novisualbell        " 不要闪烁 
 18 set scrolloff=3            " 光标移动到buffer的顶部和底部时保持3行距离
 19 set mouse=a             " 可以在buffer的任何地方 ->
 20 set selection=exclusive         " 使用鼠标(类似office中 ->
 21 set selectmode=mouse,key        " 在工作区双击鼠标定位)
 22 set cursorline                  " 突出显示当前行
 23 set nu!   " 显示行号
 24 set whichwrap+=<,>,h,l        " 允许backspace和光标键跨越行边界 
 25 set completeopt=longest,menu    "按Ctrl+N进行代码补全
 26 
 27 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
 28 " 文本格式和排版 
 29 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
 30 set list                        " 显示Tab符,->
 31 set listchars=tab:\|\ ,         " 使用一高亮竖线代替
 32 set tabstop=4            " 制表符为4
 33 set autoindent            " 自动对齐(继承前一行的缩进方式)
 34 set smartindent            " 智能自动缩进(以c程序的方式)
 35 set softtabstop=4 
 36 set shiftwidth=4        " 换行时行间交错使用4个空格
 37 set noexpandtab            " 不要用空格代替制表符
 38 ""set expandtab
 39 set cindent            " 使用C样式的缩进
 40 set smarttab            " 在行和段开始处使用制表符
 41 set nowrap            " 不要换行显示一行 
 42 
 43 
 44 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 45 " 状态行(命令行)的显示
 46 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 47 set cmdheight=2             " 命令行(在状态行下)的高度,默认为1,这里是2
 48 set ruler                 " 右下角显示光标位置的状态行
 49 set laststatus=2         " 开启状态栏信息 
 50 set wildmenu             " 增强模式中的命令行自动完成操作 
 51 
 52 
 53 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 54 " 文件相关
 55 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 56 set fenc=utf-8
 57 set encoding=utf-8        " 设置vim的工作编码为utf-8,如果源文件不是此编码,vim会进行转换后显示
 58 set fileencoding=utf-8        " 让vim新建文件和保存文件使用utf-8编码
 59 set fileencodings=utf-8,gbk,cp936,latin-1
 60 filetype on                     " 侦测文件类型
 61 filetype indent on                 " 针对不同的文件类型采用不同的缩进格式
 62 filetype plugin on                 " 针对不同的文件类型加载对应的插件
 63 syntax on                     " 语法高亮
 64 filetype plugin indent on    " 启用自动补全
 65 
 66 
 67 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 68 " 查找
 69 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 70 set hlsearch                 " 开启高亮显示结果
 71 set nowrapscan               " 搜索到文件两端时不重新搜索
 72 set incsearch                " 开启实时搜索功能
 73 
 74 
 75 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 76 " 语言的编译和运行           
 77 " 支持的语言:java         F5编译(保存+编译)  F6运行
 78 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 79 func! CompileCode()
 80     exec "w"
 81     if &filetype == "java"
 82         exec "!javac -encoding utf-8 %"
 83     endif
 84 endfunc
 85 func! RunCode()
 86     if &filetype == "java"
 87         exec "!java -classpath %:h; %:t:r"
 88     endif
 89 endfunc
 90 
 91 " F5 保存+编译
 92 map <F5> :call CompileCode()<CR>
 93 
 94 "  F6 运行
 95 map <F6> :call RunCode()<CR>
 96 
 97 
 98 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 99 " 实用功能
100 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
101 "--------引号 && 括号自动匹配
102 :inoremap ( ()<ESC>i
103 :inoremap ) <c-r>=ClosePair(')')<CR>
104 :""inoremap { {}<ESC>i
105 :""inoremap } <c-r>=ClosePair('}')<CR>
106 imap { {}<ESC>i<CR><ESC>O 
107 "插入大括号 就是录制一个宏
108 :inoremap [ []<ESC>i
109 :inoremap ] <c-r>=ClosePair(']')<CR>
110 ":inoremap < <><ESC>i
111 ":inoremap > <c-r>=ClosePair('>')<CR>
112 :inoremap " ""<ESC>i
113 :inoremap ' ''<ESC>i
114 :inoremap ` ``<ESC>i
115 function ClosePair(char)
116     if getline('.')[col('.') - 1] == a:char
117         return "\<Right>"
118     else
119         return a:char
120     endif
121 endf
122 "--------启用代码折叠,用空格键来开关折叠 
123 set foldenable             " 打开代码折叠
124 set foldmethod=syntax        " 选择代码折叠类型
125 set foldlevel=100            " 禁止自动折叠
126 nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc':'zo')<CR> 
127 
128 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
129 " 插件
130 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
131 " <F9>打开文件浏览窗口   插件为WinManager
132 let g:winManagerWindowLayout='FileExplorer'
133 nmap <F9> :WMToggle<CR>
134 
135 " MiniBufExplorer     
136 let g:miniBufExplMapWindowNavVim = 1 
137 let g:miniBufExplMapWindowNavArrows = 1 
138 let g:miniBufExplMapCTabSwitchBufs = 1 
139 let g:miniBufExplModSelTarget = 1 
140 
141 "新建.c,.h,.sh,.java文件,自动插入文件头 
142 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
143 ""定义函数SetTitle,自动插入文件头 
144 func SetTitle() 
145     "如果文件类型为.sh文件 
146     if &filetype == 'sh'
147         call setline(1,"\###########################################################") 
148         call append(line("."), "\# Filename: ".expand("%")) 
149         call append(line(".")+1, "\# Author: ChrisZZ") 
150         call append(line(".")+2, "\# E-mail: zchrissirhcz@163.com") 
151         call append(line(".")+3, "\# Created Time: ".strftime("%c")) 
152         call append(line(".")+4, "\###################################################") 
153         call append(line(".")+5, "\#!/bin/bash") 
154         call append(line(".")+6, "") 
155     endif
156 
157     if &filetype == 'c'
158         call setline(1, "/*") 
159         call append(line("."), " * =================================================")
160         call append(line(".")+1, " *")
161         call append(line(".")+2, " *       Filename:  ".expand("%")) 
162         call append(line(".")+3, " *")
163         call append(line(".")+4, " *    Description:  ")
164         call append(line(".")+5, " *")
165         call append(line(".")+6, " *        Version:  0.01")
166         call append(line(".")+7, " *        Created:  ".strftime("%c")) 
167         call append(line(".")+8, " *         Author:  ChrisZZ, zchrissirhcz@163.com")
168         call append(line(".")+9," *        Company:  ZJUT")
169         call append(line(".")+10, " *")
170         call append(line(".")+11, " * =================================================")
171         call append(line(".")+12, " */")
172         call append(line(".")+13, "#include<stdio.h>")
173         call append(line(".")+14, "")
174         call append(line(".")+15, "int main(int argc, char** argv){")
175         call append(line(".")+16, "")
176         call append(line(".")+17, "    return 0;")
177         call append(line(".")+18, "}")
178     endif
179 
180     if &filetype == 'cpp'
181         call setline(1, "/*") 
182         call append(line("."), " * =================================================")
183         call append(line(".")+1, " *")
184         call append(line(".")+2, " *       Filename:  ".expand("%")) 
185         call append(line(".")+3, " *")
186         call append(line(".")+4, " *    Description:  ")
187         call append(line(".")+5, " *")
188         call append(line(".")+6, " *        Version:  0.01")
189         call append(line(".")+7, " *        Created:  ".strftime("%c")) 
190         call append(line(".")+8, " *         Author:  ChrisZZ, zchrissirhcz@163.com")
191         call append(line(".")+9," *        Company:  ZJUT")
192         call append(line(".")+10, " *")
193         call append(line(".")+11, " * =================================================")
194         call append(line(".")+12, " */")
195         call append(line(".")+13, "#include<iostream>")
196         call append(line(".")+14, "using namespace std;")
197         call append(line(".")+15, "int main(){")
198         call append(line(".")+16, "")
199         call append(line(".")+17, "    return 0;")
200         call append(line(".")+18, "}")
201     endif
202 
203     if &filetype == 'java'
204         call setline(1, "/*") 
205         call append(line("."), " * =================================================")
206         call append(line(".")+1, " *")
207         call append(line(".")+2, " *       Filename:  ".expand("%")) 
208         call append(line(".")+3, " *")
209         call append(line(".")+4, " *    Description:  ")
210         call append(line(".")+5, " *")
211         call append(line(".")+6, " *        Version:  0.01")
212         call append(line(".")+7, " *        Created:  ".strftime("%c")) 
213         call append(line(".")+8, " *         Author:  ChrisZZ, zchrissirhcz@163.com")
214         call append(line(".")+9," *        Company:  ZJUT")
215         call append(line(".")+10, " *")
216         call append(line(".")+11, " * =================================================")
217         call append(line(".")+12, " */")
218         call append(line(".")+13, "")
219     endif
220 
221 
222     "新建文件后,自动定位到文件末尾
223     autocmd BufNewFile * normal G
224 
225 endfunc

 

 

linux下的.vimrc文件:

1.set nocp   设定不是用vi默认配置。默认配置中当你搜索过某个词之后,再次打开这个文件时有上次搜索的高亮显示。我不喜欢这样(查找的痕迹问题困扰了我好久)

 

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

更新

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

最近在学ruby和python的语言,发现用vim时候还是不方便。如果ruby python一个个的去下插件,可行,但是麻烦。vundle真的强大,用git管理vim插件,所以现在用vundle

英文不好的可以看这里http://blog.houqp.me/use-vundle-to-manage-your-plugins/

posted @ 2013-05-11 23:24  ChrisZZ  阅读(1769)  评论(0编辑  收藏  举报