• vim配置


    最近重拾vim,下定决心要好好学习一下vim了(不知道这次能坚持几天。。。)

    基本配置,参考

    http://blog.csdn.net/cbffyx/article/details/8998238  Vim IDE配置,详细教程

    http://blog.csdn.net/wooin/article/details/1858917  手把手教你把Vim改装成一个IDE编程环境(图文)

    全能补全

    http://blog.csdn.net/g_brightboy/article/details/19498983

    下载OmniCppComplete,

    autoload/*    ->    ~/.vim/autoload/

    doc/*    ->    ~/.vim/doc/

    after/*    ->    ~/.vim/after/ 放到对应目录下(http://blog.csdn.net/g_brightboy/article/details/19498983)

    出现错误:全能补全,找不到模式,查了一下http://blog.csdn.net/ordeder/article/details/17473105

    需要重新生成一下tags

    supertab按照吴垠博客中的设置

      project插件配置

    http://www.cnblogs.com/eddy-he/archive/2012/09/08/2676326.html

      自动补全设置

    http://blog.csdn.net/g_brightboy/article/details/19498983

      一键编译运行 http://www.oschina.net/code/snippet_574132_13351

      复制黏贴快捷键

    map <C-c> "+y
    map <C-v> "+p

    附上vimrc配置代码

      1 source ~/.vim/bundles.vim
      2 
      3 " encoding dectection
      4 set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
      5 
      6 " enable filetype dectection and ft specific plugin/indent
      7 filetype plugin indent on
      8 
      9 " enable syntax hightlight and completion
     10 syntax on
     11 
     12 "--------
     13 " Vim UI
     14 "--------
     15 " color scheme
     16 set background=dark
     17 color candy
     18 set ruler " 显示标尺
     19 
     20 " highlight current line
     21 au WinLeave * set nocursorline nocursorcolumn
     22 au WinEnter * set cursorline cursorcolumn
     23 set cursorline cursorcolumn
     24 
     25 " search
     26 set incsearch
     27 "set highlight     " conflict with highlight current line
     28 set ignorecase
     29 set smartcase
     30 
     31 " editor settings
     32 set history=1000
     33 set nocompatible
     34 set nofoldenable                                                  " disable folding"
     35 set confirm                                                       " prompt when existing from an unsaved file
     36 set backspace=indent,eol,start                                    " More powerful backspacing
     37 set t_Co=256                                                      " Explicitly tell vim that the terminal has 256 colors "
     38 set mouse=a                                                       " use mouse in all modes
     39 set report=0                                                      " always report number of lines changed                "
     40 set nowrap                                                        " dont wrap lines
     41 set scrolloff=5                                                   " 5 lines above/below cursor when scrolling
     42 set number                                                        " show line numbers
     43 set showmatch                                                     " show matching bracket (briefly jump)
     44 set showcmd                                                       " show typed command in status bar
     45 set title                                                         " show file in titlebar
     46 set laststatus=2                                                  " use 2 lines for the status bar
     47 set matchtime=2                                                   " show matching bracket for 0.2 seconds
     48 set matchpairs+=<:>                                               " specially for html
     49 " set relativenumber
     50 
     51 " Default Indentation
     52 set autoindent
     53 set smartindent     " indent when
     54 set tabstop=4       " tab width
     55 set softtabstop=4   " backspace
     56 set shiftwidth=4    " indent width
     57 " set textwidth=79
     58 " set smarttab
     59 set expandtab       " expand tab to space
     60 
     61 autocmd FileType php setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=120
     62 autocmd FileType ruby setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=120
     63 autocmd FileType php setlocal tabstop=4 shiftwidth=4 softtabstop=4 textwidth=120
     64 autocmd FileType coffee,javascript setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=120
     65 autocmd FileType python setlocal tabstop=4 shiftwidth=4 softtabstop=4 textwidth=120
     66 autocmd FileType html,htmldjango,xhtml,haml setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=0
     67 autocmd FileType sass,scss,css setlocal tabstop=2 shiftwidth=2 softtabstop=2 textwidth=120
     68 
     69 " syntax support
     70 autocmd Syntax javascript set syntax=jquery   " JQuery syntax support
     71 " js
     72 let g:html_indent_inctags = "html,body,head,tbody"
     73 let g:html_indent_script1 = "inc"
     74 let g:html_indent_style1 = "inc"
     75 
     76 "-----------------
     77 " Plugin settings
     78 "-----------------
     79 " Rainbow parentheses for Lisp and variants
     80 let g:rbpt_colorpairs = [
     81      ['brown',       'RoyalBlue3'],
     82      ['Darkblue',    'SeaGreen3'],
     83      ['darkgray',    'DarkOrchid3'],
     84      ['darkgreen',   'firebrick3'],
     85      ['darkcyan',    'RoyalBlue3'],
     86      ['darkred',     'SeaGreen3'],
     87      ['darkmagenta', 'DarkOrchid3'],
     88      ['brown',       'firebrick3'],
     89      ['gray',        'RoyalBlue3'],
     90      ['black',       'SeaGreen3'],
     91      ['darkmagenta', 'DarkOrchid3'],
     92      ['Darkblue',    'firebrick3'],
     93      ['darkgreen',   'RoyalBlue3'],
     94      ['darkcyan',    'SeaGreen3'],
     95      ['darkred',     'DarkOrchid3'],
     96      ['red',         'firebrick3'],
     97      ]
     98 let g:rbpt_max = 16
     99 autocmd Syntax lisp,scheme,clojure,racket RainbowParenthesesToggle
    100 
    101 " tabbar
    102 let g:Tb_MaxSize = 2
    103 let g:Tb_TabWrap = 1
    104 
    105 hi Tb_Normal guifg=white ctermfg=white
    106 hi Tb_Changed guifg=green ctermfg=green
    107 hi Tb_VisibleNormal ctermbg=252 ctermfg=235
    108 hi Tb_VisibleChanged guifg=green ctermbg=252 ctermfg=white
    109 
    110 " easy-motion
    111 let g:EasyMotion_leader_key = '<Leader>'
    112 
    113 " Tagbar
    114 let g:tagbar_left=1
    115 let g:tagbar_width=30
    116 let g:tagbar_autofocus = 1
    117 let g:tagbar_sort = 0
    118 let g:tagbar_compact = 1
    119 " tag for coffee
    120 if executable('coffeetags')
    121   let g:tagbar_type_coffee = {
    122          'ctagsbin' : 'coffeetags',
    123          'ctagsargs' : '',
    124          'kinds' : [
    125          'f:functions',
    126          'o:object',
    127          ],
    128          'sro' : ".",
    129          'kind2scope' : {
    130          'f' : 'object',
    131          'o' : 'object',
    132          }
    133          }
    134 
    135   let g:tagbar_type_markdown = {
    136      'ctagstype' : 'markdown',
    137      'sort' : 0,
    138      'kinds' : [
    139          'h:sections'
    140      ]
    141      }
    142 endif
    143 
    144 " Nerd Tree
    145 let NERDChristmasTree=0
    146 let NERDTreeWinSize=30
    147 let NERDTreeChDirMode=2
    148 let NERDTreeIgnore=['~$', '.pyc$', '.swp$']
    149 " let NERDTreeSortOrder=['^__.py$', '/$', '*', '.swp$',  '~$']
    150 let NERDTreeShowBookmarks=1
    151 let NERDTreeWinPos = "right"
    152 
    153 " nerdcommenter
    154 let NERDSpaceDelims=1
    155 " nmap <D-/> :NERDComToggleComment<cr>
    156 let NERDCompactSexyComs=1
    157 
    158 " ZenCoding
    159 let g:user_emmet_expandabbr_key='<C-j>'
    160 
    161 " powerline
    162 "let g:Powerline_symbols = 'fancy'
    163 
    164 " NeoComplCache
    165 let g:neocomplcache_enable_at_startup=1
    166 let g:neoComplcache_disableautocomplete=1
    167 "let g:neocomplcache_enable_underbar_completion = 1
    168 "let g:neocomplcache_enable_camel_case_completion = 1
    169 let g:neocomplcache_enable_smart_case=1
    170 let g:neocomplcache_min_syntax_length = 3
    171 let g:neocomplcache_lock_buffer_name_pattern = '*ku*'
    172 set completeopt-=preview
    173 
    174 imap <C-k> <Plug>(neocomplcache_snippets_force_expand)
    175 smap <C-k> <Plug>(neocomplcache_snippets_force_expand)
    176 imap <C-l> <Plug>(neocomplcache_snippets_force_jump)
    177 smap <C-l> <Plug>(neocomplcache_snippets_force_jump)
    178 
    179 " Enable omni completion.
    180 autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
    181 autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
    182 autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
    183 autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
    184 autocmd FileType c setlocal omnifunc=ccomplete#Complete
    185 if !exists('g:neocomplcache_omni_patterns')
    186   let g:neocomplcache_omni_patterns = {}
    187 endif
    188 let g:neocomplcache_omni_patterns.erlang = '[a-zA-Z]|:'
    189 
    190 " SuperTab
    191 " let g:SuperTabDefultCompletionType='context'
    192 let g:SuperTabDefaultCompletionType = '<C-X><C-U>'
    193 let g:SuperTabRetainCompletionType=2
    194 
    195 " ctrlp
    196 set wildignore+=*/tmp/*,*.so,*.o,*.a,*.obj,*.swp,*.zip,*.pyc,*.pyo,*.class,.DS_Store  " MacOSX/Linux
    197 let g:ctrlp_custom_ignore = '.git$|.hg$|.svn$'
    198 
    199 " Keybindings for plugin toggle
    200 nnoremap <F2> :set invpaste paste?<CR>
    201 set pastetoggle=<F2>
    202 nmap <F5> :TagbarToggle<cr>
    203 nmap <F6> :NERDTreeToggle<cr>
    204 nmap <F3> :GundoToggle<cr>
    205 nmap <F4> :IndentGuidesToggle<cr>
    206 nmap  <D-/> :
    207 nnoremap <leader>a :Ack
    208 nnoremap <leader>v V`]
    209 
    210 "------------------
    211 " Useful Functions
    212 "------------------
    213 " easier navigation between split windows
    214 nnoremap <c-j> <c-w>j
    215 nnoremap <c-k> <c-w>k
    216 nnoremap <c-h> <c-w>h
    217 nnoremap <c-l> <c-w>l
    218 
    219 " When editing a file, always jump to the last cursor position
    220 autocmd BufReadPost *
    221        if ! exists("g:leave_my_cursor_position_alone") |
    222            if line("'"") > 0 && line ("'"") <= line("$") |
    223                exe "normal g'"" |
    224            endif |
    225        endif
    226 
    227 " w!! to sudo & write a file
    228 cmap w!! %!sudo tee >/dev/null %
    229 
    230 " Quickly edit/reload the vimrc file
    231 nmap <silent> <leader>ev :e $MYVIMRC<CR>
    232 nmap <silent> <leader>sv :so $MYVIMRC<CR>
    233 
    234 " sublime key bindings
    235 nmap <D-]> >>
    236 nmap <D-[> <<
    237 vmap <D-[> <gv
    238 vmap <D-]> >gv
    239 
    240 " eggcache vim
    241 nnoremap ; :
    242 :command W w
    243 :command WQ wq
    244 :command Wq wq
    245 :command Q q
    246 :command Qa qa
    247 :command QA qa
    248 
    249 " for macvim
    250 if has("gui_running")
    251     set go=aAce  " remove toolbar
    252     "set transparency=30
    253     "set guifont=Bitstreamcharter:12
    254     set gfn=Bitstream Vera Sans Mono 30
    255     set showtabline=2
    256     set columns=140
    257     set lines=40
    258     noremap <D-M-Left> :tabprevious<cr>
    259     noremap <D-M-Right> :tabnext<cr>
    260     map <D-1> 1gt
    261     map <D-2> 2gt
    262     map <D-3> 3gt
    263     map <D-4> 4gt
    264     map <D-5> 5gt
    265     map <D-6> 6gt
    266     map <D-7> 7gt
    267     map <D-8> 8gt
    268     map <D-9> 9gt
    269     map <D-0> :tablast<CR>
    270 endif
    271 
    272   "--ctags setting--
    273     " 按下F5重新生成tag文件,并更新taglist
    274     map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>
    275     imap <F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>
    276     set tags=tags
    277     set tags+=./tags "add current directory's generated tags file
    278     set tags+=~/liuyanjie/code/tags "add new tags file(刚刚生成tags的路径,在ctags -R 生成tags文件后,不要将tags移动到别的目录,否则ctrl+]时,会提示找不到源码文件)
    279 
    280 
    281  "-- Taglist setting --
    282     let Tlist_Ctags_Cmd='ctags' "因为我们放在环境变量里,所以可以直接执行
    283     let Tlist_Use_Right_Window=1 "让窗口显示在右边,0的话就是显示在左边
    284     let Tlist_Show_One_File=0 "让taglist可以同时展示多个文件的函数列表
    285     let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
    286     let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim
    287     "是否一直处理tags.1:处理;0:不处理
    288     let Tlist_Process_File_Always=1 "实时更新tags
    289     let Tlist_Inc_Winwidth=0
    290 
    291 "默认打开Tlist
    292  let Tlist_Auto_Open=1
    293 
    294 set tags=tags;
    295 
    296 
    297  "-- WinManager setting --
    298     let g:winManagerWindowLayout='FileExplorer|TagList' " 设置我们要管理的插件
    299     "let g:persistentBehaviour=0 " 如果所有编辑文件都关闭了,退出vim
    300     nmap wm :WMToggle<cr> 
    301 
    302 
    303  " -- MiniBufferExplorer --
    304     let g:miniBufExplMapWindowNavVim = 1 " 按下Ctrl+h/j/k/l,可以切换到当前窗口的上下左右窗口
    305     let g:miniBufExplMapWindowNavArrows = 1 " 按下Ctrl+箭头,可以切换到当前窗口的上下左右窗口
    306     let g:miniBufExplMapCTabSwitchBufs = 1 " 启用以下两个功能:Ctrl+tab移到下一个buffer并在当前窗口打开;Ctrl+Shift+tab移到上一个buffer并在当前窗口打开;ubuntu好像不支持
    307     "let g:miniBufExplMapCTabSwitchWindows = 1 " 启用以下两个功能:Ctrl+tab移到下一个窗口;Ctrl+Shift+tab移到上一个窗口;ubuntu好像不支持
    308     let g:miniBufExplModSelTarget = 1    " 不要在不可编辑内容的窗口(如TagList窗口)中打开选中的buffer
    309 
    310  "--fold setting 折叠设置--
    311     set foldmethod=syntax " 用语法高亮来定义折叠
    312     set foldlevel=100 " 启动vim时不要自动折叠代码
    313     set foldcolumn=5 " 设置折叠栏宽度
    314 
    315 
    316 "-- QuickFix setting --
    317     " 按下F6,执行make clean
    318     map <F6> :make clean<CR><CR><CR>
    319     " 按下F7,执行make编译程序,并打开quickfix窗口,显示编译信息
    320     map <F7> :make<CR><CR><CR> :copen<CR><CR>
    321     " 按下F8,光标移到上一个错误所在的行
    322     map <F8> :cp<CR>
    323     " 按下F9,光标移到下一个错误所在的行
    324     map <F9> :cn<CR>
    325     " 以上的映射是使上面的快捷键在插入模式下也能用
    326     imap <F6> <ESC>:make clean<CR><CR><CR>
    327     imap <F7> <ESC>:make<CR><CR><CR> :copen<CR><CR>
    328     imap <F8> <ESC>:cp<CR>
    329     imap <F9> <ESC>:cn<CR>
    330 
    331 
    332  "-- Cscope setting --
    333     if has("cscope")
    334         set csprg=/usr/bin/cscope        " 指定用来执行cscope的命令
    335         set csto=0                        " 设置cstag命令查找次序:0先找cscope数据库再找标签文件;1先找标签文件再找cscope数据库
    336         set cst                            " 同时搜索cscope数据库和标签文件
    337         set cscopequickfix=s-,c-,d-,i-,t-,e-    " 使用QuickFix窗口来显示cscope查找结果
    338         set nocsverb
    339         if filereadable("cscope.out")    " 若当前目录下存在cscope数据库,添加该数据库到vim
    340             cs add cscope.out
    341         elseif $CSCOPE_DB != ""            " 否则只要环境变量CSCOPE_DB不为空,则添加其指定的数据库到vim
    342             cs add $CSCOPE_DB
    343         endif
    344         set csverb
    345     endif
    346     map <F4> :cs add ./cscope.out .<CR><CR><CR> :cs reset<CR>
    347     imap <F4> <ESC>:cs add ./cscope.out .<CR><CR><CR> :cs reset<CR>
    348     " 将:cs find c等Cscope查找命令映射为<C-_>c等快捷键(按法是先按Ctrl+Shift+-, 然后很快再按下c)
    349     nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
    350     nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
    351     nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
    352     nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
    353     nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
    354     nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
    355     nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
    356     nmap <C-_>i :cs find i <C-R>=expand("<cfile>")<CR><CR> :copen<CR><CR>
    357 
    358     "ew-omni-completion配置
    359     filetype plugin indent on
    360     set completeopt=longest,menu
    361 
    362     "supertab设置
    363     let g:SuperTabRetainCompletionType=2
    364     let g:SuperTabDefaultCompletionType="<C-X><C-O>"
    365 
    366 
    367 
    368 "------------------------------------------------------------------------------
    369 "  < 判断操作系统是否是 Windows 还是 Linux >
    370 "------------------------------------------------------------------------------
    371 if(has("win32") || has("win64") || has("win95") || has("win16"))
    372     let g:iswindows = 1
    373 else
    374     let g:iswindows = 0
    375 endif
    376  
    377 "------------------------------------------------------------------------------
    378 "  < 判断是终端还是 Gvim >
    379 "------------------------------------------------------------------------------
    380 if has("gui_running")
    381     let g:isGUI = 1
    382 else
    383     let g:isGUI = 0
    384 endif
    385  
    386 "------------------------------------------------------------------------------
    387 "  < 编译、连接、运行配置 >
    388 "------------------------------------------------------------------------------
    389 " F9 一键保存、编译、连接存并运行
    390 map <F9> :call Run()<CR>
    391 imap <F9> <ESC>:call Run()<CR>
    392  
    393 " Ctrl + F9 一键保存并编译
    394 map <c-F9> :call Compile()<CR>
    395 imap <c-F9> <ESC>:call Compile()<CR>
    396  
    397 " Ctrl + F10 一键保存并连接
    398 map <c-F10> :call Link()<CR>
    399 imap <c-F10> <ESC>:call Link()<CR>
    400  
    401 let s:LastShellReturn_C = 0
    402 let s:LastShellReturn_L = 0
    403 let s:ShowWarning = 1
    404 let s:Obj_Extension = '.o'
    405 let s:Exe_Extension = '.exe'
    406 let s:Sou_Error = 0
    407  
    408 let s:windows_CFlags = 'gcc -fexec-charset=gbk -Wall -g -O0 -c % -o %<.o'
    409 let s:linux_CFlags = 'gcc -Wall -g -O0 -c % -o %<.o'
    410  
    411 let s:windows_CPPFlags = 'g++ -fexec-charset=gbk -Wall -g -O0 -c % -o %<.o'
    412 let s:linux_CPPFlags = 'g++ -Wall -g -O0 -c % -o %<.o'
    413  
    414 func! Compile()
    415     exe ":ccl"
    416     exe ":update"
    417     if expand("%:e") == "c" || expand("%:e") == "cpp" || expand("%:e") == "cxx"
    418         let s:Sou_Error = 0
    419         let s:LastShellReturn_C = 0
    420         let Sou = expand("%:p")
    421         let Obj = expand("%:p:r").s:Obj_Extension
    422         let Obj_Name = expand("%:p:t:r").s:Obj_Extension
    423         let v:statusmsg = ''
    424         if !filereadable(Obj) || (filereadable(Obj) && (getftime(Obj) < getftime(Sou)))
    425             redraw!
    426             if expand("%:e") == "c"
    427                 if g:iswindows
    428                     exe ":setlocal makeprg=".s:windows_CFlags
    429                 else
    430                     exe ":setlocal makeprg=".s:linux_CFlags
    431                 endif
    432                 echohl WarningMsg | echo " compiling..."
    433                 silent make
    434             elseif expand("%:e") == "cpp" || expand("%:e") == "cxx"
    435                 if g:iswindows
    436                     exe ":setlocal makeprg=".s:windows_CPPFlags
    437                 else
    438                     exe ":setlocal makeprg=".s:linux_CPPFlags
    439                 endif
    440                 echohl WarningMsg | echo " compiling..."
    441                 silent make
    442             endif
    443             redraw!
    444             if v:shell_error != 0
    445                 let s:LastShellReturn_C = v:shell_error
    446             endif
    447             if g:iswindows
    448                 if s:LastShellReturn_C != 0
    449                     exe ":bo cope"
    450                     echohl WarningMsg | echo " compilation failed"
    451                 else
    452                     if s:ShowWarning
    453                         exe ":bo cw"
    454                     endif
    455                     echohl WarningMsg | echo " compilation successful"
    456                 endif
    457             else
    458                 if empty(v:statusmsg)
    459                     echohl WarningMsg | echo " compilation successful"
    460                 else
    461                     exe ":bo cope"
    462                 endif
    463             endif
    464         else
    465             echohl WarningMsg | echo ""Obj_Name"is up to date"
    466         endif
    467     else
    468         let s:Sou_Error = 1
    469         echohl WarningMsg | echo " please choose the correct source file"
    470     endif
    471     exe ":setlocal makeprg=make"
    472 endfunc
    473  
    474 func! Link()
    475     call Compile()
    476     if s:Sou_Error || s:LastShellReturn_C != 0
    477         return
    478     endif
    479     let s:LastShellReturn_L = 0
    480     let Sou = expand("%:p")
    481     let Obj = expand("%:p:r").s:Obj_Extension
    482     if g:iswindows
    483         let Exe = expand("%:p:r").s:Exe_Extension
    484         let Exe_Name = expand("%:p:t:r").s:Exe_Extension
    485     else
    486         let Exe = expand("%:p:r")
    487         let Exe_Name = expand("%:p:t:r")
    488     endif
    489     let v:statusmsg = ''
    490     if filereadable(Obj) && (getftime(Obj) >= getftime(Sou))
    491         redraw!
    492         if !executable(Exe) || (executable(Exe) && getftime(Exe) < getftime(Obj))
    493             if expand("%:e") == "c"
    494                 setlocal makeprg=gcc -o %< %<.o
    495                 echohl WarningMsg | echo " linking..."
    496                 silent make
    497             elseif expand("%:e") == "cpp" || expand("%:e") == "cxx"
    498                 setlocal makeprg=g++ -o %< %<.o
    499                 echohl WarningMsg | echo " linking..."
    500                 silent make
    501             endif
    502             redraw!
    503             if v:shell_error != 0
    504                 let s:LastShellReturn_L = v:shell_error
    505             endif
    506             if g:iswindows
    507                 if s:LastShellReturn_L != 0
    508                     exe ":bo cope"
    509                     echohl WarningMsg | echo " linking failed"
    510                 else
    511                     if s:ShowWarning
    512                         exe ":bo cw"
    513                     endif
    514                     echohl WarningMsg | echo " linking successful"
    515                 endif
    516             else
    517                 if empty(v:statusmsg)
    518                     echohl WarningMsg | echo " linking successful"
    519                 else
    520                     exe ":bo cope"
    521                 endif
    522             endif
    523         else
    524             echohl WarningMsg | echo ""Exe_Name"is up to date"
    525         endif
    526     endif
    527     setlocal makeprg=make
    528 endfunc
    529  
    530 func! Run()
    531     let s:ShowWarning = 0
    532     call Link()
    533     let s:ShowWarning = 1
    534     if s:Sou_Error || s:LastShellReturn_C != 0 || s:LastShellReturn_L != 0
    535         return
    536     endif
    537     let Sou = expand("%:p")
    538     let Obj = expand("%:p:r").s:Obj_Extension
    539     if g:iswindows
    540         let Exe = expand("%:p:r").s:Exe_Extension
    541     else
    542         let Exe = expand("%:p:r")
    543     endif
    544     if executable(Exe) && getftime(Exe) >= getftime(Obj) && getftime(Obj) >= getftime(Sou)
    545         redraw!
    546         echohl WarningMsg | echo " running..."
    547         if g:iswindows
    548             exe ":!%<.exe"
    549         else
    550             if g:isGUI
    551                 exe ":!gnome-terminal -e ./%<"
    552             else
    553                 exe ":!./%<"
    554             endif
    555         endif
    556         redraw!
    557         echohl WarningMsg | echo " running finish"
    558     endif
    559 endfunc
    560 
    561 
    562 
    563 map <C-A> ggVG$"+y  
    564 map <C-v> "*pa  
    565 imap <C-v> <Esc>"*pa
    566 vmap <C-c> "+y
    567 map <C-c> "+y
    568 map <C-v> "+p
    View Code

    在eclipse中使用viplugin

    部分快捷键冲突 

    设置几个喜欢的快捷键,由于eclipse已经设置了这些快捷键,但我们在vi里使用习惯了,所以还需要自己设置为vi模式的快捷键,
    方法是:Window --> Preferences --> Keys, 在Scheme里选择viPlugin, 对Category进行排序,找到Category是ViPlugin的几项,
    我喜欢设置:(如果有冲突,则把其他项修改为其它快捷键)http://www.cppblog.com/binger/archive/2014/01/02/205122.html
  • 相关阅读:
    框架-.NET:Spring.Net
    杂项-WebService:WebService
    公司-企业内部创业:企业内部创业
    公司-内部创业:内部创业
    架构-软件系统体系结构-B/S架构:B/S架构
    架构-软件系统体系结构-C/S架构:C/S架构
    android google map v1 v2 v3 参考
    选购好的主机和服务器可以有效提高优化效果
    u盘安装ubuntu10.04 、11.04 server
    IOS学习笔记45--UITableView性能优化
  • 原文地址:https://www.cnblogs.com/vactor/p/4992599.html
Copyright © 2020-2023  润新知