Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- " General shenanigans
- "" not vi-compatible mode
- set nocompatible
- "" persistent undos
- set undodir=$HOME/.vim/undo
- set undofile
- set undolevels=1000
- set undoreload=10000
- "" much to do with folds
- " highlight folds lightly, fold on syntax, only nest 2 folds deep
- highlight folded ctermbg=233
- set foldmethod=syntax
- set foldnestmax=2
- " save and load folds automatically
- autocmd BufWinLeave *.* mkview!
- autocmd BufWinEnter *.* silent loadview
- "Plugins
- ""vundle
- "filetype must be off for vundle commands
- filetype off
- set rtp+=$HOME/.vim/bundle/vundle
- call vundle#begin()
- "vundle manages itself, this is required
- Plugin 'gmarik/vundle'
- "other packages
- " autocompletion
- Plugin 'Shougo/neocomplete'
- call vundle#end()
- filetype plugin indent on
- noremap ; l
- noremap l k
- noremap k j
- noremap j h
- nnoremap <C-n> :nohl<CR>
- " " tab behavior (all smart/auto, tab = 4 spaces)
- set autoindent
- set smartindent
- set smarttab
- set shiftwidth=4
- set softtabstop=0
- set tabstop=4
- set expandtab
- ":retab applyes these rules to the current buffer
- "" show trailing spaces as '_', tabs as '> '
- "set list listchars=tab:\ \ ,trail:_,extends:»,precedes:«
- set list listchars=tab:▸\ ,eol:¬,extends:»,precedes:«
- map <leader>lc :set list!<cr>
- "" syntax highlighting
- syntax on
- "" numbers in margin
- set number
- "" keep 12 lines above and below the current line when scrolling
- set scrolloff=12
- " " set color scheme
- colorscheme custom1
- " " line break at 80 characters
- set formatoptions+=t
- set textwidth=80
- set wrap linebreak
- " " highlight current line
- highlight cursorline ctermbg=233
- noremap <leader>cl :set cursorline!<cr>
- set cursorline
- " Command Behavior
- " " incrementally search, highlight matches
- set incsearch
- set hlsearch
- " Keybindings
- "" '>' and '<' in normal mode to change tabs
- nnoremap > gt
- nnoremap < gT
- "" latex files, @w compiles, @o opens in pdf reader, @p prints the pdf
- """ locally compile (if you have pdflatex installed)
- "autocmd BufRead,BufNewFile *.tex let @w=':w
- :!pdflatex %:r; bibtex %:r; pdflatex %:r; pdflatex %:r
- '
- """ call serv_tex, a script which uploads and remotely compiles latex
- "autocmd BufRead,BufNewFile *.tex let @w=':wa
- :!ssh_tex m_mh247 %:r
- '
- autocmd BufRead,BufNewFile *.tex let @w=':wa
- :!pdflatex %:r
- '
- \ | let @o=':!mupdf %:r.pdf &> /dev/null &
- '
- " \ | let @p=':wa
- :!ssh_print m_mh247 %:r.pdf
- '
- """ start settings for 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 neocomplete#close_popup() . "\<CR>"
- " For no inserting <CR> key.
- "return pumvisible() ? neocomplete#close_popup() : "\<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>"
- inoremap <expr><C-y> neocomplete#close_popup()
- inoremap <expr><C-e> neocomplete#cancel_popup()
- " Close popup by <Space>.
- "inoremap <expr><Space> pumvisible() ? neocomplete#close_popup() : "\<Space>"
- " For cursor moving in insert mode(Not recommended)
- "inoremap <expr><Left> neocomplete#close_popup() . "\<Left>"
- "inoremap <expr><Right> neocomplete#close_popup() . "\<Right>"
- "inoremap <expr><Up> neocomplete#close_popup() . "\<Up>"
- "inoremap <expr><Down> neocomplete#close_popup() . "\<Down>"
- " Or set this.
- "let g:neocomplete#enable_cursor_hold_i = 1
- " Or set this.
- "let g:neocomplete#enable_insert_char_pre = 1
- " 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
- " 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.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*::'
- " For perlomni.vim setting.
- " https://github.com/c9s/perlomni.vim
- let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::'
- """ end settings for neocomplete
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement