gvim超豪华配置

    技术2025-07-17  7

    通过修改 sudo gvim /etc/vim/vimrc实现

    set helplang=cn     set encoding=utf-8     set cscopequickfix=s-,c-,d-,i-,t-,e-     nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>     nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>     nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>     nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>     nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>     nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>     nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>     nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>     let g:miniBufExplMapCTabSwitchBufs = 1     let g:miniBufExplMapWindowNavVim = 1     let g:miniBufExplMapWindowNavArrows = 1     nnoremap <silent> <F12> :A<CR>     nnoremap <silent> <F3> :Grep<CR>     let g:SuperTabRetainCompletionType=2     let g:SuperTabDefaultCompletionType="<C-X><C-O>"     " 自动语法高亮      syntax on     " 检测文件类型     filetype on     " 检测文件类型插件     filetype plugin on     " 不设定在插入状态无法用退格键和 Delete 键删除回车符     set backspace=indent,eol,start     set whichwrap+=<,>,h,l     " 显示行号     set number     " 上下可视行数     set scrolloff=6     " replace tab with space     set expandtab     " 设定 tab 长度为 4     set tabstop=4     " 设置按BackSpace的时候可以一次删除掉4个空格     set softtabstop=4     " 设定 << 和 >> 命令移动时的宽度为 4     set shiftwidth=4     set smarttab     set history=1024     " 不突出显示当前行     set nocursorline     " 覆盖文件时不备份     set nobackup     " 自动切换当前目录为当前文件所在的目录     set autochdir     " 搜索时忽略大小写,但在有一个或以上大写字母时仍大小写敏感     set ignorecase     set smartcase     " 搜索到文件两端时不重新搜索     set nowrapscan     " 实时搜索     set incsearch     " 搜索时高亮显示被找到的文本     set hlsearch     " 关闭错误声音     set noerrorbells     set novisualbell     "set t_vb=          " 不自动换行     "set nowrap     "How many tenths of a second to blink     set mat=2     " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存     set hidden     " 智能自动缩进     set smartindent     " 设定命令行的行数为 1     set cmdheight=1     " 显示状态栏 (默认值为 1, 无法显示状态栏)     set laststatus=2     "显示括号配对情况     set showmatch          " 解决自动换行格式下, 如高度在折行之后超过窗口高度结果这一行看不到的问题     set display=lastline     " 设定配色方案     colorscheme desert " 设置在状态行显示的信息     set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ [%{(&fenc==\"\"?&enc:&fenc).(&bomb?\",BOM\":\"\")}]\ %c:%l/%L%)          " 显示Tab符     "set list     "set listchars=tab:\|\ ,trail:.,extends:>,precedes:<     "启动时不显示 捐赠提示     set shortmess=atl          "blank      空白     "buffers    缓冲区     "curdir     当前目录     "folds      折叠     "help       帮助     "options    选项     "tabpages   选项卡     "winsize    窗口大小     "slash      转换文件路径中的\为/以使session文件兼容unix     "unix       设置session文件中的换行模式为unix     set sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize,slash,unix,resize          " 允许backspace和光标键跨越行边界     set whichwrap+=<,>,h,l     " backspace     set backspace=eol,start,indent          " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)     set mouse=a     set selection=exclusive     set selectmode=mouse,key          " 在被分割的窗口间显示空白,便于阅读     set fillchars=vert:\ ,stl:\ ,stlnc:\          " 高亮显示匹配的括号     set showmatch          " 匹配括号高亮的时间(单位是十分之一秒)     set matchtime=5          "编码设置     set enc=utf-8     set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936          " set mapleader     let mapleader=","          nmap J 5j     nmap K 5k          " Ctrl+a     nmap <silent> <C-a> ggvG$          " 选中状态下 Ctrl+c 复制     vnoremap <c-c> "+y          " Ctrl+v     nmap <silent> <C-v> "+p          " 窗口切换     nnoremap <c-h> <c-w>h     nnoremap <c-l> <c-w>l     nnoremap <c-j> <c-w>j     nnoremap <c-k> <c-w>k          " 插入模式下上下左右移动光标     inoremap <c-h> <left>     inoremap <c-l> <right>     inoremap <c-j> <c-o>gj     inoremap <c-k> <c-o>gk          " Ctrl+s     " If the current buffer has never been saved, it will have no name,     " call the file browser to save it, otherwise just save it.     "nnoremap <silent> <C-S> :if expand("%") == ""<CR>browse confirm w<CR>else<CR>confirm w<CR>endif<CR>     "imap <c-s> <c-o><c-s><CR>     " Use CTRL-S for saving, also in Insert mode     nmap <C-S> :update<CR>     vmap <C-S> <C-C>:update<CR>     imap <C-S> <C-O>:update<CR>          " C++的编译和运行     "map <F6> :call CompileRunGpp()<CR>     "func! CompileRunGpp()     "exec "w"     "exec "!g++ % -o %<"     "exec "! ./%<"     "endfunc     map <F10> :call RunGpp()<cr>       func! RunGpp()       exec "w"       exec "! ./%<"       endfunc            "vim plugin setting          "======================"     set tags=tags     set tags+=~/.vim/my-tags/tags     set tags+=~/.vim/my-tags/stl-tags     set tags+=~/.vim/my-tags/sys-tags     set autochdir       "Update ctags       map <silent> <F8> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<cr>           """"""""""""""""""""""""""""""        " Tag list (ctags)     """"""""""""""""""""""""""""""     "if MySys() == "windows"                "设定windows系统中ctags程序的位置     "   let Tlist_Ctags_Cmd = 'ctags'     "elseif MySys() == "linux"              "设定Linux系统中ctags程序的位置        let Tlist_Ctags_Cmd = '/home/sphinx/.vim/ctags-5.8/ctags'     "endif          let Tlist_Show_One_File = 1            "不同时显示多个文件的tag,只显示当前文件的     let Tlist_Exit_OnlyWindow = 1          "如果taglist窗口是最后一个窗口,则退出vim     let Tlist_Use_Right_Window = 0         "在右侧窗口中显示taglist窗口     let Tlist_OnlyWindow=1          "let Tlist_Use_Right_Window=0     "let Tlist_Sort_Type='name'     "let Tlist_Show_Menu=1     "let Tlist_Max_Submenu_Items=10     "let Tlist_Max_Tag_length=16     "20     "let Tlist_Use_SingleClick=0     "let Tlist_Auto_Open=0     "let Tlist_Close_On_Select=0     "let Tlist_File_Fold_Auto_Close=1     "let Tlist_GainFocus_On_ToggleOpen=0     "let Tlist_Process_File_Always=1     "let Tlist_WinHeight=10     "let Tlist_WinWidth=18     "let Tlist_Use_Horiz_Window=0          let Tlist_Auto_Highlight_Tag = 1     "let Tlist_Auto_Open = 1     let Tlist_Auto_Update = 1     let Tlist_Close_On_Select = 0     let Tlist_Compact_Format = 0     let Tlist_Display_Prototype = 0     let Tlist_Display_Tag_Scope = 1     let Tlist_Enable_Fold_Column = 0     let Tlist_File_Fold_Auto_Close = 0     let Tlist_GainFocus_On_ToggleOpen = 1     let Tlist_Hightlight_Tag_On_BufEnter = 1     let Tlist_Inc_Winwidth = 0     let Tlist_Max_Submenu_Items = 1     let Tlist_Max_Tag_Length = 30     let Tlist_Process_File_Always = 0     let Tlist_Show_Menu = 0     let Tlist_Sort_Type = "order"     let Tlist_Use_Horiz_Window = 0     let Tlist_WinWidth = 31          map <F12> :TlistOpen<CR>          "OMNI     "omnicppcoplete       "-- omnicppcomplete setting --        set completeopt=menu,menuone        let OmniCpp_MayCompleteDot = 1        " autocomplete with .        let OmniCpp_MayCompleteArrow = 1        " autocomplete with ->        let OmniCpp_MayCompleteScope = 1        " autocomplete with ::        let OmniCpp_SelectFirstItem = 2        " select first item (but don't insert)        let OmniCpp_NamespaceSearch = 2        " search namespaces in this and included files        let OmniCpp_ShowPrototypeInAbbr = 1        " show function prototype in popup window        let OmniCpp_GlobalScopeSearch=1        let OmniCpp_DisplayMode=1        let OmniCpp_DefaultNamespaces=["std"]       set nocp       filetype plugin on            "WinManager     let g:winManagerWindowLayout='FileExplorer|TagList'     "let g:winManagerWindowLayout='FileExplorer|BufExplorer|TagList'     let g:persistentBehaviour=0     let g:winManagerWidth=20     let g:defaultExplorer=1     nmap wm :WMToggle<cr>          "QuickFix     nmap <F6> :cn<cr>     nmap <F7> :cp<cr>          "MiniBufExplorer     "let g:miniBufExplMapWindowNavVim = 1     "let g:miniBufExplMapWindowNavArrows = 1     let g:miniBufExplModSelTarget = 1     let g:miniBufExplorerMoreThanOne = 2     let g:miniBufExplModSelTarget = 0     let g:miniBufExplUseSingleClick = 1     let g:miniBufExplMapWindowNavVim = 1     let g:miniBufExplVSplit = 15    "25     let g:miniBufExplSplitBelow=1          let g:bufExplorerSortBy = "name"          autocmd BufRead,BufNew :call UMiniBufExplorer          map <leader>u :TMiniBufExplorer<cr>               "AutoClose     "let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'"}     let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'"}      """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""      "   Maintainer:      "   "       Geek SphinX     "   "       topcodersphinx@gmail.com     "   "     "   "   Version:     "   "       1.0 - Thu Nov  1 17:21:44 CST 2012     "   "     "   """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""          " Sets how many lines of history VIM has to remember     " set history=1024     "     " " Auto syntax highlight     " set syntax=on     "     " " Check file format     " filetype on     "     " " Enable filetype plugins     " filetype plugin on     " filetype indent on     "     " " Sets non VI compatible mode     " set nocompatible     "     " " Set to auto read when a file is changed from the outside     " set autoread     "     " " With a map leader it's possible to do extra key combinations     " " like <leader>w saves the current file     " let mapleader = ","     " let g:mapleader = ","     "     " " Fast saving     " nmap <leader>w :w<cr>     " nmap <leader>q :q<cr>     "     " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " " => VIM user interface     " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " " Replace J, K     " nmap J 5j     " nmap K 5k     "     " " Ctrl+A to select all content in visual mode     " nmap <silent> <C-a> ggvG$     "     " " Ctrl+C to copy     " vnoremap <C-c> "+y     "     " " Ctrl+V to paste     " nmap <silent> <C-v> "+p     "     " " Set 7 lines to the cursor - when moving vertically using j/k     " set so=7     "     " " Turn on the Wild menu     " set wildmenu     "     " " Ignore compiled files     " set wildignore=*.o,*~,*.pyc     "     " "Always show current position     " set ruler     "     " " Height of the command bar     " set cmdheight=2     "     " " A buffer becomes hidden when it is abandoned     " set hid     "     " " Configure backspace so it acts as it should act     " set whichwrap+=<,>     " set backspace=indent,eol,start     "     " " Ignore case when searching     " set ignorecase     "     " " When searching try to be smart about cases      " set smartcase     "     " " Highlight search results     " set hlsearch     "     " " Makes search act like search in modern browsers     " set incsearch     "     " " Don't redraw while executing macros (good performance config)     " set lazyredraw     "     " " For regular expressions turn magic on     " set magic     "     " " Show matching brackets when text indicator is over them     " set showmatch     "     " " How many tenths of a second to blink when matching brackets     " set mat=2     "     " " No annoying sound on errors set noerrorbells     " set novisualbell     " set t_vb=     " set tm=500     "     " " Show line number     " set number     "     " " Highlight over 80 columns     " highlight OverLength ctermbg=red ctermfg=white guibg=#592929     " match OverLength /\%81v.\+/     "     " " Show Tab symbol     " set list     " set listchars=tab:\|\ ,trail:.,extends:>,precedes:<     "     " " Switch windows     " nnoremap <C-h> <C-w>h     " nnoremap <C-l> <C-w>l     " nnoremap <C-j> <C-w>j     " nnoremap <C-k> <C-w>k     "     " " Move cursor in insert mode     " inoremap <C-h> <C-o>h     " inoremap <C-l> <C-o>l     " inoremap <C-j> <C-o>j     " inoremap <C-k> <C-o>k     "     "     " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " " => Colors and Fonts     " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " " Enable syntax highlighting     " syntax enable     "     " "colorscheme desert     " colorscheme molokai     " set background=dark     "     " " Set extra options when running in GUI mode     " if has("gui_running")     "     set guioptions-=T     "         set guioptions+=e     "             set t_Co=256     "                 set guitablabel=%M\ %t     "                 endif     "     "                 " Set utf8 as standard encoding and en_US as the standard     "                 language     "                 set encoding=utf8     "     "                 " Use Unix as the standard file type     "                 set ffs=unix,dos,mac     "     "                 " Use Inconsolata as the gui font     "                 set guifont=Inconsolata\ 15     "     "                 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " => Text, tab and indent related     " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " " Use spaces instead of tabs     " set expandtab     "     " " Be smart when using tabs ;)     " set smarttab     "     " " 1 tab == 4 spaces     " set shiftwidth=4     " set tabstop=4     "     " " Linebreak on 500 characters     " set lbr     " set tw=500     "     " set ai "Auto indent     " set si "Smart indent     " set wrap "Wrap lines     "     "     " """"""""""""""""""""""""""""""     " " => Status line     " """"""""""""""""""""""""""""""     " " Always show the status line     " set laststatus=2     "     " " Format the status line     " "set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \     " Line:\ %l     "     "     " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " " => Mouse     " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " set mouse=a     " set selection=exclusive     " set selectmode=mouse,key     "     " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""     " " => Plugins     " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
    Processed: 0.012, SQL: 9