• Vim的强大配置文件


    我的vim配置主要有以下优点:

    1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试

    2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改

    3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码

    4.按“F2”可以直接消除代码中的空行

    5.“F3”可列出当前目录文件,打开树状文件目录

    6. 支持鼠标选择、方向键移动

    7. 代码高亮,自动缩进,显示行号,显示状态行

    8.按“Ctrl + P”可自动补全

    9.[]、{}、()、""、' '等都自动补全

    10.其他功能读者可以研究以下文件

     vim本来就是很强大,很方便的编辑器,加上我的代码后肯定会如虎添翼,或许读者使用其他编程语言,可以根据自己的需要进行修改,配置文件里面已经加上注释。

    读者感兴趣的话直接复制下面的代码到文本文件,然后把文件改名为“ .vimrc” (不要忘记前面的“.”),然后把文件放到用户文件夹的根目录下面即可。重新打开vim即可看到效果。

    为方便管理,源码托管到了github,后期增加了好多新功能,这个是原作者的github,给大家提供参考

    具体详见:https://github.com/ma6174/vim

    简易安装方法:

    打开终端,执行下面的命令就自动安装好了:

    wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x

    下面是精简的,没有插件的vim配置文件,保存到自己的.vimrc文件就能使用。

      1 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
      2   
      3 " 显示相关    
      4   
      5 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
      6   
      7 "set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示    
      8   
      9 "winpos 5 5          " 设定窗口位置    
     10   
     11 "set lines=40 columns=155    " 设定窗口大小    
     12   
     13 "set nu              " 显示行号    
     14   
     15 set go=             " 不要图形按钮    
     16   
     17 "color asmanian2     " 设置背景主题    
     18   
     19 set guifont=Courier_New:h10:cANSI   " 设置字体    
     20   
     21 "syntax on           " 语法高亮    
     22   
     23 autocmd InsertLeave * se nocul  " 用浅色高亮当前行    
     24   
     25 autocmd InsertEnter * se cul    " 用浅色高亮当前行    
     26   
     27 "set ruler           " 显示标尺    
     28   
     29 set showcmd         " 输入的命令显示出来,看的清楚些    
     30   
     31 "set cmdheight=1     " 命令行(在状态行下)的高度,设置为1    
     32   
     33 "set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)    
     34   
     35 "set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离    
     36   
     37 set novisualbell    " 不要闪烁(不明白)    
     38   
     39 set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")}   "状态行显示的内容    
     40   
     41 set laststatus=1    " 启动显示状态行(1),总是显示状态行(2)    
     42   
     43 set foldenable      " 允许折叠    
     44   
     45 set foldmethod=manual   " 手动折叠    
     46   
     47 "set background=dark "背景使用黑色   
     48   
     49 set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限    
     50   
     51 " 显示中文帮助  
     52   
     53 if version >= 603  
     54   
     55     set helplang=cn  
     56   
     57     set encoding=utf-8  
     58   
     59 endif  
     60   
     61 " 设置配色方案  
     62   
     63 "colorscheme murphy  
     64   
     65 "字体   
     66   
     67 "if (has("gui_running"))   
     68   
     69 "   set guifont=Bitstream Vera Sans Mono 10   
     70   
     71 "endif   
     72   
     73   
     74    
     75 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936  
     76   
     77 set termencoding=utf-8  
     78   
     79 set encoding=utf-8  
     80   
     81 set fileencodings=ucs-bom,utf-8,cp936  
     82   
     83 set fileencoding=utf-8  
     84   
     85   
     86   
     87 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
     88   
     89 """""新文件标题""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
     90   
     91 "新建.c,.h,.sh,.java文件,自动插入文件头   
     92   
     93 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"   
     94   
     95 ""定义函数SetTitle,自动插入文件头   
     96   
     97 func SetTitle()   
     98   
     99     "如果文件类型为.sh文件   
    100   
    101     if &filetype == 'sh'   
    102   
    103         call setline(1,"#########################################################################")   
    104   
    105         call append(line("."), "# File Name: ".expand("%"))   
    106   
    107         call append(line(".")+1, "# Author: happy")   
    108   
    109         call append(line(".")+2, "# mail: zaqwsx526@163.com")   
    110   
    111         call append(line(".")+3, "# Created Time: ".strftime("%c"))   
    112   
    113         call append(line(".")+4, "#########################################################################")   
    114   
    115         call append(line(".")+5, "#!/bin/bash")   
    116   
    117         call append(line(".")+6, "")   
    118   
    119     else   
    120   
    121         call setline(1, "/*************************************************************************")   
    122   
    123         call append(line("."), "    > File Name: ".expand("%"))   
    124   
    125         call append(line(".")+1, "    > Author: happy")   
    126   
    127         call append(line(".")+2, "    > Mail: zaqwsx526@163.com ")   
    128   
    129         call append(line(".")+3, "    > Created Time: ".strftime("%c"))   
    130   
    131         call append(line(".")+4, " ************************************************************************/")   
    132   
    133         call append(line(".")+5, "")  
    134   
    135     endif  
    136   
    137     if &filetype == 'cpp'  
    138   
    139         call append(line(".")+6, "#include<iostream>")  
    140   
    141         call append(line(".")+7, "using namespace std;")  
    142   
    143         call append(line(".")+8, "")  
    144   
    145     endif  
    146   
    147     if &filetype == 'c'  
    148   
    149         call append(line(".")+6, "#include<stdio.h>")  
    150   
    151         call append(line(".")+7, "")  
    152   
    153     endif  
    154   
    155     "新建文件后,自动定位到文件末尾  
    156   
    157     autocmd BufNewFile * normal G  
    158   
    159 endfunc   
    160   
    161 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    162   
    163 "键盘命令  
    164   
    165 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    166   
    167   
    168   
    169 nmap <leader>w :w!<cr>  
    170   
    171 nmap <leader>f :find<cr>  
    172   
    173   
    174   
    175 " 映射全选+复制 ctrl+a  
    176   
    177 map <C-A> ggVGY  
    178   
    179 map! <C-A> <Esc>ggVGY  
    180   
    181 map <F12> gg=G  
    182   
    183 " 选中状态下 Ctrl+c 复制  
    184   
    185 vmap <C-c> "+y  
    186   
    187 "去空行    
    188   
    189 nnoremap <F2> :g/^s*$/d<CR>   
    190   
    191 "比较文件    
    192   
    193 nnoremap <C-F2> :vert diffsplit   
    194   
    195 "新建标签    
    196   
    197 map <M-F2> :tabnew<CR>    
    198   
    199 "列出当前目录文件    
    200   
    201 map <F3> :tabnew .<CR>    
    202   
    203 "打开树状文件目录    
    204   
    205 map <C-F3> e    
    206   
    207 "C,C++ 按F5编译运行  
    208   
    209 map <F5> :call CompileRunGcc()<CR>  
    210   
    211 func! CompileRunGcc()  
    212   
    213     exec "w"  
    214   
    215     if &filetype == 'c'  
    216   
    217         exec "!g++ % -o %<"  
    218   
    219         exec "! ./%<"  
    220   
    221     elseif &filetype == 'cpp'  
    222   
    223         exec "!g++ % -o %<"  
    224   
    225         exec "! ./%<"  
    226   
    227     elseif &filetype == 'java'   
    228   
    229         exec "!javac %"   
    230   
    231         exec "!java %<"  
    232   
    233     elseif &filetype == 'sh'  
    234   
    235         :!./%  
    236   
    237     endif  
    238   
    239 endfunc  
    240   
    241 "C,C++的调试  
    242   
    243 map <F8> :call Rungdb()<CR>  
    244   
    245 func! Rungdb()  
    246   
    247     exec "w"  
    248   
    249     exec "!g++ % -g -o %<"  
    250   
    251     exec "!gdb ./%<"  
    252   
    253 endfunc  
    254   
    255 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    256   
    257 ""实用设置  
    258   
    259 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    260   
    261 " 设置当文件被改动时自动载入  
    262   
    263 set autoread  
    264   
    265 " quickfix模式  
    266   
    267 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>  
    268   
    269 "代码补全   
    270   
    271 set completeopt=preview,menu   
    272   
    273 "允许插件    
    274   
    275 filetype plugin on  
    276   
    277 "共享剪贴板    
    278   
    279 set clipboard+=unnamed   
    280   
    281 "从不备份    
    282   
    283 set nobackup  
    284   
    285 "make 运行  
    286   
    287 :set makeprg=g++ -Wall  %  
    288   
    289 "自动保存  
    290   
    291 set autowrite  
    292   
    293 set ruler                   " 打开状态栏标尺  
    294   
    295 set cursorline              " 突出显示当前行  
    296   
    297 set magic                   " 设置魔术  
    298   
    299 set guioptions-=T           " 隐藏工具栏  
    300   
    301 set guioptions-=m           " 隐藏菜单栏  
    302   
    303 "set statusline= %<%F[%1*%M%*%n%R%H]%= %y %0(%{&fileformat} %{&encoding} %c:%l/%L%)  
    304   
    305 " 设置在状态行显示的信息  
    306   
    307 set foldcolumn=0  
    308   
    309 set foldmethod=indent   
    310   
    311 set foldlevel=3   
    312   
    313 set foldenable              " 开始折叠  
    314   
    315 " 不要使用vi的键盘模式,而是vim自己的  
    316   
    317 set nocompatible  
    318   
    319 " 语法高亮  
    320   
    321 set syntax=on  
    322   
    323 " 去掉输入错误的提示声音  
    324   
    325 set noeb  
    326   
    327 " 在处理未保存或只读文件的时候,弹出确认  
    328   
    329 set confirm  
    330   
    331 " 自动缩进  
    332   
    333 set autoindent  
    334   
    335 set cindent  
    336   
    337 " Tab键的宽度  
    338   
    339 set tabstop=4  
    340   
    341 " 统一缩进为4  
    342   
    343 set softtabstop=4  
    344   
    345 set shiftwidth=4  
    346   
    347 " 不要用空格代替制表符  
    348   
    349 set noexpandtab  
    350   
    351 " 在行和段开始处使用制表符  
    352   
    353 set smarttab  
    354   
    355 " 显示行号  
    356   
    357 set number  
    358   
    359 " 历史记录数  
    360   
    361 set history=1000  
    362   
    363 "禁止生成临时文件  
    364   
    365 set nobackup  
    366   
    367 set noswapfile  
    368   
    369 "搜索忽略大小写  
    370   
    371 set ignorecase  
    372   
    373 "搜索逐字符高亮  
    374   
    375 set hlsearch  
    376   
    377 set incsearch  
    378   
    379 "行内替换  
    380   
    381 set gdefault  
    382   
    383 "编码设置  
    384   
    385 set enc=utf-8  
    386   
    387 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936  
    388   
    389 "语言设置  
    390   
    391 set langmenu=zh_CN.UTF-8  
    392   
    393 set helplang=cn  
    394   
    395 " 我的状态行显示的内容(包括文件类型和解码)  
    396   
    397 "set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")}  
    398   
    399 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]  
    400   
    401 " 总是显示状态行  
    402   
    403 set laststatus=2  
    404   
    405 " 命令行(在状态行下)的高度,默认为1,这里是2  
    406   
    407 set cmdheight=2  
    408   
    409 " 侦测文件类型  
    410   
    411 filetype on  
    412   
    413 " 载入文件类型插件  
    414   
    415 filetype plugin on  
    416   
    417 " 为特定文件类型载入相关缩进文件  
    418   
    419 filetype indent on  
    420   
    421 " 保存全局变量  
    422   
    423 set viminfo+=!  
    424   
    425 " 带有如下符号的单词不要被换行分割  
    426   
    427 set iskeyword+=_,$,@,%,#,-  
    428   
    429 " 字符间插入的像素行数目  
    430   
    431 set linespace=0  
    432   
    433 " 增强模式中的命令行自动完成操作  
    434   
    435 set wildmenu  
    436   
    437 " 使回格键(backspace)正常处理indent, eol, start等  
    438   
    439 set backspace=2  
    440   
    441 " 允许backspace和光标键跨越行边界  
    442   
    443 set whichwrap+=<,>,h,l  
    444   
    445 " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)  
    446   
    447 set mouse=a  
    448   
    449 set selection=exclusive  
    450   
    451 set selectmode=mouse,key  
    452   
    453 " 通过使用: commands命令,告诉我们文件的哪一行被改变过  
    454   
    455 set report=0  
    456   
    457 " 在被分割的窗口间显示空白,便于阅读  
    458   
    459 set fillchars=vert: ,stl: ,stlnc:  
    460   
    461 " 高亮显示匹配的括号  
    462   
    463 set showmatch  
    464   
    465 " 匹配括号高亮的时间(单位是十分之一秒)  
    466   
    467 set matchtime=1  
    468   
    469 " 光标移动到buffer的顶部和底部时保持3行距离  
    470   
    471 set scrolloff=3  
    472   
    473 " 为C程序提供自动缩进  
    474   
    475 set smartindent  
    476   
    477 " 高亮显示普通txt文件(需要txt.vim脚本)  
    478   
    479 au BufRead,BufNewFile *  setfiletype txt  
    480   
    481 "自动补全  
    482   
    483 :inoremap ( ()<ESC>i  
    484   
    485 :inoremap ) <c-r>=ClosePair(')')<CR>  
    486   
    487 :inoremap { {<CR>}<ESC>O  
    488   
    489 :inoremap } <c-r>=ClosePair('}')<CR>  
    490   
    491 :inoremap [ []<ESC>i  
    492   
    493 :inoremap ] <c-r>=ClosePair(']')<CR>  
    494   
    495 :inoremap " ""<ESC>i  
    496   
    497 :inoremap ' ''<ESC>i  
    498   
    499 function! ClosePair(char)  
    500   
    501     if getline('.')[col('.') - 1] == a:char  
    502   
    503         return "<Right>"  
    504   
    505     else  
    506   
    507         return a:char  
    508   
    509     endif  
    510   
    511 endfunction  
    512   
    513 filetype plugin indent on   
    514   
    515 "打开文件类型检测, 加了这句才可以用智能补全  
    516   
    517 set completeopt=longest,menu  
    518   
    519 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    520   
    521 " CTags的设定    
    522   
    523 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    524   
    525 let Tlist_Sort_Type = "name"    " 按照名称排序    
    526   
    527 let Tlist_Use_Right_Window = 1  " 在右侧显示窗口    
    528   
    529 let Tlist_Compart_Format = 1    " 压缩方式    
    530   
    531 let Tlist_Exist_OnlyWindow = 1  " 如果只有一个buffer,kill窗口也kill掉buffer    
    532   
    533 let Tlist_File_Fold_Auto_Close = 0  " 不要关闭其他文件的tags    
    534   
    535 let Tlist_Enable_Fold_Column = 0    " 不要显示折叠树    
    536   
    537 autocmd FileType java set tags+=D:	oolsjava	ags    
    538   
    539 "autocmd FileType h,cpp,cc,c set tags+=D:	oolscpp	ags    
    540   
    541 "let Tlist_Show_One_File=1            "不同时显示多个文件的tag,只显示当前文件的  
    542   
    543 "设置tags    
    544   
    545 set tags=tags    
    546   
    547 "set autochdir   
    548   
    549   
    550   
    551 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    552   
    553 "其他东东  
    554   
    555 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    556   
    557 "默认打开Taglist   
    558   
    559 let Tlist_Auto_Open=1   
    560   
    561 """"""""""""""""""""""""""""""   
    562   
    563 " Tag list (ctags)   
    564   
    565 """"""""""""""""""""""""""""""""   
    566   
    567 let Tlist_Ctags_Cmd = '/usr/bin/ctags'   
    568   
    569 let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的   
    570   
    571 let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim   
    572   
    573 let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口  
    574   
    575 " minibufexpl插件的一般设置  
    576   
    577 let g:miniBufExplMapWindowNavVim = 1  
    578   
    579 let g:miniBufExplMapWindowNavArrows = 1  
    580   
    581 let g:miniBufExplMapCTabSwitchBufs = 1  
    582 let g:miniBufExplModSelTarget = 1  
    583 
    584 vimrc配置内容
    View Code

    为了方便大家下载使用,我把它放到我的空间里了,两个命令就可以瞬间得到.vimrc文件

    wget  https://files.cnblogs.com/ma6174/vimrc.zip

    unzip  -f  vimrc.zip  -d  ~/

    具体内容参照是https://blog.csdn.net/u010871058/article/details/54253774作者转

    ================================================================================== = 黑发不知勤学早,白首方悔读书迟。 --颜真卿《劝学》
  • 相关阅读:
    顺序容器添加,查询,删除元素
    使用fiddler对app做弱网测试
    工作总结
    软件测试面试题_3
    软件测试面试题_2
    软件测试面试题_1
    MySQL的下载及安装
    关于let以及var的区别
    关于获取各种浏览器可见窗口大小的一点点研究
    log4J指定类下面的日志分隔
  • 原文地址:https://www.cnblogs.com/happy1983/p/9154058.html
Copyright © 2020-2023  润新知