zoukankan      html  css  js  c++  java
  • [vim]Vim 配置

    转自: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了 

    .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配置:

  • 相关阅读:
    函数和递归
    对象
    数组
    For...In 声明
    JavaScript 变量的生存期
    Hadoop Hive与Hbase整合+thrift
    朱子治家格言
    大学
    《孙子兵法》【谋攻第三】
    棋经十三篇
  • 原文地址:https://www.cnblogs.com/xlmeng1988/p/vim_setup.html
Copyright © 2011-2022 走看看