vim 配置开发python和c

  1. 安装vim(在ubuntu下直接通过apt搞定)
  2. 安装ctags
  3. 分别在vim的主页上下载taglist(查看文件函数),winmanager(窗口管理),supertab(tab函数补齐)
  4. 把这些插件分别扔到vim安装目录的plugins底下
  5. 根据需要找到omni万能补全的语言插件,如omnicppcomplete、pythoncomplete
  6. 将这两个压缩包解压扔到vim的安装目录
  7. 插件装完后当然是要配置才能使用,这个步骤估计一般能浪费人不少的精神细胞,希望能制作出一个自动安装的包出来,免得每次都得去配置
  8. 补全重要的一点是理解ctags的作用,ctags大概的过程是:先在一个文件夹下生成所有语言的关键字记录文件,记录的每个关键字的关联信息(一般是在你的工作目录workspace之类的文件夹下,运行ctags -R循环子目录,这样就会生成一个tags文件,这个文件打开可以看见像python,xml,c,js等语言的相关关键之的汇总),然后,打开vi,(敲入wm会切换到目录窗口)敲入:set tags=(workspace所在目录)/tags,将tags关联给ctags,这样你在vi里面编辑源代码的时候,按tab键就能查看当前的补全信息
  9. 截图
  10. 下面是我自己的配置文件--修改的,回头自己也得慢慢理解
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  This vimrc is based on the vimrc by Amix - http://amix.dk/
"  You can  find  the latest version  on :
"        http://blog.csdn.net/easwy
"
"  Maintainer: Easwy
"  Version:  0.1
"  Last Change: 31/05/07 09:17:57 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  General
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Get out of VI's compatible  mode ..
set  nocompatible

"  Platform
function! MySys()
  return 
" linux "
endfunction

" Sets how many lines of history VIM har to remember
set  history = 400

"  Chinese
if MySys() == 
" windows "
   
" set  encoding = utf- 8
   
" set langmenu=zh_CN.UTF-8
   
" language message zh_CN . UTF- 8
   
" set fileencodings=ucs-bom,utf-8,gb18030,cp936,big5,euc-jp,euc-kr,latin1
endif

" Enable filetype plugin
filetype plugin 
on
filetype indent 
on

" Set to auto read when a file is changed from the outside
set autoread

" Have the mouse enabled all the  time :
set  mouse = a

" Set mapleader
let mapleader = 
" , "
let g:mapleader = 
" , "

" Fast saving
nmap 
< silent >   < leader > ww  :w < cr >
nmap 
< silent >   < leader > wf  :w ! < cr >

" Fast quiting
nmap <silent> <leader>qw :wq<cr>
nmap <silent> <leader>qf :q!<cr>
nmap <silent> <leader>qq :q<cr>
nmap <silent> <leader>qa :qa<cr>

" Fast remove highlight search
nmap 
< silent >   < leader >< cr >   :noh < cr >

" Fast redraw
nmap <silent> <leader>rr :redraw!<cr>

"  Switch to buffer according to file name
function! SwitchToBuf
( filename )
    
" let fullfn = substitute(a:filename,  " ^ / ~ / " , $HOME .  " / " "" )
    
"   find  in current tab
    let bufwinnr 
=  bufwinnr ( a :filename )
    
if  bufwinnr ! =  - 1
        exec bufwinnr 
.   " wincmd w "
        
return
    
else
        
"  find in each tab
        tabfirst
        let tab = 1
        while tab <= tabpagenr(
" $ " )
            let bufwinnr = bufwinnr(a:filename)
            if bufwinnr != -1
                exec 
" normal  "  . tab .  " gt "
                exec bufwinnr . 
" wincmd w "
                return
            endif
            tabnext
            let tab = tab + 1
        endwhile
        
"   not   exist ,  new tab
        exec 
" tabnew  "   .  a :filename
    endif
endfunction

" Fast edit vimrc
if MySys() == 'linux'
    
" Fast reloading of the  . vimrc
    map 
