" ================================= " Vimrc " ================================= " " Plugin setup --- via Pathogen ----- {{{ " set nocompatible " filetype off " execute pathogen#infect() " execute pathogen#helptags() " }}} " " ================================= " " Plugin setup --- via vundle ----- {{{ " if has('vim') set nocompatible endif filetype off " " set the runtime path to include Vundle and initialize " set rtp+=$HOME/.vim/bundle/Vundle.vim " call vundle#begin() " " let Vundle manage Vundle, required " Plugin 'VundleVim/Vundle.vim' Plugin 'alfredodeza/pytest.vim' Plugin 'altercation/vim-colors-solarized' Plugin 'benmills/vimux' Plugin 'cburroughs/pep8.py' Plugin 'chriskempson/tomorrow-theme' Plugin 'christoomey/vim-tmux-navigator' Plugin 'davidhalter/jedi-vim' Plugin 'dbeniamine/vim-mail' Plugin 'ervandew/screen' Plugin 'ervandew/supertab' Plugin 'flazz/vim-colorschemes' " Colourschemes Plugin 'honza/vim-snippets' Plugin 'jistr/vim-nerdtree-tabs' Plugin 'jnurmine/Zenburn' Plugin 'julienr/vim-cellmode' Plugin 'junegunn/goyo.vim' Plugin 'junegunn/fzf.vim' Plugin 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plugin 'junegunn/limelight.vim' Plugin 'junegunn/seoul256.vim' Plugin 'KabbAmine/zeavim.vim' Plugin 'kien/ctrlp.vim' " Fast transitions on project files Plugin 'klen/python-mode' " Python mode (docs, refactor, lints...) Plugin 'majutsushi/tagbar' " Class/module browser Plugin 'mileszs/ack.vim' Plugin 'mitsuhiko/vim-jinja' Plugin 'mitsuhiko/vim-python-combined' Plugin 'mitsuhiko/vim-sparkup' " Sparkup(XML/jinja/htlm-django/etc.) support Plugin 'nelstrom/vim-markdown-preview' Plugin 'nvie/vim-flake8' Plugin 'pangloss/vim-javascript' Plugin 'rkulla/pydiction' Plugin 'Rykka/riv.vim' " ReStructuredText plugin Plugin 'scrooloose/nerdtree' " Project and file navigation Plugin 'scrooloose/nerdcommenter' " Comment stuff out Plugin 'scrooloose/syntastic' " Syntax checking plugin for Vim Plugin 'SirVer/ultisnips' Plugin 'sjl/tslime2.vim' Plugin 'suan/vim-instant-markdown' Plugin 'terryma/vim-multiple-cursors' Plugin 'tmhedberg/SimpylFold' Plugin 'tpope/timl' Plugin 'tpope/vim-fugitive' Plugin 'tpope/vim-git' Plugin 'tpope/vim-markdown' Plugin 'tpope/vim-obsession' Plugin 'tpope/vim-surround' Plugin 'Valloric/YouCompleteMe' " Autocomplete plugin Plugin 'vim-airline/vim-airline' Plugin 'vim-airline/vim-airline-themes' Plugin 'vim-latex/vim-latex' Plugin 'vim-scripts/indentpython.vim' Plugin 'vim-scripts/pydoc.vim' Plugin 'vim-scripts/taglist.vim' Plugin 'vim-scripts/vim-R-plugin' Plugin 'vimwiki/vimwiki' Plugin 'wincent/command-t' Plugin 'xuhdev/vim-latex-live-preview' " " All Plugins must be added before the following line " call vundle#end() " required " filetype plugin indent on " required " filetype on " " To ignore plugin indent changes, instead use: filetype plugin on " " Brief help " " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line " " }}} " " ================================= " " GUI Settings ---------------------- {{{ " " " GVIM- (here instead of .gvimrc) if has('gui_running') set lines=40 colorscheme zenburn if has("gui_gtk2") set guifont=Inconsolata\ 15 elseif has("gui_macvim") set guifont=Inconsolata-dz:h14 endif set guicursor=n-v-c:block-Cursor else set background=dark set t_Co=256 "let g:gruvbox_italic=1 "colorscheme wombat256i colorscheme gruvbox endif " " " }}} " " ================================= " " General Settings ------ {{{ " syntax on let mapleader="," let maplocalleader=",," set autoindent "set autoindenting for programming set autoread set autowrite set columns=100 set cursorline " shows line under the cursor's line set dictionary+=/usr/share/dict/words set directory=.,$TEMP: set encoding=utf-8 set directory=.,$TEMP: set encoding=utf-8 set foldlevel=0 "0=all folds closed; 99=all folds open set foldmethod=marker set hidden set history=1000 set hlsearch "set highligh searching set incsearch "set incremental searching set lines=40 set nobackup set nowritebackup set number set omnifunc=syntaxcomplete#Complete set shiftwidth=4 set showmatch set showmode set title set t_RV= "surpress terminal version query from vim set visualbell set wildmenu set wildmode=longest,list,full nnoremap OA nnoremap OB nnoremap OC nnoremap OD inoremap OA inoremap OB inoremap OC inoremap OD " }}} " " ================================= " " General Key Bindings ----- {{{ " noremap § :norm i# noremap :NERDTreeToggle nnoremap n :NERDTreeToggle noremap :make % noremap :setlocal spell! spelllang = en_gb noremap :tab split exec("tag ".expand("")) noremap :vsp exec("tag ".expand("")) nnoremap a :Ag "noremap :set guifont=* "nnoremap f :set guifont=Monospace\ 12 "nnoremap F :set guifont=Monospace\ 15 nnoremap [ :tabprevious nnoremap ] :tabnext " clears highlighted search results nnoremap :nohlsearch "cd to current working directory nnoremap cwd :cd %:p:h:pwd " edit vimrc file nnoremap v :edit $MYVIMRC " "If you forget to sudo before calling vim use the following to be "able to write the file. cnoremap w!! %!sudo tee > /dev/null % "open with @locate or find command "tutorial video: https://www.youtube.com/watch?v=X0KP15O006M noremap o :exec '!xdg-open ' . shellescape(getline('.')) noremap mp :exec '!mpv ' . shellescape(getreg('0')) noremap yp :exec '!mplayer $(youtube-dl -g ' . shellescape(getline('.')) . ')' "See docstrings for folded code let g:SimpylFold_docstring_preview=1 "Toggle relative numbering, and set to absolute on loss of focus or insert "mode set rnu function! ToggleNumbersOn() set nonumber! set norelativenumber! endfunction function! ToggleAbsoluteOn() set nu! set rnu endfunction function! ToggleRelativeOn() set rnu! set nu endfunction autocmd FocusGained * call ToggleRelativeOn() autocmd FocusLost * call ToggleRelativeOn() autocmd InsertLeave * call ToggleRelativeOn() autocmd InsertEnter * call ToggleRelativeOn() nmap l :call ToggleNumbersOn() """ SYSTEM CLIPBOARD COPY AND PASTE SUPPORT """ set pastetoggle= "F2 before pasting to preserve indentation "copy/paste to/from clipboard vnoremap "*y map p :set pasteo"*]p:set nopaste" map :set pasteO"*]p:set nopaste" " Copy and paste from x11 clipboard " http://vim.wikia.com/wiki/GNU/Linux_clipboard_copy/paste_with_xclip vmap xyy :!xclip -f -sel clip map xpp mz:-lr !xclip -o -sel clip`z vmap xtt :!tmux set-buffer " " ================================= " " Ranger File Browser in Vim ----- {{{ " http://www.everythingcli.org/use-ranger-as-a-file-explorer-in-vim/ function! g:RangerExplorer() exec "silent !ranger --choosefile=/tmp/vim_ranger_current_file " . expand("%:p:h") if filereadable('/tmp/vim_ranger_current_file') exec 'edit ' . system('cat /tmp/vim_ranger_current_file') call system('rm /tmp/vim_ranger_current_file') endif redraw! endfunction noremap re :call g:RangerExplorer() " }}} " " " ================================= " "Manage multiple windows "nnoremap W :call g:VGGToggleWindowFixedWidth() "nnoremap H :call g:VGGToggleWindowFixedHeight() nnoremap W :call g:VGGAutoWindowResize() " }}} " " ================================= " " Eclim Settings ------ {{{ " " ================================= " " Status line setting "let g:EclimProjectStatusLine = 'eclim(p=${name}, n=${natures})' "let g:EclimProjectTreeAutoOpen=1 "let g:EclimLocateFileNonProjectScope = 'ag' " " }}} " " ================================= " " Status Line ----- {{{ " function! Local_AirlineThemePatcher(palette) " Trick to ensure 'Normal' highlight group exists if !hlexists('Normal') highlight Normal ctermbg=0 endif endfunction let g:airline_theme='luna' if !exists('g:airline_symbols') let g:airline_symbols = {} endif let g:powerline_pycmd='py3' let g:airline_powerline_fonts = 1 let g:airline_left_sep = '' let g:airline_left_alt_sep = '' let g:airline_right_sep = '' let g:airline_right_alt_sep = '' let g:airline_symbols.branch = '' let g:airline_symbols.readonly = '' let g:airline_symbols.linenr = '' "let g:airline#extensions#tabline#enabled = 1 "let g:airline#extensions#whitespace#enabled = 0 set timeoutlen=300 ttimeoutlen=0 set laststatus=2 "Always display status line set statusline=%F "Full path to the file set statusline+=\ -\ "Separator set statusline+=%-4{fugitive#statusline()} "If using git, show "branch being used "in status line. "set statusline+=%= "Switch to the right side "set statusline+=%l "Current line "set statusline+=/ " Separator "set statusline+=%L "Total lines "set statusline+=%-4{ObsessionStatus('R','P')} "Indicate when Obsession is "active or paused " " }}} " " ================================= " " Vimscript file settings ------------ {{{ " augroup filetype_vim autocmd! autocmd FileType vim setlocal foldmethod=marker " Source the vimrc file after saving it if has("autocmd") autocmd! bufwritepost $MYVIMRC nested :source $MYVIMRC endif function! g:VGGToggleWindowFixedWidth() :set winfixwidth! if &l:winfixwidth echo "Fixed Window Width ON" else echo "Fixed Window Width OFF" endif endfunction function! g:VGGToggleWindowFixedHeight() :set winfixheight! if &l:winfixheight echo "Fixed Window Height ON" else echo "Fixed Window Height OFF" endif endfunction function! g:VGGAutoWindowResize() if winwidth == 100 || winheight == 40 set nowinfixwidth nowinfixheight set noequalalways eadirection=both set winminwidth=1 winminheight=1 set winwidth=9999 winheight=999 set helpheight=999 cmdwinheight=999 previewheight=999 echo "Window Defaults ON" else set nowinfixwidth nowinfixheight set equalalways eadirection=both set winminwidth=1 winminheight=0 set winwidth=100 winheight=40 set helpheight=20 cmdwinheight=7 previewheight=12 echo "Window Defaults OFF" endif endfunction augroup END " " }}} " " ================================= " " Javascript file settings ------------ {{{ " augroup filetype_js autocmd! autocmd FileType javascript setlocal foldmethod=marker omnifunc=javascriptcomplete#CompleteJS augroup END " " }}} " " ================================= " " Taglist Settings ---- {{{ " " Taglist variables " set tags+=./tags;/ set tags+=$HOME/Computing/Sandbox/tags " "can verify taglist is correct via ": set verbose tags?" command " " Display function name in status bar: " let g:ctags_statusline=1 " " Automatically start script " let generate_tags=1 " " Displays taglist results in a vertical window: " let Tlist_Use_Horiz_Window=0 " " Shorter commands to toggle Taglist display " nnoremap TT :TlistToggle nnoremap :TlistToggle noremap :call g:VGGCTagsGenerate() function! g:VGGCTagsGenerate() :!ctags -R --c++-kinds=+pl --fields=+iaS --extra=+q . :!ctags -R --c-kinds=+pl --fields=+iaS --extra=+q . :!ctags -R --Fortran-kinds=+iL --fields=+iaS --extra=+q . :!ctags -R --Python-kinds=+cfimv --fields=+iaS --extra=+q . :!ctags -R --Vim-kinds=+acfmv --fields=+iaS --extra=+q . echo "cTags generated..." endfunction " " Various Taglist diplay config: " let Tlist_Use_Left_Window=1 let Tlist_Compact_Format=1 let Tlist_Exit_OnlyWindow=1 let Tlist_GainFocus_On_ToggleOpen=1 let Tlist_File_Fold_Auto_Close=1 let Tlist_WinWidth=20 " " }}} " " ================================= " "Tagbar Settings ---- {{{ " "Toggle Tagbar window let g:tagbar_width=22 let g:tagbar_zoomwidth=0 nnoremap :TagbarToggle "autocmd BufEnter *.py :call tagbar#autoopen(0) "autocmd BufWinLeave *.py :TagbarClose " " }}} " " " ================================= " "NERDTree Settings ---- {{{ " let NERDTreeIgnore=['\.pyc$', '\.pyo$', '__pycache__$'] " Ignore files in NERDTree let NERDTreeWinSize=40 "autocmd VimEnter * if !argc() | NERDTree | endif " Load NERDTree only if vim is run without arguments " }}} " " ================================= " " Binary File Settings ---- {{{ " " Hex read nmap hr :%!xxd :set filetype=xxd " Hex write nmap hw :%!xxd -r :set binary :set filetype=xxd " " }}} " " ================================= " " Limelight Settings ---- {{{ " " Color name (:help cterm-colors) or ANSI code let g:limelight_conceal_ctermfg = 'gray' let g:limelight_conceal_ctermfg = 240 " Color name (:help gui-colors) or RGB color let g:limelight_conceal_guifg = 'DarkGray' let g:limelight_conceal_guifg = '#777777' " Default: 0.5 let g:limelight_default_coefficient = 0.7 " Number of preceding/following paragraphs to include (default: 0) let g:limelight_paragraph_span = 1 " Beginning/end of paragraph " When there's no empty line between the paragraphs " and each paragraph starts with indentation let g:limelight_bop = '^\s' let g:limelight_eop = '\ze\n^\s' " Highlighting priority (default: 10) " Set it to -1 not to overrule hlsearch let g:limelight_priority = -1 " " }}} " " ================================= " " Goyo Settings ---- {{{ " function! s:goyo_enter() silent !tmux set status off silent !tmux list-panes -F '\#F' | grep -q Z || tmux resize-pane -Z set noshowmode set noshowcmd set scrolloff=999 Limelight endfunction function! s:goyo_leave() silent !tmux set status on silent !tmux list-panes -F '\#F' | grep -q Z && tmux resize-pane -Z set showmode set showcmd set scrolloff=5 Limelight! endfunction autocmd! User GoyoEnter nested call goyo_enter() autocmd! User GoyoLeave nested call goyo_leave() nmap go :Goyo " " }}} " " ================================= " "Some Python settings:------------------- {{{ augroup filetype_py " Clears the group each time vimrc is sourced " to prevent multiple definitions of the same autocmd " autocmd! " autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class autocmd BufRead, BufNewFile *.py \ set tabstop=4 \ set softtabstop=4 \ set shiftwidth=4 \ set textwidth=79 \ set expandtab \ set autoindent \ set fileformat=unix " " This will allow you to check the syntax of your entire file " by typing :make. You can the get a list of errors with :clist " and move between the errors with :cn and :cp. " autocmd BufRead *.py set makeprg=python\ -c\ \"import\ py_compile,sys;\ sys.stderr=sys.stdout;\ py_compile.compile(r'%')\" autocmd Bufwrite *.(py) : call Pyflakes() autocmd BufRead *.py set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m " Execute pydoc on the current word in the file being edited autocmd FileType python noremap K : execute "!xterm -e 'pydoc " . expand("") . "'" " Execute file being edited with + e: noremap :w\|!/usr/bin/env python % let g:pydiction_location="~/.vim/bundle/pydiction/complete-dict" let g:pyflakes_use_quickfix=0 let g:pep8_map="8" " " For full syntax highlighting: " let python_highlight_all=1 syntax on " python executables for different plugins let g:pymode_python='python' let g:syntastic_python_python_exec='python' " rope let g:pymode_rope=0 let g:pymode_rope_completion=0 let g:pymode_rope_complete_on_dot=0 let g:pymode_rope_auto_project=0 let g:pymode_rope_enable_autoimport=0 let g:pymode_rope_autoimport_generate=0 let g:pymode_rope_guess_project=0 " documentation let g:pymode_doc=0 let g:pymode_doc_bind='K' " lints let g:pymode_lint=0 " breakpoints let g:pymode_breakpoint=1 let g:pymode_breakpoint_key='b' " syntax highlight let g:pymode_syntax=1 let g:pymode_syntax_slow_sync=1 let g:pymode_syntax_all=1 let g:pymode_syntax_print_as_function=g:pymode_syntax_all let g:pymode_syntax_highlight_async_await=g:pymode_syntax_all let g:pymode_syntax_highlight_equal_operator=g:pymode_syntax_all let g:pymode_syntax_highlight_stars_operator=g:pymode_syntax_all let g:pymode_syntax_highlight_self=g:pymode_syntax_all let g:pymode_syntax_indent_errors=g:pymode_syntax_all let g:pymode_syntax_string_formatting=g:pymode_syntax_all let g:pymode_syntax_space_errors=g:pymode_syntax_all let g:pymode_syntax_string_format=g:pymode_syntax_all let g:pymode_syntax_string_templates=g:pymode_syntax_all let g:pymode_syntax_doctests=g:pymode_syntax_all let g:pymode_syntax_builtin_objs=g:pymode_syntax_all let g:pymode_syntax_builtin_types=g:pymode_syntax_all let g:pymode_syntax_highlight_exceptions=g:pymode_syntax_all let g:pymode_syntax_docstrings=g:pymode_syntax_all " code folding let g:pymode_folding=0 " pep8 indents let g:pymode_indent=1 " code running let g:pymode_run=1 let g:pymode_run_bind='' " syntastic let g:syntastic_always_populate_loc_list=1 let g:syntastic_auto_loc_list=1 let g:syntastic_enable_signs=1 let g:syntastic_check_on_wq=0 let g:syntastic_aggregate_errors=1 let g:syntastic_loc_list_height=5 let g:syntastic_error_symbol='X' let g:syntastic_style_error_symbol='X' let g:syntastic_warning_symbol='x' let g:syntastic_style_warning_symbol='x' let g:syntastic_python_checkers=['flake8', 'pydocstyle', 'python'] " " jedi-vim settings " let g:jedi#goto_command = "d" let g:jedi#use_splits_not_buffers = "right" let g:jedi#goto_assignments_command = "G" let g:jedi#goto_definitions_command = "GG" let g:jedi#documentation_command = "K" let g:jedi#usages_command = "n" let g:jedi#completions_command = "" let g:jedi#rename_command = "R" let g:jedi#show_call_signatures = 2 " " " screen stuff " let g:ScreenImpl = "Tmux" let g:ScreenShellTmuxInitArgs = '-2' let g:ScreenShellSendPrefix = '' let g:ScreenShellSendSufix = '' let g:ScreenIPython3 = 1 " Open an IPython3 shell (! for vertical split). autocmd FileType python map p :IPython! " Close whichever shell is running. autocmd FileType python map q :ScreenQuit " Send Commands " Send current line to python and move to next line. autocmd FileType python map r V:ScreenSend0j " Send selection to python and move to next line. autocmd FileType python map v :ScreenSend`>}0j " Send a to ipython. autocmd FileType python map cr :call g:ScreenShellSend("\r") " Clear the screen. autocmd FileType python map L :call g:ScreenShellSend('!clear') " " Using tslime2 to send python code to ipython " press vip to select current paragraph then press and this sends " the code to ipython. This also works sending current line and any selected text " " cellmode " let g:cellmode_use_tmux=1 let g:cellmode_tmux_windowname='' let g:cellmode_tmux_panenumber=2 " " Vimux " " ""## ""print("Hello, this is vim-cellmode in action") ""## ""import numpy as np ""b=np.zeros(50,50) ""print(b) ""## ""import pylab as pl ""pl.plot(0,1) ""## function! VimuxSlime() call VimuxSendText(@v) call VimuxSendKeys("Enter") endfunction "If text is selected save it in the v buffer and send that buffer to tmux vmap k "vy :call VimuxSlime() "Select current paragraph and send that it to tmux "nmap x vipvs nmap x vipv " Execute py tests " nnoremap ptf :Pytest file nnoremap ptc :Pytest class nnoremap ptm :Pytest method " " Cycle through test errors " nnoremap ptn :Pytest next nnoremap ptp :Pytest previous nnoremap pte :Pytest error augroup END " " }}} " " ================================= " " Latex Settings ----- {{{ " augroup filetype_tex autocmd! autocmd FileType tex setlocal iskeyword+=: " IMPORTANT: grep will sometimes skip displaying the file name if you " search in a singe file. This will confuse Latex-Suite. Set your grep " program to always generate a file-name. set grepprg=grep\ -nH\ $* " OPTIONAL: Starting with Vim 7, the filetype of empty .tex files " defaults to 'plaintex' instead of 'tex', which results in vim-latex " not being loaded. The following changes the default filetype back " to 'tex': let g:tex_flavor='latex' " "To use live preview we set the viewer. let g:livepreview_previewer = 'mupdf' augroup END " " }}} " " ================================= " " Man Pages Settings ----- {{{ " " Set up the reading of manpages from within vim (use :Man whatever) au BufNewFile,BufRead *.js, *.html, *.css \ set tabstop=2 \ set softtabstop=2 \ set shiftwidth=2 " " }}} " " ================================= " " Ag Settings ----- {{{ " " ag.vim is a plugin for vim which allows you to search over files using the " silver searcher (ag). " " Usage " " :Ag [options] pattern [directory] " " The :Ag command provides several features to make running ag easier: " " :Ag supports command completion of: " " - patterns from search history: hit when starting " to run :Ag and you can choose from a list of 10 of your most " recent searches. A common use case while editing code could be to " hit * on a function name to search for occurrences in the current " file, then to run :Ag to search for the function across all " files. " - ag options: If you type - and then hit , you can " scroll through all the ag.vim supported ag options. " - file/directory name to search in: Once you've " supplied a search pattern, the next argument to " :Ag is an optional directory or file to search in " and you can make use of completion to choose " that file or directory. " ag.vim also registers itself as a backend for eclim's :LocateFile functionality. You " can even set ag as the default for non-eclim projects by adding the following to your vimrc: " " let g:EclimLocateFileNonProjectScope = 'ag' let g:AgSmartCase=1 " " }}} " ================================= " " Vim Wiki Settings ----- {{{ " " vimwiki - Personal wiki for vim " https://github.com/vikiwiki/vimwik " vimwiki with markdown support filetype plugin on syntax on let g:vimwiki_list = [{'path': '$HOME/vimwiki', \ 'syntax': 'markdown', \ 'ext': '.md'}] " help-page -> :h vimwiki-syntax "vim-instant-markdown - Instant markdown previews from vim " https://github.com/suan/vim-instant-markdown let g:instant_markdown_autostart = 0 " disable autostart noremap md :InstantMarkdownPreview " " }}} " ================================= " " urlview ----- {{{ " " Use urlview to choose and open a url :noremap u :wsilent !urlview " " }}} " " ================================= " " FZF Settings ----- {{{ " function! FzfOmniOmniFiles() let is_git = system('git status') if v:shell_error :Files else :GitFiles endif endfunction nnoremap : call FzfOmniOmniFiles() let g:fzf_files_options = \ '--preview "(coderay {} || cat {}) 2> /dev/null | head - '.&lines.'"' " " }}} " " ================================= " " SuperTab settings ------- {{{ " inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\\\" : "\" inoremap pumvisible() ? "\\\" : "\" "let g:SuperTabDefaultCompletionType="context" let g:SuperTabDefaultCompletionType="" " " Automatically open and close the popup menu / preview window " au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif set completeopt=menuone,menu,longest,preview " " }}} " " ================================= " " UltiSnips Settings ----- {{{ " " snippets plugin " https://github.com/SirVer/ultisnips let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" let g:UltiSnipsListSnippets="" let g:UltiSnipsUsePythonVersion = 3 " If you want :UltiSnipsEdit to split your window. let g:UltiSnipsEditSplit="horiizontal" let g:UltiSnipsSnippetsDir=$HOME."/.vim/UltiSnips" let g:UltiSnipsSnippetDirectories=[$HOME.'/.vim/', $HOME.'/.vim/bundle/vim-snippets/UltiSnips'] "let g:UltiSnipsSnippetDirectories=[$HOME.'/.vim/'] " " }}} " " ================================= " " YouCompleteMe Settings ----- {{{ " " Code Completion Engine " https://github.com/Valloric/YouCompleteMe. let g:ycm_confirm_extra_conf=0 "load ycm conf by default let g:ycm_global_ycm_extra_conf="~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py" let g:ycm_complete_in_comments=1 "turn on completion in comments let g:ycm_collect_identifiers_from_tags_file=1 "turn on tag completion let g:ycm_min_num_of_chars_for_completion=1 "start completion from first character let g:ycm_cache_omnifunc=0 "dont cache completion items let g:ycm_seed_identifiers_with_syntax=1 "complete syntax keywords let g:ycm_autoclose_preview_window_after_completion=1 " Make YCM compatible with Ultisnips (using supertab) let g:ycm_key_list_select_completion=['', ''] "Dont use tab completion to cycle - leave this for UltiSnips let g:ycm_key_list_previous_completion=['', 'g :YcmCompleter GoToDefinitionElseDeclaration " " }}} " " ================================= " " Command-t Settings ----- {{{ " " "Command-T is a Vim plug-in that provides an extremely fast 'fuzzy' mechanism for: " " - Opening files and buffers " - Jumping to tags and help " - Running commands, or previous searches and commands " "with a minimal number of keystrokes. " " https://github.com/wincent/command-t let g:CommandTMaxFiles=999999 let g:CommandTSuppressMaxFilesWarning=1 " " }}} " " ================================= " runtime ftplugin/man.vim " " =================================