• _vimrc win7 gvim


    View Code
      1 set nocompatible
      2 source $VIMRUNTIME/vimrc_example.vim
      3 source $VIMRUNTIME/mswin.vim
      4 behave mswin
      5 
      6 set diffexpr=MyDiff()
      7 function MyDiff()
      8   let opt = '-a --binary '
      9   if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
     10   if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
     11   let arg1 = v:fname_in
     12   if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
     13   let arg2 = v:fname_new
     14   if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
     15   let arg3 = v:fname_out
     16   if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
     17   let eq = ''
     18   if $VIMRUNTIME =~ ' '
     19     if &sh =~ '\<cmd'
     20       let cmd = '""' . $VIMRUNTIME . '\diff"'
     21       let eq = '"'
     22     else
     23       let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
     24     endif
     25   else
     26     let cmd = $VIMRUNTIME . '\diff'
     27   endif
     28   silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
     29 endfunction
     30 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     31 " => General
     32 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     33 " Sets how many lines of history VIM has to remember
     34 set history=700
     35 
     36 " Enable filetype plugins
     37 filetype plugin on
     38 filetype indent on
     39 
     40 " Set to auto read when a file is changed from the outside
     41 set autoread
     42 
     43 " With a map leader it's possible to do extra key combinations
     44 " like <leader>w saves the current file
     45 let mapleader = ","
     46 let g:mapleader = ","
     47 
     48 " Fast saving
     49 nmap <leader>w :w!<cr>
     50 
     51 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     52 " => VIM user interface
     53 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     54 " Set 7 lines to the cursor - when moving vertically using j/k
     55 set so=7
     56 " show nu
     57 set nu
     58 " Turn on the WiLd menu
     59 set wildmenu
     60 
     61 " Ignore compiled files
     62 set wildignore=*.o,*~,*.pyc
     63 
     64 "Always show current position
     65 set ruler
     66 
     67 " Height of the command bar
     68 set cmdheight=2
     69 
     70 " A buffer becomes hidden when it is abandoned
     71 set hid
     72 
     73 " Configure backspace so it acts as it should act
     74 set backspace=eol,start,indent
     75 set whichwrap+=<,>,h,l
     76 
     77 " Ignore case when searching
     78 set ignorecase
     79 
     80 " When searching try to be smart about cases 
     81 set smartcase
     82 
     83 " Highlight search results
     84 set hlsearch
     85 
     86 " Makes search act like search in modern browsers
     87 set incsearch
     88 
     89 " Don't redraw while executing macros (good performance config)
     90 set lazyredraw
     91 
     92 " For regular expressions turn magic on
     93 set magic
     94 
     95 " Show matching brackets when text indicator is over them
     96 set showmatch
     97 " How many tenths of a second to blink when matching brackets
     98 set mat=2
     99 
    100 " No annoying sound on errors
    101 set noerrorbells
    102 set novisualbell
    103 set t_vb=
    104 set tm=500
    105 
    106 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    107 " => Colors and Fonts
    108 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    109 " Enable syntax highlighting
    110 syntax enable
    111 colorscheme desert
    112 set background=dark
    113 " Set extra options when running in GUI mode
    114 if has("gui_running")
    115     set guioptions-=T
    116     set guioptions+=e
    117     set t_Co=256
    118     set guitablabel=%M\ %t
    119 endif
    120 " Set utf8 as standard encoding and en_US as the standard language
    121 " set encoding=utf8
    122 
    123 " Use Unix as the standard file type
    124 set ffs=unix,dos,mac
    125 
    126 
    127 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    128 " => Files, backups and undo
    129 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    130 " Turn backup off, since most stuff is in SVN, git et.c anyway...
    131 set nobackup
    132 set nowb
    133 set noswapfile
    134 
    135 
    136 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    137 " => Text, tab and indent related
    138 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    139 " Use spaces instead of tabs
    140 set expandtab
    141 
    142 " Be smart when using tabs ;)
    143 set smarttab
    144 
    145 " 1 tab == 4 spaces
    146 set shiftwidth=4
    147 set tabstop=4
    148 
    149 " Linebreak on 500 characters
    150 set lbr
    151 set tw=500
    152 
    153 set ai "Auto indent
    154 set si "Smart indent
    155 set wrap "Wrap lines
    156 
    157 
    158 """"""""""""""""""""""""""""""
    159 " => Visual mode related
    160 """"""""""""""""""""""""""""""
    161 " Visual mode pressing * or # searches for the current selection
    162 " Super useful! From an idea by Michael Naumann
    163 vnoremap <silent> * :call VisualSelection('f')<CR>
    164 vnoremap <silent> # :call VisualSelection('b')<CR>
    165 
    166 
    167 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    168 " => Moving around, tabs, windows and buffers
    169 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    170 " Treat long lines as break lines (useful when moving around in them)
    171 map j gj
    172 map k gk
    173 
    174 " Map <Space> to / (search) and Ctrl-<Space> to ? (backwards search)
    175 map <space> /
    176 map <c-space> ?
    177 
    178 " Disable highlight when <leader><cr> is pressed
    179 map <silent> <leader><cr> :noh<cr>
    180 
    181 " Smart way to move between windows
    182 map <C-j> <C-W>j
    183 map <C-k> <C-W>k
    184 map <C-h> <C-W>h
    185 map <C-l> <C-W>l
    186 
    187 " Close the current buffer
    188 map <leader>bd :Bclose<cr>
    189 
    190 " Close all the buffers
    191 map <leader>ba :1,1000 bd!<cr>
    192 
    193 " Useful mappings for managing tabs
    194 map <leader>tn :tabnew<cr>
    195 map <leader>to :tabonly<cr>
    196 map <leader>tc :tabclose<cr>
    197 map <leader>tm :tabmove
    198 
    199 " Opens a new tab with the current buffer's path
    200 " Super useful when editing files in the same directory
    201 map <leader>te :tabedit <c-r>=expand("%:p:h")<cr>/
    202 
    203 " Switch CWD to the directory of the open buffer
    204 map <leader>cd :cd %:p:h<cr>:pwd<cr>
    205 
    206 " Specify the behavior when switching between buffers 
    207 try
    208   set switchbuf=useopen,usetab,newtab
    209   set stal=2
    210 catch
    211 endtry
    212 
    213 " Return to last edit position when opening files (You want this!)
    214 autocmd BufReadPost *
    215      \ if line("'\"") > 0 && line("'\"") <= line("$") |
    216      \   exe "normal! g`\"" |
    217      \ endif
    218 " Remember info about open buffers on close
    219 set viminfo^=%
    220 
    221 
    222 """"""""""""""""""""""""""""""
    223 " => Status line
    224 """"""""""""""""""""""""""""""
    225 " Always show the status line
    226 set laststatus=2
    227 
    228 " Format the status line
    229 set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l
    230 
    231 
    232 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    233 " => Editing mappings
    234 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    235 " Remap VIM 0 to first non-blank character
    236 map 0 ^
    237 
    238 " Move a line of text using ALT+[jk] or Comamnd+[jk] on mac
    239 nmap <M-j> mz:m+<cr>`z
    240 nmap <M-k> mz:m-2<cr>`z
    241 vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z
    242 vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z
    243 
    244 if has("mac") || has("macunix")
    245   nmap <D-j> <M-j>
    246   nmap <D-k> <M-k>
    247   vmap <D-j> <M-j>
    248   vmap <D-k> <M-k>
    249 endif
    250 
    251 " Delete trailing white space on save, useful for Python and CoffeeScript ;)
    252 func! DeleteTrailingWS()
    253   exe "normal mz"
    254   %s/\s\+$//ge
    255   exe "normal `z"
    256 endfunc
    257 autocmd BufWrite *.py :call DeleteTrailingWS()
    258 autocmd BufWrite *.coffee :call DeleteTrailingWS()
    259 
    260 
    261 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    262 " => vimgrep searching and cope displaying
    263 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    264 " When you press gv you vimgrep after the selected text
    265 vnoremap <silent> gv :call VisualSelection('gv')<CR>
    266 
    267 " Open vimgrep and put the cursor in the right position
    268 map <leader>g :vimgrep // **/*.<left><left><left><left><left><left><left>
    269 
    270 " Vimgreps in the current file
    271 map <leader><space> :vimgrep // <C-R>%<C-A><right><right><right><right><right><right><right><right><right>
    272 
    273 " When you press <leader>r you can search and replace the selected text
    274 vnoremap <silent> <leader>r :call VisualSelection('replace')<CR>
    275 
    276 " Do :help cope if you are unsure what cope is. It's super useful!
    277 "
    278 " When you search with vimgrep, display your results in cope by doing:
    279 "   <leader>cc
    280 "
    281 " To go to the next search result do:
    282 "   <leader>n
    283 "
    284 " To go to the previous search results do:
    285 "   <leader>p
    286 "
    287 map <leader>cc :botright cope<cr>
    288 map <leader>co ggVGy:tabnew<cr>:set syntax=qf<cr>pgg
    289 map <leader>n :cn<cr>
    290 map <leader>p :cp<cr>
    291 
    292 
    293 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    294 " => Spell checking
    295 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    296 " Pressing ,ss will toggle and untoggle spell checking
    297 map <leader>ss :setlocal spell!<cr>
    298 
    299 " Shortcuts using <leader>
    300 map <leader>sn ]s
    301 map <leader>sp [s
    302 map <leader>sa zg
    303 map <leader>s? z=
    304 
    305 
    306 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    307 " => Misc
    308 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    309 " Remove the Windows ^M - when the encodings gets messed up
    310 noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm
    311 
    312 " Quickly open a buffer for scripbble
    313 map <leader>q :e ~/buffer<cr>
    314 
    315 " Toggle paste mode on and off
    316 map <leader>pp :setlocal paste!<cr>
    317 
    318 
    319 
    320 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    321 " => Helper functions
    322 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    323 function! CmdLine(str)
    324     exe "menu Foo.Bar :" . a:str
    325     emenu Foo.Bar
    326     unmenu Foo
    327 endfunction
    328 
    329 function! VisualSelection(direction) range
    330     let l:saved_reg = @"
    331     execute "normal! vgvy"
    332 
    333     let l:pattern = escape(@", '\\/.*$^~[]')
    334     let l:pattern = substitute(l:pattern, "\n$", "", "")
    335 
    336     if a:direction == 'b'
    337         execute "normal ?" . l:pattern . "^M"
    338     elseif a:direction == 'gv'
    339         call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.')
    340     elseif a:direction == 'replace'
    341         call CmdLine("%s" . '/'. l:pattern . '/')
    342     elseif a:direction == 'f'
    343         execute "normal /" . l:pattern . "^M"
    344     endif
    345 
    346     let @/ = l:pattern
    347     let @" = l:saved_reg
    348 endfunction
    349 
    350 
    351 " Returns true if paste mode is enabled
    352 function! HasPaste()
    353     if &paste
    354         return 'PASTE MODE  '
    355     en
    356     return ''
    357 endfunction
    358 
    359 " Don't close window, when deleting a buffer
    360 command! Bclose call <SID>BufcloseCloseIt()
    361 function! <SID>BufcloseCloseIt()
    362    let l:currentBufNum = bufnr("%")
    363    let l:alternateBufNum = bufnr("#")
    364 
    365    if buflisted(l:alternateBufNum)
    366      buffer #
    367    else
    368      bnext
    369    endif
    370 
    371    if bufnr("%") == l:currentBufNum
    372      new
    373    endif
    374 
    375    if buflisted(l:currentBufNum)
    376      execute("bdelete! ".l:currentBufNum)
    377    endif
    378 endfunction
    379 " Append by wfyaibaib
    380 " echo ">^.^<"
    381 " source .vimrc
    382 nnoremap <leader>sv :source $MYVIMRC<cr>
    383 " edit .vimrc
    384 nnoremap <leader>ev :vsplit $MYVIMRC<cr>
    385 " use ,, change to mormal model
    386 inoremap <leader>, <esc>
    387 vnoremap <leader>, <esc>
    388 " write and quit 
    389 nnoremap <leader>q :wq<cr>
    390 " write 
    391 nnoremap <leader>w :w<cr>
    392 " forget <esc>
    393 inoremap <esc> <nop>
    394 " open a line, nomorl mode
    395 nnoremap <leader>o o<esc>
    396 nnoremap <leader>O O<esc>
    397 " comment lines
    398 " Commenting blocks of code.
    399 autocmd FileType c,cpp,java,scala let b:comment_leader = '// '
    400 autocmd FileType sh,ruby,python,perl   let b:comment_leader = '# '
    401 autocmd FileType conf,fstab       let b:comment_leader = '# '
    402 autocmd FileType tex              let b:comment_leader = '% '
    403 autocmd FileType mail             let b:comment_leader = '> '
    404 autocmd FileType vim              let b:comment_leader = '" '
    405 noremap <silent> ,cc :<C-B>silent <C-E>s/^/<C-R>=escape(b:comment_leader,'\/')<CR>/<CR>:nohlsearch<CR>
    406 noremap <silent> ,cu :<C-B>silent <C-E>s/^\V<C-R>=escape(b:comment_leader,'\/')<CR>//e<CR>:nohlsearch<CR>
    407 
    408 " show reg
    409 nnoremap <leader>r :reg<cr>
    410 " gui
    411 if has("gui_running")
    412   if has("gui_gtk2")
    413     set guifont=Inconsolata\ 12
    414   elseif has("gui_win32")
    415     set guifont=Consolas:h11:cANSI
    416   endif
    417 endif
  • 相关阅读:
    Mac 下安装Ant
    MAMP 10.10下启动报错解决方案
    [转]常用iOS图片处理方法
    Mac下Android SDK更新不了的解决办法
    细说23+1种设计模式
    mysql应该了解的知识点
    java快排思想
    简介一下 i++和++i&&i=i+i,i+=1;的区别
    对int类型的数据,如何让获取长度
    第一次写博客
  • 原文地址:https://www.cnblogs.com/threef/p/2981257.html
Copyright © 2020-2023  润新知