< silent >   < leader > ss  :source  ~ /. vimrc < cr >
    
" Fast editing of .vimrc
    map <silent> <leader>ee :call SwitchToBuf(
" ~ /. vimrc " )<cr>
    
" When   . vimrc is edited ,  reload it
    autocmd! bufwritepost 
. vimrc source ~ /. vimrc
elseif MySys
()   ==  'windows'
    
"  Set helplang
    set helplang=cn
    
" Fast reloading of the _vimrc
    map 
< silent >   < leader > ss  :source  ~ / _vimrc < cr >
    
" Fast editing of _vimrc
    map <silent> <leader>ee :call SwitchToBuf(
" ~ / _vimrc " )<cr>
    
" When  _vimrc is edited ,  reload it
    autocmd! bufwritepost _vimrc source ~
/ _vimrc
    
" Fast copying from linux
    func! CopyFromZ()
      autocmd! bufwritepost _vimrc
      exec 'split y:/.vimrc'
      exec 'normal 17G'
      exec 's/return 
" linux " /return  " windows " /'
      exec 'w! ~/_vimrc'
      exec 'normal u'
      exec 'q'
    endfunc
    nnoremap <silent> <leader>uu :call CopyFromZ()<cr>:so ~/_vimrc<cr>
endif

"   For  windows version
if  MySys ()   ==  'windows'
    source 
$ VIMRUNTIME / mswin . vim
    behave mswin

    
set  diffexpr = MyDiff ()
    function! MyDiff
()
        let opt 
=  '-a --binary '
        
if  &diffopt  = ~ 'icase' | let opt  =  opt  .  '-i ' | endif
        
if  &diffopt  = ~ 'iwhite' | let opt  =  opt  .  '-b ' | endif
        let arg1 
=  v :fname_in
        
if  arg1  = ~ ' ' | let arg1  =  ' " ' . arg1 . ' " ' | endif
        let arg2 
=  v :fname_new
        
if  arg2  = ~ ' ' | let arg2  =  ' " ' . arg2 . ' " ' | endif
        let arg3 
=  v :fname_out
        
if  arg3  = ~ ' ' | let arg3  =  ' " ' . arg3 . ' " ' | endif
        let eq 
=  ''
        
if   $ VIMRUNTIME  = ~ ' '
            
if  &sh  = ~ ' < cmd '
                let 
cmd   =  ' "" .   $ VIMRUNTIME  .  ' diff " '
                let eq = '
" '
            
else
                let 
cmd   =  substitute ($ VIMRUNTIME ,  ' ' ,  ' "  ', '') . 'diff " '
            endif
        
else
            let 
cmd   =   $ VIMRUNTIME  .  ' diff'
        endif
        silent execute '!' 
.   cmd   .  ' '  .  opt  .  arg1  .  ' '  .  arg2  .  '  >  '  .  arg3  .  eq
    endfunction
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Colors and Fonts
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Set  font
" if MySys() ==  " linux "
"    set  gfn = Monospace   11
" endif

"  Avoid clearing hilight definition in plugins
if  !exists ( " g:vimrc_loaded " )
    
" Enable syntax hl
    syntax enable

    
"  color scheme
    
if  has ( " gui_running " )
        
set  guioptions- = T
        
set  guioptions- = m
        
set  guioptions- = L
        
set  guioptions- = r
        colorscheme darkblue_my
        
" hi normal guibg=#294d4a
    else
        colorscheme  murphy
    endif 
"  has
endif 
"  exists(...)

" Some nice mapping to switch syntax  ( useful  if  one mixes different languages in one file )
map 
< leader > 1   :set  syntax = c < cr >
map 
< leader > 2   :set  syntax = xhtml < cr >
map 
< leader > 3   :set  syntax = python < cr >
map 
< leader > 4   :set  ft = javascript < cr >
map 
< leader >$   :syntax  sync fromstart < cr >

autocmd BufEnter * 
:syntax  sync fromstart

