最近在学习vim做前端开发,通过各种大神的经验和我的教训得出了一个适合我自己的vim配置文件:
(插件主要是通过bundle来管理的---适用于mac系统)完整文件在附件^_^备忘一下
" Configuration file for vim set modelines=0 " CVE-2007-2438 " Normally we use vim-extensions. If you want true vi-compatibility " remove change the following statements set nocompatible " Use Vim defaults instead of 100% vi compatibility set backspace=2 " more powerful backspacing " Don't write backup file if vim is being called by "crontab -e" au BufWrite /private/tmp/crontab.* set nowritebackup nobackup " Don't write backup file if vim is being called by "chpass" au BufWrite /private/etc/pw.* set nowritebackup nobackup """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Maintainer: " Amir Salihefendic " http://amix.dk - amix@amix.dk " " Version: " 5.0 - 29/05/12 15:43:36 " " Blog_post: " http://amix.dk/blog/post/19691#The-ultimate-Vim-configuration-on-Github " " Awesome_version: " Get this config, nice color schemes and lots of plugins! " " Install the awesome version from: " " https://github.com/amix/vimrc " " Syntax_highlighted: " http://amix.dk/vim/vimrc.html " " Raw_version: " http://amix.dk/vim/vimrc.txt " " Sections: " -> General " -> VIM user interface " -> Colors and Fonts " -> Files and backups " -> Text, tab and indent related " -> Visual mode related " -> Moving around, tabs and buffers " -> Status line " -> Editing mappings " -> vimgrep searching and cope displaying " -> Spell checking " -> Misc " -> Helper functions " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => General """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Sets how many lines of history VIM has to remember set history=700 " Set to auto read when a file is changed from the outside set autoread " With a map leader it's possible to do extra key combinations " like <leader>w saves the current file let mapleader = "," let g:mapleader = "," " Fast saving nmap <leader>w :w!<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => VIM user interface """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Set 7 lines to the cursor - when moving vertically using j/k set so=7 " Turn on the WiLd menu set wildmenu " Ignore compiled files set wildignore=*.o,*~,*.pyc "Always show current position set ruler " Height of the command bar set cmdheight=2 " A buffer becomes hidden when it is abandoned set hid " Configure backspace so it acts as it should act set backspace=eol,start,indent set whichwrap+=<,>,h,l " Ignore case when searching set ignorecase " When searching try to be smart about cases set smartcase " Highlight search results set hlsearch " Makes search act like search in modern browsers set incsearch " Don't yellowraw while executing macros (good performance config) " For regular expressions turn magic on set magic " Show matching brackets when text indicator is over them set showmatch " How many tenths of a second to blink when matching brackets set mat=2 " No annoying sound on errors set noerrorbells set novisualbell set t_vb= set tm=500 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Colors and Fonts """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Enable syntax highlighting syntax enable highlight Keyword term=reverse,bold highlight Comment cterm=underline ctermfg=yellow ctermbg=blue colorscheme peachpuff set background=dark autocmd BufEnter *.* set guifont=Arial\ 14 " Set extra options when running in GUI mode if has("gui_running") set guioptions-=T set guioptions+=e set t_Co=256 set guitablabel=%M\ %t endif " Set utf8 as syellowdard encoding and en_US as the syellowdard language set encoding=utf8 set fileencodings=utf8 set termencoding=utf8 set guifont=courier_new:h14 " Use Unix as the syellowdard file type set ffs=unix,dos,mac """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Files, backups and undo """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Turn backup off, since most stuff is in SVN, git et.c anyway... set nobackup set nowb set noswapfile """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Text, tab and indent related """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Use spaces instead of tabs set expandtab " Be smart when using tabs ;) set smarttab " 1 tab == 4 spaces set shiftwidth=4 set tabstop=4 set nu " Linebreak on 500 characters set lbr set tw=500 set ai "Auto indent set si "Smart indent set wrap "Wrap lines """"""""""""""""""""""""""""""""""""""""""""""""""" " => 光标高亮行列 """"""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""" set cursorline hi CursorLine cterm=NONE ctermbg=yellow ctermfg=white guibg=yellow guifg=white set cursorcolumn hi CursorColumn cterm=NONE ctermbg=yellow ctermfg=white guibg=yellow guifg=white """""""""""""""""""""""""""""" " => Visual mode related """""""""""""""""""""""""""""" " Visual mode pressing * or # searches for the current selection " Super useful! From an idea by Michael Naumann vnoremap <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 gj map k gk " Map <Space> to / (search) and Ctrl-<Space> to ? (backwards search) map <space> / map <c-space> ? " Disable highlight when <leader><cr> is pressed map <silent> <leader><cr> :noh<cr> " Smart way to move between windows map <C-j> <C-W>j map <C-k> <C-W>k map <C-h> <C-W>h map <C-l> <C-W>l " Close the current buffer map <leader>bd :Bclose<cr> " Close all the buffers map <leader>ba :1,1000 bd!<cr> " Opens a new tab with the current buffer's path " Super useful when editing files in the same directory map <leader>te :tabedit <c-r>=expand("%:p:h")<cr>/ " Switch CWD to the directory of the open buffer map <leader>cd :cd %:p:h<cr>:pwd<cr> " Specify the behavior when switching between buffers try set switchbuf=useopen,usetab,newtab set stal=2 catch endtry " 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 close set viminfo^=% """""""""""""""""""""""""""""" " => Status line """""""""""""""""""""""""""""" " Always show the status line set laststatus=2 " Format the status line set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Editing mappings """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Remap VIM 0 to first non-blank character map 0 ^ " Move a line of text using ALT+[jk] or Comamnd+[jk] on mac nmap <M-j> mz:m+<cr>`z nmap <M-k> mz:m-2<cr>`z vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z if 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" endfunc autocmd BufWrite *.py :call DeleteTrailingWS() autocmd BufWrite *.coffee :call DeleteTrailingWS() """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => vimgrep searching and cope displaying """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " When you press gv you vimgrep after the selected text vnoremap <silent> gv :call VisualSelection('gv')<CR> " Open vimgrep and put the cursor in the right position map <leader>g :vimgrep // **/*.<left><left><left><left><left><left><left> " Vimgreps in the current file map <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 text vnoremap <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>n :cn<cr> map <leader>p :cp<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Spell checking """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Pressing ,ss will toggle and untoggle spell checking map <leader>ss :setlocal spell!<cr> " Shortcuts using <leader> map <leader>sn ]s map <leader>sp [s map <leader>sa zg map <leader>s? z= """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Misc """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Remove the Windows ^M - when the encodings gets messed up noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm " Quickly open a buffer for scripbble map <leader>q :e ~/buffer<cr> " Toggle paste mode on and off map <leader>pp :setlocal paste!<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Helper functions """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" function! CmdLine(str) exe "menu Foo.Bar :" . a:str emenu Foo.Bar unmenu Foo endfunction function! 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_reg endfunction " Returns true if paste mode is enabled function! HasPaste() if &paste return 'PASTE MODE ' en return '' endfunction " 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 set nocompatible " be iMproved filetype off " requiyellow! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " requiyellow! Bundle 'gmarik/vundle' " My Bundles here: " " original repos on github Bundle 'tpope/vim-fugitive' Bundle 'Lokaltog/vim-easymotion' Bundle 'rstacruz/sparkup', {'rtp': 'vim/'} Bundle 'tpope/vim-rails.git' " vim-scripts repos Bundle 'L9' Bundle 'FuzzyFinder' " non github repos Bundle 'https://github.com/scrooloose/nerdtree.git' Bundle 'git://github.com/Lokaltog/vim-powerline.git' Bundle 'jsbeautify' Bundle 'Valloric/YouCompleteMe' filetype plugin indent on " requiyellow! " " Brief help " :BundleList - list configuyellow bundles " :BundleInstall(!) - install(update) bundles " :BundleSearch(!) foo - search(or refresh cache first) for foo " :BundleClean(!) - confirm(or auto-approve) removal of unused bundles " " see :h vundle for more details or wiki for FAQ " NOTE: comments after Bundle command are not allowed.. " Enable filetype plugins filetype plugin indent on map <F3> <Esc>:NERDTreeToggle<CR> map <F8> <Esc>:tabnew<CR> map <F9> <Esc>:tabnext<CR> map <F7> <Esc>:tabprevious<CR> map <F10> <Esc>:tabclose<CR> vmap y :w !pbcopy<CR><CR> nmap yy :.w !pbcopy<CR><CR> nmap p :r !pbpaste<CR><CR> " === tagbar setting ======= nmap <F4> :TagbarToggle<CR> " shortcut let g:tagbar_width = 20 " tagbar's width, default 20 "autocmd VimEnter * nested :call tagbar#autoopen(1) "automate to open tagbar let g:tagbar_left = 1 " on the left side "let g:tagbar_right = 1 " on the right side let NERDTreeIgnore=['\.pyc', '\.pyo', '\.swp', '\~'] " ignore *.py[co], *.swp and *~ " =======end================== " switch window nnoremap <c-h> <c-w>h nnoremap <c-j> <c-w>j nnoremap <c-k> <c-w>k nnoremap <c-l> <c-w>l " ===== brace autocompletion ========= inoremap ( ()<Esc>i inoremap [ []<Esc>i inoremap { {<CR>}<Esc>O autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR> inoremap ) <c-r>=ClosePair(')')<CR> inoremap ] <c-r>=ClosePair(']')<CR> inoremap } <c-r>=CloseBracket()<CR> inoremap " <c-r>=QuoteDelim('"')<CR> inoremap ' <c-r>=QuoteDelim("'")<CR> function ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\<Right>" else return a:char endif endf function CloseBracket() if match(getline(line('.') + 1), '\s*}') < 0 return "\<CR>}" else return "\<Esc>j0f}a" endif endf function QuoteDelim(char) let line = getline('.') let col = col('.') if line[col - 2] == "\\" "Inserting a quoted quotation mark into the string return a:char elseif line[col - 1] == a:char "Escaping out of the string return "\<Right>" else "Starting a string return a:char.a:char."\<Esc>i" endif endf """"""""""""YCM"""""""""""""""""""" let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py' let g:ycm_collect_identifiers_from_tags_files = 1 let g:ycm_seed_identifiers_with_syntax = 1 let g:ycm_confirm_extra_conf = 0 """"""""""""""""""""emmet *"""""""""""""""""" let g:user_emmet_mode='n' "only enable normal mode functions. let g:user_emmet_mode='inv' "enable all functions, which is equal to let g:user_emmet_mode='a' "enable all function in all mode." let g:user_emmet_install_global = 0 autocmd FileType html,css EmmetInstall let g:user_emmet_leader_key='<C-Z>' " key-mappings for comment line in normal mode noremap <silent> <C-C> :call CommentLine()<CR> " key-mappings for range comment lines in visual <Shift-V> mode vnoremap <silent> <C-C> :call RangeCommentLine()<CR>
相关推荐
vimrc vim配置方案 vim配置 vim配色 vim配色方案 比较经典的颜色
vim配置+各种颜色方案
Qt Creator vim 配色方案,放到QT creator 安装文件夹下的style文件里。这个配色护眼,清楚
从网络上收集的desert.vim 颜色配置方案从网络上收集的desert.vim 颜色配置方案从网络上收集的desert.vim 颜色配置方案从网络上收集的desert.vim 颜色配置方案从网络上收集的desert.vim 颜色配置方案从网络上收集的...
vim爱好者的首选vim的终极配置
从网络上收集的desert.vim 颜色配置方案从网络上收集的desert.vim 颜色配置方案从网络上收集的desert.vim 颜色配置方案从网络上收集的desert.vim 颜色配置方案从网络上收集的desert.vim 颜色配置方案从网络上收集的...
我的vim配置,字体,配色方案。 我的vim配置,字体,配色方案。
amoscykl博主的Vim的终极配置方案,完美的写代码界面! ——.vimrc这篇帖子 ,还有我自己的修改和整理,有语法高亮,语句补全,显示行号,自动缩进等等功能。 还有创建源文件自动添加头文件的功能,例如写一个.c程序 ...
个人vim配置使用的配置文件,字体,主题,方便快速配置
vim的配件文档,里面很详细的描述了vim的各种配置。
vim配置文件,提供配色方案和各种快捷操作,使你的vim更适合你的开发工作!
Vim solarized 配色方案,相当赞的配色方案!配置效果以及方法参考 http://blog.csdn.net/johnnycode/article/details/41084271
作为自己极为方便和顺手的编译器,在最近两年的使用中,我不断的更新和加强vim的功能,特此备份。。。 ============================== 开启最大化 (win32用户直接就可以最大化,但是linux用户则需要安装wmctrl,...
这是一款vim7.4中修改的护眼配方案文件mycolor.vim,安装方法是:将文件复制到vim安装目录的colors目录内,启动后,就可以切换到这个方案中。 更多的介绍可以参考我的博客:
通过个性化配置和插件系统,用户可以定制快捷键、颜色方案等。Vim 还可以作为图形化编辑器,在不同操作系统上运行,并与版本控制系统集成。总之,Vim 是一款高效、灵活的编辑器,为用户提供优秀的编辑体验。 0x00 ...
vimcolors是一个vim插件,...请执行以下命令: colorscheme NAME_OF_COLOR_SCHEME 例如,要将配色方案更改为wombat ,请按esc ,然后键入: : colorscheme wombat 要将颜色方案设置为默认方案,请将命令添加到~/.vimr
vconf-VIM配置Vim配置,其中包含您日常VIM使用的多个插件和主题。包含: NerdTree [ ] 逃犯[ ] 模糊查找器L9 旺德尔w0rp / ale 灯线vim-gitgutter 维姆哈姆gruvbox 更新插件:插件是通过Vundle插件来管理的,仅在您...
它具有“ vim-hue”深色Vim颜色方案和完整的Vim配置。 非常适合每天使用Vim和以下任何一种软件的任何人: 外壳(重击) 高朗 Python 地貌 Ansible Docker(Dockerfile) Kubernetes(模板) 等... 请注意: ...
Vim配色方案Jaime 浅色背景,用于Python代码 只需将其安装在〜/ .vim / colors下,然后将其设置为.vimrc中的选项即可。 colo jaime享受!
vim-颜色从网络上收集并打包到适用于或的存储库中的 vim 配色方案包文德尔如果您使用的是 vundle,只需将以下内容添加到您的 vim 配置中: Bundle lerrua/vim-colors运行vim +BundleInstall +qall命令进行安装。...