vim 配置
来源:互联网 发布:网络管理下载 编辑:程序博客网 时间:2024/06/05 14:22
vim 配置
语法高亮
自动补全
鼠标操作
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => General"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Sets how many lines of history VIM has to rememberset history=700" Enable filetype pluginsfiletype plugin onfiletype indent on" Set to auto read when a file is changed from the outsideset autoread" With a map leader it's possible to do extra key combinations" like <leader>w saves the current filelet mapleader = ","let g:mapleader = ","" Fast savingnmap <leader>w :w!<cr>"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => VIM user interface"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Set 7 lines to the cursor - when moving vertically using j/kset so=7" Turn on the WiLd menuset wildmenu" Ignore compiled filesset wildignore=*.o,*~,*.pyc"Always show current positionset ruler" Height of the command barset cmdheight=2" A buffer becomes hidden when it is abandonedset hid" Configure backspace so it acts as it should actset backspace=eol,start,indentset whichwrap+=<,>,h,l" Ignore case when searchingset ignorecase" When searching try to be smart about cases set smartcase" Highlight search resultsset hlsearch" Makes search act like search in modern browsersset incsearch" Don't redraw while executing macros (good performance config)set lazyredraw" For regular expressions turn magic onset magic" Show matching brackets when text indicator is over themset showmatch" How many tenths of a second to blink when matching bracketsset mat=2" No annoying sound on errorsset noerrorbellsset novisualbellset t_vb=set tm=500"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Colors and Fonts"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Enable syntax highlightingsyntax enablecolorscheme desertset background=dark" Set extra options when running in GUI modeif has("gui_running") set guioptions-=T set guioptions+=e set t_Co=256 set guitablabel=%M\ %tendif" Set utf8 as standard encoding and en_US as the standard languageset encoding=utf8" Use Unix as the standard file typeset ffs=unix,dos,mac"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Files, backups and undo"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Turn backup off, since most stuff is in SVN, git et.c anyway...set nobackupset nowbset noswapfile"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Text, tab and indent related"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Use spaces instead of tabsset expandtab" Be smart when using tabs ;)set smarttab" 1 tab == 4 spacesset shiftwidth=4set tabstop=4" Linebreak on 500 charactersset lbrset tw=500set ai "Auto indentset si "Smart indentset wrap "Wrap lines""""""""""""""""""""""""""""""" => Visual mode related""""""""""""""""""""""""""""""" Visual mode pressing * or # searches for the current selection" Super useful! From an idea by Michael Naumannvnoremap <silent> * :call VisualSelection('f')<CR>vnoremap <silent> # :call VisualSelection('b')<CR>"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Moving around, tabs, windows and buffers"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Treat long lines as break lines (useful when moving around in them)map j gjmap k gk" Map <Space> to / (search) and Ctrl-<Space> to ? (backwards search)map <space> /map <c-space> ?" Disable highlight when <leader><cr> is pressedmap <silent> <leader><cr> :noh<cr>" Smart way to move between windowsmap <C-j> <C-W>jmap <C-k> <C-W>kmap <C-h> <C-W>hmap <C-l> <C-W>l" Close the current buffermap <leader>bd :Bclose<cr>" Close all the buffersmap <leader>ba :1,1000 bd!<cr>" Useful mappings for managing tabsmap <leader>tn :tabnew<cr>map <leader>to :tabonly<cr>map <leader>tc :tabclose<cr>map <leader>tm :tabmove" Opens a new tab with the current buffer's path" Super useful when editing files in the same directorymap <leader>te :tabedit <c-r>=expand("%:p:h")<cr>/" Switch CWD to the directory of the open buffermap <leader>cd :cd %:p:h<cr>:pwd<cr>" Specify the behavior when switching between buffers try set switchbuf=useopen,usetab,newtab set stal=2catchendtry" Return to last edit position when opening files (You want this!)autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif" Remember info about open buffers on closeset viminfo^=%""""""""""""""""""""""""""""""" => Status line""""""""""""""""""""""""""""""" Always show the status lineset laststatus=2" Format the status lineset statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Editing mappings"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Remap VIM 0 to first non-blank charactermap 0 ^" Move a line of text using ALT+[jk] or Comamnd+[jk] on macnmap <M-j> mz:m+<cr>`znmap <M-k> mz:m-2<cr>`zvmap <M-j> :m'>+<cr>`<my`>mzgv`yo`zvmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`zif has("mac") || has("macunix") nmap <D-j> <M-j> nmap <D-k> <M-k> vmap <D-j> <M-j> vmap <D-k> <M-k>endif" Delete trailing white space on save, useful for Python and CoffeeScript ;)func! DeleteTrailingWS() exe "normal mz" %s/\s\+$//ge exe "normal `z"endfuncautocmd BufWrite *.py :call DeleteTrailingWS()autocmd BufWrite *.coffee :call DeleteTrailingWS()"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => vimgrep searching and cope displaying"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" When you press gv you vimgrep after the selected textvnoremap <silent> gv :call VisualSelection('gv')<CR>" Open vimgrep and put the cursor in the right positionmap <leader>g :vimgrep // **/*.<left><left><left><left><left><left><left>" Vimgreps in the current filemap <leader><space> :vimgrep // <C-R>%<C-A><right><right><right><right><right><right><right><right><right>" When you press <leader>r you can search and replace the selected textvnoremap <silent> <leader>r :call VisualSelection('replace')<CR>" Do :help cope if you are unsure what cope is. It's super useful!"" When you search with vimgrep, display your results in cope by doing:" <leader>cc"" To go to the next search result do:" <leader>n"" To go to the previous search results do:" <leader>p"map <leader>cc :botright cope<cr>map <leader>co ggVGy:tabnew<cr>:set syntax=qf<cr>pggmap <leader>n :cn<cr>map <leader>p :cp<cr>"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Spell checking"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Pressing ,ss will toggle and untoggle spell checkingmap <leader>ss :setlocal spell!<cr>" Shortcuts using <leader>map <leader>sn ]smap <leader>sp [smap <leader>sa zgmap <leader>s? z="""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Misc"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Remove the Windows ^M - when the encodings gets messed upnoremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm" Quickly open a buffer for scripbblemap <leader>q :e ~/buffer<cr>" Toggle paste mode on and offmap <leader>pp :setlocal paste!<cr>"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Helper functions"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""function! CmdLine(str) exe "menu Foo.Bar :" . a:str emenu Foo.Bar unmenu Fooendfunctionfunction! VisualSelection(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" elseif a:direction == 'gv' call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.') elseif a:direction == 'replace' call CmdLine("%s" . '/'. l:pattern . '/') elseif a:direction == 'f' execute "normal /" . l:pattern . "^M" endif let @/ = l:pattern let @" = l:saved_regendfunction" Returns true if paste mode is enabledfunction! HasPaste() if &paste return 'PASTE MODE ' en return ''endfunction" Don't close window, when deleting a buffercommand! 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) endifendfunction
0 0
- vim配置NERD_tree.vim
- [Linux][Vim]:vim 配置
- vim配置NERD_tree.vim
- vim 配置vim
- vim 配置
- vim 配置
- vim配置
- vim 配置
- vim 配置
- vim 配置
- vim 配置
- vim配置
- vim配置
- VIM 配置
- vim 配置
- vim 配置
- VIM配置
- vim配置
- 算法实现两个数交换(多种方法)
- UITextFielddelegate委托方法注释
- Python 遍历字典——学习笔记
- iOS学习之路-超级猜图
- iOS开发检测项目中哪个库包含了idfa
- vim 配置
- jsp访问WEB-INF下面的资源-jsp
- 我的java学习之路,想象,图形界面
- Android 编程技巧之 ----- ViewHolder 的简洁封装
- CUDA编程实践--cuBLAS
- Linux下软连接和硬链接的关系
- XML相关
- Java 入门 之 开发环境的安装
- ios如何处理声音