" Highlight current
" if  has ( " gui_running " )
"   set cursorline
"   hi cursorline guibg =# 333333
"   hi CursorColumn guibg=#333333
" endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Fileformats
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Favorite filetypes
set  ffs = unix , dos

nmap 
< leader > fd  :se  ff = dos < cr >
nmap 
< leader > fu  :se  ff = unix < cr >

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  VIM userinterface
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Set   7  lines to the curors -  when  moving vertical ..
" set so=7

"  Maximum window  when  GUI running
if  has ( " gui_running " )
  
set  lines = 9999
  
set  columns = 9999
endif

" Turn on WiLd menu
set wildmenu

" Always show current position
set  ruler

" The commandbar is 2 high
set cmdheight=2

" Show line number
set  nu

" Do not redraw, when running macros.. lazyredraw
set lz

" Change buffer - without saving
" set hid

" Set  backspace
set  backspace = eol , start , indent

" Bbackspace and cursor keys wrap to
" set  whichwrap +=<,>, h , l
set  whichwrap +=<,>

" Ignore case when searching
" set  ignorecase

" Include search
set incsearch

" Highlight search things
set  hlsearch

" Set magic on
set magic

" No sound  on  errors .
set  noerrorbells
set  novisualbell
set  t_vb =

" show matching bracets
" set  showmatch

" How many tenths of a second to blink
" set  mat = 2

  
""""""""""""""""""""""""""""""
  
"  Statusline
  
""""""""""""""""""""""""""""""
  
" Always hide the statusline
  
set  laststatus = 2

  function! CurDir
()
     let curdir 
=  substitute ( getcwd (),  ' / home / easwy / ' ,   " ~/ " ,   " g " )
     
return  curdir
  endfunction

  
" Format the statusline
  
" set  statusline =  %F%m%r%h  %w    CWD:  %r%{CurDir () }%h      Line:  %l / %L:%c



""""""""""""""""""""""""""""""
"  Visual
""""""""""""""""""""""""""""""
"  From an idea by Michael Naumann
function! VisualSearch
( direction )  range
  let l
:saved_reg   =  @ "
  execute 
