macvim 配置

来源:互联网 发布:最终幻想15剧情 知乎 编辑:程序博客网 时间:2024/06/14 06:21

sublime用着虽然很不错,但是还是有些不习惯的,于是就折腾了下vim。

""===============================" 更新时间:2015-12-03 12:15""===============================" 设置vundle set nocompatiblefiletype offset rtp+=~/.vim/bundle/vundle/call vundle#rc()Bundle 'gmarik/vundle'""===============================""自定义插件vundle设置" :BundleList - list configured BundleList" :BundleInstall(!) - install(update) bundles " :BundleSearch(!) foo - search(or refresh cache first) for foo "" :BundleClean(!) - confirm(or auto-approve) removal of unused bundles" 更新插件:BundleUpdate""==============================="=== Github vim-scripts repos "" 快速注释、反注释代码" gc gcc注释Bundle 'tComment'"=== Github User repos """主题Bundle 'flazz/vim-colorschemes'""以树状方式浏览系统中的文件和目录Bundle 'scrooloose/nerdtree'"设置子窗口位置"let g:NERDTreeWinPos = "left"" 设置NERDTree子窗口宽度let NERDTreeWinSize=32"map <C-n> :NERDTreeToggle<CR>"打入快速输入括号,引号等,避免出错Bundle 'spf13/vim-autoclose'"ctrl + p 文件模糊搜索Bundle 'kien/ctrlp.vim'let g:ctrlp_cmd = 'CtrlP'let g:ctrlp_custom_ignore = {  \ 'dir':  '\.git$\|\.hg$\|\.svn$\|\.yardoc\|public\/images\|public\/system\|data\|log\|tmp$',  \ 'file': '\.exe$\|\.so$\|\.dat$'  \ }"语法检测Bundle 'scrooloose/syntastic'let g:syntastic_check_on_open=1let g:syntastic_html_tidy_ignore_errors=[" proprietary attribute \"ng-"]let g:syntastic_always_populate_loc_list = 1let g:syntastic_auto_loc_list = 1let g:syntastic_check_on_wq = 0set statusline+=%#warningmsg#set statusline+=%{SyntasticStatuslineFlag()}set statusline+=%*"自动补全end关键字"Bundle 'tpope/vim-endwise'"ruby语法高亮,智能缩进,集成编译插件Bundle 'vim-ruby/vim-ruby'"Vim开发Rails不可缺少的一个插件"Bundle 'tpope/vim-rails'"快速对齐 gg = GBundle 'godlygeek/tabular'"快速选中结对符,用空格(space)选中Bundle 'gcmt/wildfire.vim'map <SPACE> <Plug>(wildfire-fuel)vmap <S-SPACE> <Plug>(wildfire-water)"适用于哪些结对符let g:wildfire_objects = ["i'", 'i"', "i)", "i]", "i}", "i>", "ip"]"git控制下,文件改变标示""Bundle 'airblade/vim-gitgutter'Bundle 'git://github.com/airblade/vim-gitgutter.git'Bundle 'yegappan/grep'Bundle 'mileszs/ack.vim'Bundle 'dyng/ctrlsf.vim'" CtrlSF搜索" 默认程序为ACK而不是AGlet g:ctrlsf_ackprg = 'ack'                                     "使用 Ctrl + f 打开查找 nmap     <C-F> <Plug>CtrlSFPrompt vmap     <C-F>f <Plug>CtrlSFVwordPath vmap     <C-F>F <Plug>CtrlSFVwordExec nmap     <C-F>n <Plug>CtrlSFCwordPath nmap     <C-F>p <Plug>CtrlSFPwordPath nnoremap <C-F>o :CtrlSFOpen<CR> ""替换" 定义快捷键的前缀,即 <Leader>let mapleader=";"" 替换函数。参数说明:" confirm:是否替换前逐一确认" wholeword:是否整词匹配" replace:被替换字符串"替换之前要先确定范围 bufdo bufdo! argdo argsdo argsdo!function! Replace(confirm, wholeword, replace)    wa    let flag = ''    if a:confirm        let flag .= 'gec'    else        let flag .= 'ge'    endif    let search = ''    if a:wholeword        let search .= '\<' . escape(expand('<cword>'), '/\.*$^~[') . '\>'    else        let search .= expand('<cword>')    endif    let replace = escape(a:replace, '/\&~')    execute 'argdo %s/' . search . '/' . replace . '/' . flag . '| update'endfunction" 不确认、非整词nnoremap <Leader>R :call Replace(0, 0, input('Replace '.expand('<cword>').' with: '))<CR>" 不确认、整词nnoremap <Leader>rw :call Replace(0, 1, input('Replace '.expand('<cword>').' with: '))<CR>" 确认、非整词nnoremap <Leader>rc :call Replace(1, 0, input('Replace '.expand('<cword>').' with: '))<CR>" 确认、整词nnoremap <Leader>rcw :call Replace(1, 1, input('Replace '.expand('<cword>').' with: '))<CR>nnoremap <Leader>rwc :call Replace(1, 1, input('Replace '.expand('<cword>').' with: '))<CR>"airline 设置"git clone git@github.com:Lokaltog/powerline-fonts.git ~/Library/Fonts/powerline-fonts"./install"themes: https://github.com/bling/vim-airline/tree/master/autoload/airline/themes"https://github.com/bling/vim-airline/wiki/ScreenshotsBundle 'bling/vim-airline'"显示状态栏set laststatus=2" 使用powerline打过补丁的字体let g:airline_powerline_fonts = 1"主题let g:airline_theme='powerlineish'let g:airline#extensions#tabline#enabled = 0 " tabline中当前buffer两端的分隔字符let g:airline#extensions#tabline#left_sep = ' '" tabline中未激活buffer两端的分隔字符let g:airline#extensions#tabline#left_alt_sep = '|'" tabline中buffer显示编号let g:airline#extensions#tabline#buffer_nr_show = 1" 映射切换buffer的键位,你只能通过 :ls 来查看buffer."然后通过 :bn (buffer next)和 :bp (buffer previous),或者 :b num (打开编号为num的buffer)这样的命令来切换不同文件nnoremap [b :bp<CR>nnoremap ]b :bn<CR>""set showtabline=0              始终不显示标签页 ""set showtabline=1              新建了标签页才会在窗口上方显示标签栏 ""set showtabline=2              ""总是显示标签栏 Bundle 'pbrisbin/vim-mkdir'Bundle 'amirh/HTML-AutoCloseTag'Bundle 'hail2u/vim-css3-syntax'Bundle 'slim-template/vim-slim'Bundle 'tpope/vim-haml'Bundle 'MarcWeber/vim-addon-mw-utils'if executable('ctags')  Bundle 'majutsushi/tagbar'endif"tagbar是一个taglist的替代品nmap tl :TagbarToggle<CR>"Github non repos "Bundle 'git@github.com:vim-scripts/taglist.vim.git'Bundle 'git@github.com:vim-scripts/buftabs.git'"================================let g:rubycomplete_buffer_loading = 1let g:rubycomplete_classes_in_global = 1let g:rubycomplete_rails = 1" 自适应不同语言的智能缩进"filetype plugin indent on"设置语法高亮"syntax enablesyntax on"设置编码"set encoding=utf-8set fileencodings=utf-8,gbk,ucs-bom,gb18030,gb2312,cp936"显示行号"set number"设置默认窗口大小"set lines=44 columns=150"调色版"colorscheme desertEx"在Insert模式下,设置Backspace键如何删除光标前边的字符。这里三个值分别表示空白字符,分行符和插入模式之前的字符"set backspace=indent,eol,start"保存700条命令历史记录"set history=700"总是在窗口右下角显示光标的位置"set ruler"忽略大小写"set ignorecase"启动搜索高亮."set hlsearch"在查找时输入字符过程中就高亮显示匹配点。然后回车跳到该匹配点。"set incsearch" 总是显示状态栏"set laststatus=2" 高亮显示当前行"set cursorline" 基于缩进或语法进行代码折叠set foldmethod=indent" 启动 vim 时关闭折叠代码set nofoldenable" 设置 gvim 显示字体"set guifont=Monaco:h13set guifont=Literation_Mono_Powerline:h16"vim 自身命令行模式智能补全set wildmenu" 禁止显示滚动条set guioptions-=lset guioptions-=Lset guioptions-=rset guioptions-=R" 禁止显示菜单和工具条set guioptions-=mset guioptions-=T" 将制表符扩展为空格set expandtab" 设置编辑时制表符占用空格数set tabstop=4" 设置格式化时制表符占用空格数set shiftwidth=4" 让 vim 把连续数量的空格视为一个制表符set softtabstop=4"PythonBundle 'python-syntax'Bundle 'kevinw/pyflakes-vim'"CTRLSpace"ctrl + space 键盘弹出搜索框""CtrlSpace has 5 lists:"" Buffer List (<h> for Home)"" File List (<o> for Open)"" Tab List (<l> for Lists) 搜索tab名字,一般不常用"" Workspace List (<w>)"" Bookmark List (<b>) 不常用" 相应的大写 直接进入搜索模式" H 进入书签搜索模式,直接输入关键字即可搜索" O 进入文件搜索模式,直接输入关键字即可搜索"Bundle 'szw/vim-ctrlspace'set hiddenif has("gui_running")    " Settings for MacVim and Inconsolata font    let g:CtrlSpaceSymbols = { "File": "◯", "CTab": "▣", "Tabs": "▢" }endifif executable("ag")    let g:CtrlSpaceGlobCommand = 'ag -l --nocolor -g ""'endiflet g:CtrlSpaceSearchTiming = 100hi link CtrlSpaceNormal   PMenuhi link CtrlSpaceSelected PMenuSelhi link CtrlSpaceSearch   Searchhi link CtrlSpaceStatus   StatusLinehi link CtrlSpaceSearch IncSearchnnoremap <silent><C-p> :CtrlSpace O<CR>let g:CtrlSpaceLoadLastWorkspaceOnStart = 1let g:CtrlSpaceSaveWorkspaceOnSwitch = 1let g:CtrlSpaceSaveWorkspaceOnExit = 1"括号高亮Bundle 'kien/rainbow_parentheses.vim'let g:rbpt_colorpairs = [    \ ['brown',       'RoyalBlue3'],    \ ['Darkblue',    'SeaGreen3'],    \ ['darkgray',    'DarkOrchid3'],    \ ['darkgreen',   'firebrick3'],    \ ['darkcyan',    'RoyalBlue3'],    \ ['darkred',     'SeaGreen3'],    \ ['darkmagenta', 'DarkOrchid3'],    \ ['brown',       'firebrick3'],    \ ['gray',        'RoyalBlue3'],    \ ['darkmagenta', 'DarkOrchid3'],    \ ['Darkblue',    'firebrick3'],    \ ['darkgreen',   'RoyalBlue3'],    \ ['darkcyan',    'SeaGreen3'],    \ ['darkred',     'DarkOrchid3'],    \ ['red',         'firebrick3'],    \ ]let g:rbpt_max = 16let g:rbpt_loadcmd_toggle = 0au VimEnter * RainbowParenthesesToggleau Syntax * RainbowParenthesesLoadRoundau Syntax * RainbowParenthesesLoadSquareau Syntax * RainbowParenthesesLoadBracesif has('lua')     Bundle 'Shougo/neocomplete'    " Use NeoComplete    " Disable AutoComplPop.    let g:acp_enableAtStartup = 0    " Use neocomplete.    let g:neocomplete#enable_at_startup = 1    " Use smartcase.    let g:neocomplete#enable_smart_case = 1    " Set minimum syntax keyword length.    let g:neocomplete#sources#syntax#min_keyword_length = 3    let g:neocomplete#lock_buffer_name_pattern = '\*ku\*'    " Define dictionary.    let g:neocomplete#sources#dictionary#dictionaries = {        \ 'default' : '',        \ 'vimshell' : $HOME.'/.vimshell_hist',        \ 'scheme' : $HOME.'/.gosh_completions'        \ }    " Define keyword.    if !exists('g:neocomplete#keyword_patterns')    let g:neocomplete#keyword_patterns = {}    endif    let g:neocomplete#keyword_patterns['default'] = '\h\w*'    " Plugin key-mappings.    inoremap <expr><C-g>     neocomplete#undo_completion()    inoremap <expr><C-l>     neocomplete#complete_common_string()    " Recommended key-mappings.    " <CR>: close popup and save indent.    inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>    function! s:my_cr_function()    return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>"    " For no inserting <CR> key.    "return pumvisible() ? "\<C-y>" : "\<CR>"    endfunction    " <TAB>: completion.    inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"    " <C-h>, <BS>: close popup and delete backword char.    inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>"    inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"    " Close popup by <Space>.    "inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>"    " AutoComplPop like behavior.    "let g:neocomplete#enable_auto_select = 1    " Shell like behavior(not recommended).    "set completeopt+=longest    "let g:neocomplete#enable_auto_select = 1    "let g:neocomplete#disable_auto_complete = 1    "inoremap <expr><TAB>  pumvisible() ? "\<Down>" : "\<C-x>\<C-u>"    " Enable omni completion.    autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS    autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags    autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS    autocmd FileType python setlocal omnifunc=pythoncomplete#Complete    autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags    autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete    " Enable heavy omni completion.    if !exists('g:neocomplete#sources#omni#input_patterns')    let g:neocomplete#sources#omni#input_patterns = {}    endif    let g:neocomplete#sources#omni#input_patterns.ruby = '[^. *\t]\.\h\w*\|\h\w*::'    let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::'    let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)'    let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'    let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::'endif


1 0
原创粉丝点击