使用VIM开发软件项目 - (13) 我的vimrc (一)

 最近大病一场,还是身体最重要啊!
几周没写文章了,实在是太懒了。今天把自己的vimrc贴出来,希望对大家有所启发。
我的vimrc也是在别人的基础上进行了自己的修改。对vimrc,是不能直接拷贝使用的,不然会有严重的不适。所以还是自己理解了之后,再形成自己的vimrc较好。
此vimrc是用在windows上的,如果在linux上使用,把MySys()的返回值改为"linux"。

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" This vimrc is based on the vimrc by Amix, URL:

"         http://www.amix.dk/vim/vimrc.html

" 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 "windows"

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

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 desert_my

    endif " has

endif " exists(...)

 

"Some nice mapping to switch syntax (useful if one mixes different languages in one file)

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, "/n$", "", "")

  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("%d/%m/%y %H:%M:%S")<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

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")

  set csprg=/usr/bin/cscope

  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-@>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>

 

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 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/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 $i /indent

   autocmd FileType tex inoremap $* /cdot

   autocmd FileType tex inoremap $i /item

   autocmd FileType tex inoremap $m /[<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>j

   "imap <M-c> <ESC>:call ToggleCommentify()<CR>j

 

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 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> :w<cr>: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 ; :

 

   "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="#/1" style="color: cyan">/1<//a></g

     %s/&quot;/(-/|/s/)/+/*&gt; /(./+/)</" /&nbsp;/&nbsp; <a href="#/2" style="color: cyan;">/2<//a></g

     %s/&quot;/s/+=&gt; /(./+/)</" <a name="/1" style="color: #fff">/1<//a></g

    catch

    endtry

    exe ":write!"

    exe ":bd"

   endfunction

 

 

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Mark as loaded

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

let g:vimrc_loaded = 1

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值