" normal! vgvy "
  let l:pattern = escape(@
" ,  ' //. * $ ^~[]' )
  let l
:pattern   =  substitute ( l :pattern ,   " $ " ,   "" ,   "" )
  
if  a :direction   ==  'b'
    execute 
" normal ? "   .  l :pattern   .   " ^M "
  
else
    execute 
" normal / "   .  l :pattern   .   " ^M "
  endif
  let @
/   =  l :pattern
  let @
"  = l:saved_reg
endfunction

" Basically you press * or  #  to search  for  the current selection !! Really useful
vnoremap 
< silent >  *  :call  VisualSearch ( 'f' )< CR >
vnoremap 
< silent >   #   :call  VisualSearch ( 'b' )< CR >


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Moving around and tabs
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Map space to  /  and c-space to ?
" map <space> /
" map  < c-space >  ?

" Smart way to move btw. windows
nmap <C-j> <C-W>j
nmap <C-k> <C-W>k
nmap <C-h> <C-W>h
nmap <C-l> <C-W>l

" Actually ,  the tab does  not  switch  buffers ,  but my arrows
" Bclose function can be found in  " Buffer related "  section
map <leader>bd :Bclose<cr>
" map  < down >   < leader > bd

" Use the arrows to something usefull
" map  < right >   :bn < cr >
" map <left> :bp<cr>

" Tab configuration
map 
< leader > tn  :tabnew
map 
< leader > te  :tabedit
map 
< leader > tc  :tabclose < cr >
map 
< leader > tm  :tabmove
try
  
set  switchbuf = useopen
  
set  stal = 1
catch
endtry

" Moving fast to front, back and 2 sides ;)
imap <m-$> <esc>$a
imap <m-0> <esc>0i

" Switch to current  dir
map 
< silent >   < leader > cd   :cd  % :p:h < cr >

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Parenthesis / bracket expanding
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
vnoremap @
1   < esc > ` > a )< esc > ` < i (< esc >
" )
vnoremap @2 <esc>`>a]<esc>`<i[<esc>
vnoremap @3 <esc>`>a}<esc>`<i{<esc>
vnoremap @$ <esc>`>a
" < esc > ` < i " <esc>
vnoremap @q <esc>`>a'<esc>`<i'<esc>
vnoremap @w <esc>`>a
" < esc > ` < i " <esc>

" Map auto complete of  (,   " , ', [
inoremap @1 ()<esc>:let leavechar=
" ) " <cr>i
inoremap @2 []<esc>:let leavechar=
" ] " <cr>i
inoremap @3 {}<esc>:let leavechar=
" } " <cr>i
inoremap @4 {<esc>o}<esc>:let leavechar=
" } " <cr>O
inoremap @q ''<esc>:let leavechar=
" ' " <cr>i
inoremap @w 
"" <esc>:let leavechar=' " ' < cr > i
" au BufNewFile,BufRead *.(vim)@! inoremap  "   "" < esc > :let  leavechar = ' " '<cr>i
" au BufNewFile , BufRead * .( txt ) @! inoremap ' '' < esc > :let  leavechar = " ' " < cr > i

" imap <m-l> <esc>:exec  " normal f "  . leavechar<cr>a
" imap  < d-l >   < esc > :exec   " normal f "   .  leavechar < cr > a


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  General Abbrevs
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" My information
iab xdate 
< c-r >= strftime ( " %c " )< cr >
iab xname Easwy Yang


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Editing mappings etc .
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

func! DeleteTrailingWS()
  exe 
" normal mz "
  %s/s+$//ge
  nohl
  exe 
" normal `z "
endfunc

"   do   not  automaticlly remove trailing whitespace
" autocmd BufWrite *.[ch] :call DeleteTrailingWS()
" autocmd BufWrite * . cc  :call  DeleteTrailingWS ()
" autocmd BufWrite *.txt :call DeleteTrailingWS()
nmap <silent> <leader>ws :call DeleteTrailingWS()<cr>:w<cr>
" nmap  < silent >   < leader > ws!  :call  DeleteTrailingWS ()< cr > :w ! < cr >

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"   Command -line config
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Bash like
cnoremap 
< C-A >      < Home >
cnoremap 
< C-E >      < End >
cnoremap 
< C-K >      < C-U >

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Buffer realted
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Open a dummy buffer  for  paste
map 
< leader > es  :tabnew < cr > :setl  buftype = nofile < cr >
if  MySys ()   ==   " linux "
map 
< leader > ec  :tabnew  ~ / tmp / scratch . txt < cr >
else
map 
< leader > ec  :tabnew   $ TEMP / scratch . txt < cr >
endif

" Restore cursor to file position in previous editing session
set viminfo='10,"100,:20,n~/.viminfo
au BufReadPost * if line(
" ' "" )   >   0 | if  line ( " '" " )   <=  line ( " $ " ) |exe ( " norm '" " ) | else |exe  " norm $ " |endif|endif

"  Don't close window, when deleting a buffer
command! Bclose call <SID>BufcloseCloseIt()

function! <SID>BufcloseCloseIt()
   let l:currentBufNum = bufnr(
" % " )
   let l:alternateBufNum = bufnr(
" # " )

   if buflisted(l:alternateBufNum)
     buffer #
   else
     bnext
   endif

   if bufnr(
" % " ) == l:currentBufNum
     new
   endif

   if buflisted(l:currentBufNum)
     execute(
" bdelete!  " .l:currentBufNum)
   endif
endfunction

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Session options
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set  sessionoptions- = curdir
set  sessionoptions += sesdir

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"   Files  and backups
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Turn  backup   off
set  nobackup
set  nowb
" set noswapfile


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Folding
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Enable folding, I find it very useful
" set  fen
" set fdl=0
nmap <silent> <leader>zo zO
vmap <silent> <leader>zo zO


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Text options
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set  expandtab
set  shiftwidth = 4

map 
< leader > t2  :set  shiftwidth = 2 < cr >
map 
< leader > t4  :set  shiftwidth = 4 < cr >
au FileType html
, python , vim , javascript setl shiftwidth = 2
" au FileType html,python,vim,javascript setl tabstop=2
set tags=/home/qmgwh/work/tags
au FileType java,c setl shiftwidth=4
" au FileType java setl tabstop = 4
au FileType txt setl lbr
au FileType txt setl tw
= 78

set  smarttab
" set lbr
" set  tw = 78

   
""""""""""""""""""""""""""""""
   
"  Indent
   
""""""""""""""""""""""""""""""
   
" Auto indent
   
set  ai

   
" Smart indet
   set si

   
" C-style indeting
   
set  cindent

   
" Wrap lines
   set wrap


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Spell checking
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map 
< leader > sn ]s
map 
< leader > sp [s
map 
< leader > sa zg
map 
< leader > s? z =

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Complete
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  options
set  completeopt = menu
set  complete- = u
set  complete- = i

"  mapping
inoremap <expr> <CR>       pumvisible()?
" < C-Y > " : " < CR > "
inoremap <expr> <C-J>      pumvisible()?
" < PageDown >< C-N >< C-P > " : " < C-X >< C-O > "
inoremap <expr> <C-K>      pumvisible()?
" < PageUp >< C-P >< C-N > " : " < C-K > "
inoremap <expr> <C-U>      pumvisible()?
" < C-E > " : " < C-U > "
inoremap <C-]>             <C-X><C-]>
inoremap <C-F>             <C-X><C-F>
inoremap <C-D>             <C-X><C-D>
inoremap <C-L>             <C-X><C-L>

"  Enable syntax
if  has ( " autocmd " )  && exists ( " +omnifunc " )
  autocmd Filetype *
        
if  &omnifunc  ==   ""  |
        
   setlocal  omnifunc = syntaxcomplete # Complete |
        
endif
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  cscope setting
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has(
" cscope " )
  if MySys() == 
" linux "
    set csprg=/usr/bin/cscope
  else
    set csprg=cscope
  endif
  set csto=1
  set cst
  set nocsverb
  
"  add any database in current directory
  
if  filereadable ( " cscope.out " )
      cs add cscope
. out
  endif
  
set  csverb
endif

nmap 
< C-@ > :cs   find  s  < C-R >= expand ( " <cword> " )< CR >< CR >
nmap 
< C-@ > :cs   find  g  < C-R >= expand ( " <cword> " )< CR >< CR >
nmap 
< C-@ > :cs   find  c  < C-R >= expand ( " <cword> " )< CR >< CR >
nmap 
< C-@ > :cs   find  t  < C-R >= expand ( " <cword> " )< CR >< CR >
nmap 
< C-@ > :cs   find  e  < C-R >= expand ( " <cword> " )< CR >< CR >
nmap 
< C-@ > :cs   find  f  < C-R >= expand ( " <cfile> " )< CR >< CR >
nmap 
< C-@ > :cs   find  i ^ < C-R >= expand ( " <cfile> " )< CR >$< CR >
nmap 
< C-@ > :cs   find  d  < C-R >= expand ( " <cword> " )< CR >< CR >

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Plugin configuration
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   
""""""""""""""""""""""""""""""
   
"  Super Tab
   
""""""""""""""""""""""""""""""
   
" let g:SuperTabDefaultCompletionType =  " < C-X >< C-O > "
   
" let g :SuperTabDefaultCompletionType   =   " <C-P> "

   
""""""""""""""""""""""""""""""
   
"  yank ring setting
   
""""""""""""""""""""""""""""""
   map <leader>yr :YRShow<cr>

   
""""""""""""""""""""""""""""""
   
"  file explorer setting
   
""""""""""""""""""""""""""""""
   
" Split vertically
   let g:explVertical=1

   
" Window size
   let g
:explWinSize = 35

   let g
:explSplitLeft = 1
   let g
:explSplitBelow = 1

   
" Hide some files
   let g:explHideFiles='^.,.*.class$,.*.swp$,.*.pyc$,.*.swo$,.DS_Store$'

   
" Hide the help thing ..
   let g
:explDetailedHelp = 0


   
""""""""""""""""""""""""""""""
   
"  minibuffer setting
   
""""""""""""""""""""""""""""""
   let loaded_minibufexplorer = 1         
"  *** Disable minibuffer plugin
   let g
:miniBufExplorerMoreThanOne   =   2     "  Display when more than 2 buffers
   let g:miniBufExplSplitToEdge = 1       
"  Always at top
   let g
:miniBufExplMaxSize   =   3             "  The max height is 3 lines
   let g:miniBufExplMapWindowNavVim = 1   
"  map CTRL-[hjkl]
   let g
:miniBufExplUseSingleClick   =   1      "  select by single click
   let g:miniBufExplModSelTarget = 1      
"  Dont change to unmodified buffer
   let g
:miniBufExplForceSyntaxEnable   =   1   "  force syntax on
   
" let g :miniBufExplVSplit   =   25
   
" let g:miniBufExplSplitBelow = 0

   autocmd BufRead,BufNew :call UMiniBufExplorer

   
""""""""""""""""""""""""""""""
   
"  bufexplorer setting
   
""""""""""""""""""""""""""""""
   let g
:bufExplorerDefaultHelp = 1         "  Do not show default help.
   let g:bufExplorerShowRelativePath=1  
"  Show relative paths .
   let g
:bufExplorerSortBy = 'mru'         "  Sort by most recently used.
   let g:bufExplorerSplitRight=0        
"  Split left .
   let g
:bufExplorerSplitVertical = 1       "  Split vertically.
   let g:bufExplorerSplitVertSize = 30  
"  Split width
   let g
:bufExplorerUseCurrentWindow = 1    "  Open in new window.
   let g:bufExplorerMaxHeight=13        
"  Max height

   
""""""""""""""""""""""""""""""
   
"  taglist setting
   
""""""""""""""""""""""""""""""
   if MySys() == 
" windows "
     let Tlist_Ctags_Cmd = 'ctags'
   elseif MySys() == 
" linux "
     let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'
   endif
   let Tlist_Show_One_File = 1
   let Tlist_Exit_OnlyWindow = 1
   let Tlist_Use_Right_Window = 1
   nmap <silent> <leader>tl :Tlist<cr>

   
""""""""""""""""""""""""""""""
   
"  winmanager setting
   
""""""""""""""""""""""""""""""
   let g
:winManagerWindowLayout   =   " BufExplorer,FileExplorer|TagList "
   let g
:winManagerWidth   =   30
   let g
:defaultExplorer   =   0
   nmap 
< C-W >< C-F >   :FirstExplorerWindow < cr >
   nmap 
< C-W >< C-B >   :BottomExplorerWindow < cr >
   nmap 
< silent >   < leader > wm  :WMToggle < cr >
   autocmd BufWinEnter 
[Buf  List ] setl nonumber

   
""""""""""""""""""""""""""""""
   
"  netrw setting
   
""""""""""""""""""""""""""""""
   let g:netrw_winsize = 30
   nmap <silent> <leader>fe :Sexplore!<cr>

   
""""""""""""""""""""""""""""""
   
"  LaTeX Suite things
   
""""""""""""""""""""""""""""""
   
set  grepprg = grep  -nH   $ *
   let g
:Tex_DefaultTargetFormat = " pdf "
   let g
:Tex_ViewRule_pdf = 'xpdf'

   
" Bindings
   autocmd FileType tex map <silent><leader><space> :w!<cr> :silent! call Tex_RunLaTeX()<cr>

   
" Auto complete some things  ;)
   autocmd FileType tex inoremap 
$ indent
   autocmd FileType tex inoremap 
$ cdot
   autocmd FileType tex inoremap 
$ item
   autocmd FileType tex inoremap 
$ [ < cr > ] < esc > O


   
""""""""""""""""""""""""""""""
   
"  lookupfile setting
   
""""""""""""""""""""""""""""""
   let g:LookupFile_MinPatLength = 2
   let g:LookupFile_PreserveLastPattern = 0
   let g:LookupFile_PreservePatternHistory = 0
   let g:LookupFile_AlwaysAcceptFirst = 1
   let g:LookupFile_AllowNewFiles = 0
   if filereadable(
" ./ filenametags " )
       let g:LookupFile_TagExpr = '
" ./ filenametags " '
   endif
   nmap <silent> <leader>lk <Plug>LookupFile<cr>
   nmap <silent> <leader>ll :LUBufs<cr>
   nmap <silent> <leader>lw :LUWalk<cr>

   
"  lookup file with ignore case
   function! LookupFile_IgnoreCaseFunc
( pattern )
       let _tags 
=  &tags
       try
           let &tags 
=  eval ( g :LookupFile_TagExpr )
           let newpattern 
=  ' c'  .  a :pattern
           let tags 
=  taglist ( newpattern )
       catch
           echohl ErrorMsg | 
echo   " Exception:  "   .  v :exception  | echohl NONE
           
return   ""
       finally
           let &tags 
=  _tags
       endtry

       
"  Show the matches for what is typed so far.
       let files = map(tags, 'v:val[
" filename " ]')
       return files
   endfunction
   let g:LookupFile_LookupFunc = 'LookupFile_IgnoreCaseFunc'

   
""""""""""""""""""""""""""""""
   
"  markbrowser setting
   
""""""""""""""""""""""""""""""
   nmap 
< silent >   < leader > mk  :MarksBrowser < cr >

   
""""""""""""""""""""""""""""""
   
"  showmarks setting
   
""""""""""""""""""""""""""""""
   
"  Enable ShowMarks
   let showmarks_enable 
=   1
   
"  Show which marks
   let showmarks_include = 
" abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
   
"  Ignore help ,  quickfix ,  non-modifiable  buffers
   let showmarks_ignore_type 
=   " hqm "
   
"  Hilight lower & upper marks
   let showmarks_hlline_lower = 1
   let showmarks_hlline_upper = 1

   
""""""""""""""""""""""""""""""
   
"  mark setting
   
""""""""""""""""""""""""""""""
   nmap 
< silent >   < leader > hl  < Plug > MarkSet
   vmap 
< silent >   < leader > hl  < Plug > MarkSet
   nmap 
< silent >   < leader > hh  < Plug > MarkClear
   vmap 
< silent >   < leader > hh  < Plug > MarkClear
   nmap 
< silent >   < leader > hr  < Plug > MarkRegex
   vmap 
< silent >   < leader > hr  < Plug > MarkRegex

   
""""""""""""""""""""""""""""""
   
"  FeralToggleCommentify setting
   
""""""""""""""""""""""""""""""
   let loaded_feraltogglecommentify = 1
   
" map  < silent >   < leader > tc  :call  ToggleCommentify ()< CR >
   
" imap <M-c> <ESC>:call ToggleCommentify()<CR>j 

   
""""""""""""""""""""""""""""""
   
"  vimgdb setting
   
""""""""""""""""""""""""""""""
   let g
:vimgdb_debug_file   =   ""
   
run  macros / gdb_mappings . vim

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Filetype generic
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   
"  Todo
   
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   
" au BufNewFile,BufRead *.todo so ~/vim_local/syntax/amido.vim

   
""""""""""""""""""""""""""""""
   
"  HTML related
   
""""""""""""""""""""""""""""""
   
"  HTML entities - used by xml edit plugin
   let xml_use_xhtml = 1
   
" let xml_no_auto_nesting  =   1

   
" To HTML
   let html_use_css = 1
   let html_number_lines = 0
   let use_xhtml = 1

   
"""""""""""""""""""""""""""""""
   
"  Vim section
   
"""""""""""""""""""""""""""""""
   autocmd FileType vim 
set  nofen
   autocmd FileType vim map 
< buffer >   < leader >< space >   :w ! < cr > :source  % < cr >

   
""""""""""""""""""""""""""""""
   
"  HTML
   
"""""""""""""""""""""""""""""""
   au FileType html 
set  ft = xml
   au FileType html 
set  syntax = html


   
""""""""""""""""""""""""""""""
   
"  C/C++
   
"""""""""""""""""""""""""""""""
   autocmd FileType c
, cpp  map  < buffer >   < leader >< space >   :make < cr >
   
" autocmd FileType c,cpp  setl foldmethod=syntax | setl fen

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  MISC
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   
" Quickfix
   nmap <leader>cn :cn<cr>
   nmap <leader>cp :cp<cr>
   nmap <leader>cw :cw 10<cr>
   
" nmap  < leader > cc  :botright  lw  10 < cr >
   
" map <c-u> <c-l><c-j>:q<cr>:botright cw 10<cr>

   function! s:GetVisualSelection()
       let save_a = @a
       silent normal! gv
" ay
       let v 
=  @a
       let @a 
=  save_a
       let var 
=  escape ( v ,  ' //.$ *' )
       
return  var
   endfunction

   
"  Fast grep
   nmap <silent> <leader>lv :lv /<c-r>=expand(
" < cword > " )<cr>/ %<cr>:lw<cr>
   vmap <silent> <leader>lv :lv /<c-r>=<sid>GetVisualSelection()<cr>/ %<cr>:lw<cr>

   
"  Fast diff
   cmap @vd vertical diffsplit 
   
set  diffopt += vertical

   
" Remove the Windows ^M
   noremap <Leader>dm mmHmn:%s/<C-V><cr>//ge<cr>'nzt'm

   
" Paste toggle -  when  pasting something in ,  don't indent .
   
set  pastetoggle =< F3 >

   
" Remove indenting on empty lines
   
" map  < F2 >  :%s / s* $// g < cr > :noh < cr > ''

   
" Super paste
   
" inoremap  < C-v >   < esc > :set  paste < cr > mui < C-R >+< esc > mv'uV'v = :set  nopaste < cr >

   
" Fast Ex command
   nnoremap ; :

   
" For  mark  move
   nnoremap 
< leader > ' '

   
" Fast copy
   nnoremap ' 
"

   
" A function that inserts links & anchors on a TOhtml export.
   
"  Notice:
   
"  Syntax used is:
   
"  Link
   
"  Anchor
   function! SmartTOHtml()
    TOhtml
    try
     %s/&quot;s+*&gt; (.+)</
"   < a href = " # "  style = " color: cyan " > 1 </ a ></ g
     %s
/ &quot ;( - | s )+ *&gt ;   (.+)</ "  &nbsp;&nbsp; <a href= " # 2 "  style= " color: cyan ; " ></a></g
     %s/&quot;s+=&gt; (.+)</
"   < a name = " "  style = " color: #fff " > 1 </ a ></ g
    catch
    endtry
    exe 
" :write! "
    exe 
" :bd "
   endfunction


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  Mark as loaded
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:vimrc_loaded = 1
"""" Taglist
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow = 1
"""" win layout
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
""" buffer windows
let g
:miniBufExplMapWindowNavVim   =   1
""" compelete opt
set nocp
filetype plugin on
set completeopt=longest,menu,menuone,preview
set tags=/home/qmgwh/work/tags
""" super tab
let g
:SuperTabDefaultCompletionType = " <C-X><C-O> "
let g
:SuperTabRetainCompletionType = 2
""" fold "
set  foldmethod = syntax
set  foldlevel = 100
"""""
" set  omnifunc = c
"  Only do this part when compiled with support for autocommands.
if has(
" autocmd " )
  autocmd Filetype java setlocal omnifunc=javacomplete#Complete
endif 

if has(
" autocmd " )
  autocmd Filetype python setlocal omnifunc=pythoncomplete#Complete
endif 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值