diff --git a/vim-files/vim/ftplugin/python.vim b/vim-files/vim/ftplugin/python.vim new file mode 100644 index 0000000..e06e3d9 --- /dev/null +++ b/vim-files/vim/ftplugin/python.vim @@ -0,0 +1,77 @@ + +" Syntastic +let g:syntastic_python_checkers = ['pyflakes', 'pep8', 'pep257'] +let g:syntastic_python_pep8_args='--ignore=E501' + +""" Handy remaps +noremap b Oimport ipdb;ipdb.set_trace() + +setlocal ts=4 +setlocal sw=4 +setlocal expandtab + +" Don't use tabs in python files +autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4 + +function! RunTests(filename, test_path, debug) + let tmux_pane = substitute(system("tmux display-message -p '#S'"),'\n','','') + let tmux_pane_target = tmux_pane."_testing:1.0" + echo tmux_pane_target + + let command = "" + if l:tmux_pane == "checkout" + " checkout uses py.test (or uh it will) + if a:test_path != ' ' + let pytest_path = substitute(a:test_path, "\\.", "::", "") + let full_test_path = a:filename."::".l:pytest_path + else + let full_test_path = a:filename + endif + + if a:debug == 1 + let test_args = "-- -x --ipdb " + else + let test_args = '' + endif + + if l:full_test_path != "::" + let command = "silent !tmux send-keys -t ".tmux_pane_target." C-c ' tox ".test_args.full_test_path." -- --currency USD 2>/dev/null' Enter" + else + let command = "silent !tmux send-keys -t ".tmux_pane_target." C-c ' make test 2>/dev/null' Enter" + endif + else + " yelp-main uses testify + if a:test_path != ' ' + let full_test_path = a:filename." ".a:test_path + else + let full_test_path = a:filename + endif + + if a:debug == 1 + let test_args = "-d " + else + let test_args = '' + endif + + if l:full_test_path != " " + let command = "silent !tmux send-keys -t ".tmux_pane_target." C-c ' testify ".test_args.full_test_path."' Enter" + endif + endif + echo command + exec command + exec "redraw!" +endfun + +function! StoreTestPath(filename, lineno) + let g:t= a:filename + " trololol sorry hbai + let g:f = system("python ~hbai/point_at_test/point_at_test.py ".shellescape(a:filename)." ".shellescape(a:lineno)) + let g:f=substitute(strtrans(g:f),'\^@',' ','g') + echo g:t g:f +endfun + +map s :call StoreTestPath(expand("%"), line(".")) +map T :w\|:call StoreTestPath(expand("%"), line("."))\|:call RunTests(g:t, g:f, 0) +map t :w\|:call RunTests(g:t, g:f, 0) +map dt :w\|:call RunTests(g:t, g:f, 1) +map m :call RunTests("", "", 0) diff --git a/vim-files/vim/ftplugin/ruby.vim b/vim-files/vim/ftplugin/ruby.vim new file mode 100644 index 0000000..761d928 --- /dev/null +++ b/vim-files/vim/ftplugin/ruby.vim @@ -0,0 +1,7 @@ +Plugin 'tpope/vim-rails' +Plugin 'tpope/vim-rake' + +" vim-rspec mappings +nnoremap t :call RunCurrentSpecFile() +nnoremap s :call RunNearestSpec() +nnoremap l :call RunLastSpec() diff --git a/vim-files/vimrc b/vim-files/vimrc index 20af6fe..4b03454 100644 --- a/vim-files/vimrc +++ b/vim-files/vimrc @@ -10,38 +10,33 @@ call vundle#rc() "call vundle#rc(path) " let Vundle manage Vundle, required -Bundle 'gmarik/vundle' +Plugin 'gmarik/vundle' - -Bundle 'Lokaltog/vim-easymotion' -Bundle 'tpope/vim-sensible' -Bundle 'tpope/vim-eunuch' -Bundle 'tpope/vim-fugitive' -Bundle 'scrooloose/nerdtree' -Bundle 'tomtom/tcomment_vim' -Bundle 'tpope/vim-characterize' -Bundle 'jonathanfilip/vim-lucius' -Bundle 'nanotech/jellybeans.vim' -Bundle 'majutsushi/tagbar' -Bundle 'bling/vim-bufferline' -Bundle 'sjl/gundo.vim' -Bundle 'SirVer/ultisnips' -Bundle 'kien/ctrlp.vim' -Bundle 'terryma/vim-multiple-cursors' -Bundle 'myusuf3/numbers.vim' -Bundle 'mhinz/vim-signify' -Bundle 'nathanaelkane/vim-indent-guides' -Bundle 'tpope/vim-surround' -Bundle 'tpope/vim-rails' -Bundle 'tpope/vim-rake' -Bundle 'scrooloose/syntastic' -Bundle 'Valloric/YouCompleteMe' -Bundle 'christoomey/vim-tmux-navigator' - -filetype plugin indent on " required -""" end vundle - -"""" PLUGIN SETTINGS +Plugin 'tpope/vim-endwise' +Plugin 'danro/rename.vim' +Plugin 'pbrisbin/vim-mkdir' +Plugin 'Lokaltog/vim-easymotion' +Plugin 'tpope/vim-sensible' +Plugin 'tpope/vim-eunuch' +Plugin 'tpope/vim-fugitive' +Plugin 'scrooloose/nerdtree' +Plugin 'tomtom/tcomment_vim' +Plugin 'tpope/vim-characterize' +Plugin 'jonathanfilip/vim-lucius' +Plugin 'nanotech/jellybeans.vim' +Plugin 'majutsushi/tagbar' +Plugin 'bling/vim-bufferline' +Plugin 'sjl/gundo.vim' +Plugin 'SirVer/ultisnips' +Plugin 'kien/ctrlp.vim' +Plugin 'terryma/vim-multiple-cursors' +Plugin 'myusuf3/numbers.vim' +Plugin 'mhinz/vim-signify' +Plugin 'nathanaelkane/vim-indent-guides' +Plugin 'tpope/vim-surround' +Plugin 'scrooloose/syntastic' +Plugin 'christoomey/vim-tmux-navigator' +Plugin 'Valloric/YouCompleteMe' " YouCompleteMe nnoremap K :YcmCompleter GoTo @@ -49,9 +44,10 @@ nnoremap ˚ :YcmCompleter GoToDeclaration let g:ycm_goto_buffer_command = 'horizontal-split' let g:ycm_autoclose_preview_window_after_insertion = 1 -" Syntastic -let g:syntastic_python_checkers = ['pyflakes', 'pep8', 'pep257'] -let g:syntastic_python_pep8_args='--ignore=E501' +filetype plugin indent on " required +""" end vundle + +"""" PLUGIN SETTINGS " Powerline! set rtp+=~/dotfiles/misc-files/powerline/powerline/bindings/vim @@ -63,6 +59,17 @@ map n (easymotion-next) map N (easymotion-prev) let g:EasyMotion_landing_highlight = 1 """ CtrlP +" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher +if executable('ag') + " Use Ag over Grep + set grepprg=ag\ --nogroup\ --nocolor + + " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore + let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' + + " ag is fast enough that CtrlP doesn't need to cache + let g:ctrlp_use_caching = 0 +endif """ Gundo map u :GundoToggle @@ -116,7 +123,13 @@ set matchpairs+=<:> set list set listchars=tab:>-,trail:-,extends:>,precedes:<,nbsp:+,eol:$ -set ts=4 +set ts=2 +set shiftwidth=2 +set expandtab + +" Open new split panes to right and bottom, which feels more natural +set splitbelow +set splitright " Use the OS clipboard by default (on versions compiled with `+clipboard`) set clipboard=unnamed @@ -157,13 +170,16 @@ endfunction """ Handy remaps noremap ; : inoremap jj -nnoremap :TlistToggle map V :source ~/.vimrc:filetype detect:exe ":echo 'vimrc reloaded'" "nnoremap d :NERDTreeToggle map \q :q map \w :w noremap Q -noremap b Oimport ipdb;ipdb.set_trace() +" Quicker window movement +nnoremap j +nnoremap k +nnoremap h +nnoremap l " Don’t reset cursor to start of line when moving around. set nostartofline @@ -175,9 +191,6 @@ set mouse=a """ smart path set path=.,,** -" -" Don't use tabs in python files -autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4 command! -complete=shellcmd -nargs=+ Shell call s:RunShellCommand() function! s:RunShellCommand(cmdline) @@ -244,65 +257,7 @@ function! MoveToNextTab() exe "b".l:cur_buf endfunc -function! RunTests(filename, test_path, debug) - let tmux_pane = substitute(system("tmux display-message -p '#S'"),'\n','','') - let tmux_pane_target = tmux_pane."_testing:1.0" - echo tmux_pane_target - - let command = "" - if l:tmux_pane == "checkout" - " checkout uses py.test (or uh it will) - if a:test_path != ' ' - let pytest_path = substitute(a:test_path, "\\.", "::", "") - let full_test_path = a:filename."::".l:pytest_path - else - let full_test_path = a:filename - endif - - if a:debug == 1 - let test_args = "-- -x --ipdb " - else - let test_args = '' - endif - - if l:full_test_path != "::" - let command = "silent !tmux send-keys -t ".tmux_pane_target." C-c ' tox ".test_args.full_test_path." -- --currency USD 2>/dev/null' Enter" - else - let command = "silent !tmux send-keys -t ".tmux_pane_target." C-c ' make test 2>/dev/null' Enter" - endif - else - " yelp-main uses testify - if a:test_path != ' ' - let full_test_path = a:filename." ".a:test_path - else - let full_test_path = a:filename - endif - - if a:debug == 1 - let test_args = "-d " - else - let test_args = '' - endif - - if l:full_test_path != " " - let command = "silent !tmux send-keys -t ".tmux_pane_target." C-c ' testify ".test_args.full_test_path."' Enter" - endif - endif - echo command - exec command - exec "redraw!" -endfun - -function! StoreTestPath(filename, lineno) - let g:t= a:filename - " trololol sorry hbai - let g:f = system("python ~hbai/point_at_test/point_at_test.py ".shellescape(a:filename)." ".shellescape(a:lineno)) - let g:f=substitute(strtrans(g:f),'\^@',' ','g') - echo g:t g:f -endfun - -map s :call StoreTestPath(expand("%"), line(".")) -map T :w\|:call StoreTestPath(expand("%"), line("."))\|:call RunTests(g:t, g:f, 0) -map t :w\|:call RunTests(g:t, g:f, 0) -map dt :w\|:call RunTests(g:t, g:f, 1) -map m :call RunTests("", "", 0) +" Local overrides? +if filereadable($HOME . "/.vimrc.local") + source ~/.vimrc.local +endif