Created
April 17, 2016 17:39
-
-
Save joshbode/445e584d30d0dd1335abc28c86ba7aea to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" directories | |
set browsedir=buffer | |
set wildignore=*.o,*.pyc | |
set wildmode=list:longest,list:full | |
if v:version >=# '704' | |
set wildignorecase | |
endif | |
set autochdir | |
" persistence | |
set hidden | |
set undofile | |
set viewoptions=cursor,folds,slash,unix | |
" visual elements | |
set visualbell | |
set confirm | |
set nowrap | |
set showmatch | |
set hlsearch | |
set colorcolumn=80 | |
set background=dark | |
set number | |
set relativenumber | |
" spelling | |
set spell | |
set spelllang=en_au | |
" tab/indentation settings | |
set expandtab | |
set smartindent | |
set shiftwidth=2 | |
set softtabstop=2 | |
set tabstop=4 | |
" misc | |
set infercase | |
set shell=/bin/sh | |
" other gui/terminal fixes | |
if exists('neovim_dot_app') | |
" Neovim.app is paradoxically very slow with lazyredraw | |
set nolazyredraw | |
set noshowcmd | |
else | |
" map keys remapped in terminal | |
set t_F3=^[[25~ | |
map <F13> <S-CR> | |
map! <F13> <S-CR> | |
endif | |
" plugins | |
if has('nvim') | |
call g:plug#begin() | |
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' | |
Plug 'Valloric/YouCompleteMe', {'do': './install.py'} | |
Plug 'ervandew/supertab' | |
Plug 'benekastah/neomake' | |
Plug 'vim-airline/vim-airline' | |
Plug 'vim-airline/vim-airline-themes' | |
"Plug 'coot/CRDispatcher' | Plug 'coot/EnchantedVim' | |
Plug 'danro/rename.vim' | |
Plug 'bfredl/nvim-ipy' | |
Plug 'jcf/vim-latex' | |
Plug 'jalvesaq/Nvim-R' | |
Plug 'mhinz/vim-grepper' | |
Plug 'jmcantrell/vim-virtualenv' | |
Plug 'majutsushi/tagbar' | |
Plug 'mattn/webapi-vim' | Plug 'mattn/gist-vim' | |
Plug 'nathanaelkane/vim-indent-guides' | |
Plug 'Shougo/unite.vim' | |
Plug 'mbbill/undotree' | |
Plug 'tpope/vim-sensible' | |
Plug 'tpope/vim-fugitive' | |
Plug 'tpope/vim-repeat' | |
Plug 'tpope/vim-speeddating' | |
Plug 'tpope/vim-surround' | |
Plug 'tpope/vim-pathogen' | |
Plug 'vim-pandoc/vim-pandoc' | Plug 'vim-pandoc/vim-pandoc-syntax' | |
Plug 'vim-scripts/ingo-library' | Plug 'vim-scripts/AdvancedSorters' | |
Plug 'vim-scripts/restore_view.vim' | |
Plug 'vim-scripts/tabops' | |
Plug 'xolox/vim-misc' | Plug 'xolox/vim-session' | |
Plug 'sheerun/vim-polyglot' | |
Plug 'vim-scripts/SAS-Syntax' | |
Plug 'Glench/Vim-Jinja2-Syntax' | |
Plug 'ntpeters/vim-better-whitespace' | |
Plug 'luochen1990/rainbow' | |
Plug 'fatih/vim-go' | |
Plug 'chriskempson/base16-vim' | |
Plug 'takac/vim-hardtime' | |
Plug 'tfnico/vim-gradle' | |
Plug 'vim-scripts/HJKL' | |
call g:plug#end() | |
else | |
" share nvim storage | |
set directory=~/.local/share/nvim/swap | |
set undodir=~/.local/share/nvim/undo | |
set backupdir=.,~/.local/share/nvim/backup | |
set viewdir=~/.local/share/nvim/view | |
" regular vim - fall back to pathogen | |
set runtimepath+=~/.config/nvim/plugged/vim-pathogen | |
let g:pathogen_disabled = ['CRDispatcher', 'EnchantedVim', 'Nvim-R', 'nvim-ipy'] | |
if v:version <# '704' | |
let g:pathogen_disabled += ['vim-pandoc', 'vim-pandoc-syntax', 'YouCompleteMe', 'ultisnips'] | |
endif | |
execute pathogen#infect('plugged/{}') | |
endif | |
" colours | |
let g:base16colorspace=256 | |
colorscheme base16-chalk | |
" rainbow | |
let g:rainbow_active = 0 | |
let g:rainbow_conf = { | |
\ 'separately': { | |
\ 'rbrowser': 0, | |
\ 'tagbar': 0 | |
\ } | |
\ } | |
" vim-grepper | |
let g:grepper = { | |
\ 'tools': ['git', 'ag', 'grep'], | |
\ 'next_tool': '<leader>g', | |
\ 'open': 1, 'switch': 1, 'jump': 0, | |
\ } | |
command! -nargs=* -complete=file Ag Grepper! -tool ag -query <args> | |
nnoremap <leader>ag :Grepper! -tool ag -open -switch | |
nmap gs <plug>(GrepperOperator) | |
xmap gs <plug>(GrepperOperator) | |
" R plugin | |
let g:R_assign = 0 | |
let g:R_applescript = 1 | |
let g:R_openpdf = 0 | |
if g:R_applescript == 1 | |
let g:R_in_buffer = 0 | |
let g:R_args = [' '] | |
else | |
let g:R_in_buffer = 1 | |
let g:R_args = ['--silent', '--no-save'] | |
endif | |
" indent guides | |
let g:indent_guides_start_level = 2 | |
let g:indent_guides_guide_size = 1 | |
" session | |
let g:session_directory = '~/.local/share/nvim/session' | |
let g:session_autosave = 'yes' | |
let g:session_autoload = 'yes' | |
let g:session_autosave_periodic = 5 | |
" ipy | |
let g:nvim_ipy_perform_mappings = 0 | |
map <silent> <Leader>r <Plug>(IPy-Run) | |
map <silent> <Leader>? <Plug>(IPy-WordObjInfo) | |
map <silent> <C-Space> <Plug>(IPy-Complete) | |
map <silent> <F8> <Plug>(IPy-Interrupt) | |
" youcompleteme & supertab | |
let g:ycm_python_binary_path = '/usr/local/bin/python3' | |
let g:ycm_autoclose_preview_window_after_completion = 1 | |
let g:ycm_key_list_select_completion = ['<C-n>', '<Down>'] | |
let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>'] | |
let g:SuperTabDefaultCompletionType = '<C-n>' | |
inoremap <C-Space> <C-x><C-o> | |
" ultisnips | |
let g:UltiSnipsExpandTrigger = '<Tab>' | |
let g:UltiSnipsJumpForwardTrigger = '<Tab>' | |
let g:UltiSnipsJumpBackwardTrigger = '<S-Tab>' | |
let g:UltiSnipsEditSplit = 'vertical' | |
" automake | |
let g:neomake_python_pylama_maker = {'args': ['--ignore=E501']} | |
let g:neomake_python_enabled_makers = ['pylama'] | |
augroup neomaker | |
autocmd! | |
autocmd BufWritePost * Neomake | |
augroup END | |
" latexsuite | |
let g:tex_flavor = 'latex' | |
let g:Tex_DefaultTargetFormat = 'pdf' | |
let g:Tex_ViewRuleComplete_pdf = 'start SumatraPDF -reuse-instance "$*.pdf"' | |
let g:Tex_ViewRule_pdf = 'SumatraPDF -reuse-instance "$*.pdf"' | |
let g:Tex_CompileRule_pdf = 'pdflatex --synctex=-1 -src-specials -interaction=nonstopmode $*' | |
" undotree | |
nnoremap <F5> :UndotreeToggle<CR> | |
" gist | |
let g:gist_get_multiplefile = 1 | |
let g:gist_detect_filetype = 1 | |
" airline | |
let g:airline_powerline_fonts = 1 | |
let g:airline#extensions#branch#enabled = 1 | |
let g:airline#extensions#tagbar#enabled = 1 | |
let g:airline#extensions#virtualenv#enabled = 1 | |
let g:airline#extensions#whitespace#enabled = 1 | |
let g:airline#extensions#tabline#enabled = 1 | |
" enchanted vim | |
let g:VeryMagic = 0 | |
let g:VeryMagicSubstituteNormalise = 1 | |
let g:VeryMagicSubstitute = 1 | |
let g:VeryMagicGlobal = 1 | |
let g:VeryMagicVimGrep = 1 | |
let g:VeryMagicSearchArg = 1 | |
let g:VeryMagicFunction = 1 | |
let g:VeryMagicHelpgrep = 1 | |
let g:VeryMagicRange = 1 | |
let g:VeryMagicEscapeBackslashesInSearchArg = 1 | |
let g:SortEditArgs = 1 | |
nnoremap / /\v | |
nnoremap ? ?\v | |
vnoremap / /\v | |
vnoremap ? ?\v | |
" highlighting | |
highlight NonASCII ctermbg=124 guibg=red | |
augroup highlighting | |
autocmd! | |
autocmd Syntax * syntax match NonASCII /[^\x00-\xff]/ | |
augroup END | |
augroup no_highlighting | |
autocmd! | |
autocmd Syntax rbrowser syntax clear NonASCII | |
autocmd Syntax tagbar syntax clear NonASCII | |
augroup END | |
" misc key mappings | |
" folds | |
inoremap <F9> <C-O>za | |
nnoremap <F9> za | |
onoremap <F9> <C-C>za | |
vnoremap <F9> zf | |
" map Enter to insert lines in normal mode | |
map <CR> o<Esc> | |
map <S-CR> O<Esc> | |
" extra copy commands | |
map Y y$ | |
map \ "+y$ | |
" open files under cursor | |
map <F8> :vertical wincmd f<CR> | |
" save as sudo if file already open | |
cmap w!! w !sudo tee > /dev/null % | |
" break bad habits | |
let g:hardtime_default_on = 0 | |
let g:hardtime_ignore_buffer_patterns = ['__Tagbar__', 'undo.*'] | |
noremap <Up> <NOP> | |
noremap <Down> <NOP> | |
noremap <Left> <NOP> | |
noremap <Right> <NOP> | |
vnoremap <Up> <NOP> | |
vnoremap <Down> <NOP> | |
vnoremap <Left> <NOP> | |
vnoremap <Right> <NOP> | |
" filetypes | |
" python | |
augroup filetype_python | |
autocmd! | |
autocmd FileType python inoremap # X<BS># | |
augroup END | |
" go | |
augroup filetype_go | |
autocmd! | |
autocmd FileType go setlocal shiftwidth=4 | |
augroup END | |
" octave | |
augroup filetype_octave | |
autocmd! | |
autocmd Filetype octave | |
\ setlocal omnifunc=syntaxcomplete#Complete | | |
\ setlocal shiftwidth=2 | |
augroup END | |
" R | |
augroup filetype_r | |
autocmd! | |
autocmd Filetype r setlocal shiftwidth=2 | |
autocmd Filetype rbrowser setlocal nospell | |
augroup END | |
" functions | |
"" Remove all text except what matches the current search result | |
"" The opposite of :%s///g (which clears all instances of the current search). | |
function! s:ClearAllButMatches() | |
let l:old = getreg('z') | |
let l:buffer = join(getline(1, '$'), '\n') | |
let l:pattern = getreg('/') | |
call setreg('z', '') | |
call substitute(l:buffer, l:pattern, '\=setreg("Z", submatch(0), "l")', 'g') | |
%d _ | |
put z | |
0d _ | |
call setreg('z', l:old) | |
endfunction | |
command! ClearAllButMatches call s:ClearAllButMatches() | |
"" set +x on file | |
function! s:SetExecutableBit() | |
let l:fname = expand('%:p') | |
checktime | |
execute 'au FileChangedShell ' . l:fname . ' :echo' | |
silent !chmod a+x % | |
checktime | |
execute 'au! FileChangedShell ' . l:fname | |
endfunction | |
command! Xbit call s:SetExecutableBit() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment