diff options
author | Aspen Smith <grfn@gws.fyi> | 2024-02-12T03·00-0500 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-02-14T19·37+0000 |
commit | 82ecd61f5c699cf3af6c4eadf47a1c52b1d696c6 (patch) | |
tree | 429c5e078528000591742ec3211bc768ae913a78 /users/grfn/system/home/modules/vimrc | |
parent | 0ba476a4266015f278f18d74094299de74a5a111 (diff) |
chore(users): grfn -> aspen r/7511
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
Diffstat (limited to 'users/grfn/system/home/modules/vimrc')
-rw-r--r-- | users/grfn/system/home/modules/vimrc | 1121 |
1 files changed, 0 insertions, 1121 deletions
diff --git a/users/grfn/system/home/modules/vimrc b/users/grfn/system/home/modules/vimrc deleted file mode 100644 index 3e33b5e2bee7..000000000000 --- a/users/grfn/system/home/modules/vimrc +++ /dev/null @@ -1,1121 +0,0 @@ -" vim:set fdm=marker fmr={{{,}}} ts=2 sts=2 sw=2 expandtab: - - -" Basic Options {{{ -set nocompatible -set modeline -set modelines=10 -syntax enable -filetype plugin indent on -set ruler -set showcmd -set number -set incsearch -set smartcase -set ignorecase -set scrolloff=10 -set tabstop=4 -set shiftwidth=4 -set softtabstop=4 -set nosmartindent -set expandtab -set noerrorbells visualbell t_vb= -set laststatus=2 -set hidden -let mapleader = ',' -let maplocalleader = '\' -set undofile -" set undodir=~/.vim/undo -set wildignore=*.pyc,*.o,.git -set clipboard=unnamedplus -" set backupdir=$HOME/.vim/backup -" set directory=$HOME/.vim/tmp -set foldmarker={{{,}}} -set colorcolumn=+1 -set concealcursor= -set formatoptions+=j -set wildmenu -set wildmode=longest,list:full -set noincsearch -" }}} - -" GUI options {{{ -set go-=m -set go-=T -set go-=r -set go-=L -set go-=e -set guifont=Meslo\ LG\ S\ DZ\ 9 -" }}} - -" Colors {{{ -" set t_Co=256 - -fu! ReverseBackground() - if &bg=="light" - se bg=dark - else - se bg=light - endif -endf -com! BgToggle call ReverseBackground() -nm <F12> :BgToggle<CR> - -set background=light -colorscheme solarized -" }}} - -" --------------------------------------------------------------------------- - -" CtrlP {{{ -let g:ctrlp_custom_ignore = { - \ 'dir': '(node_modules|target)' - \ } -let g:ctrlp_max_files = 0 -let g:ctrlp_max_depth = 100 -" }}} - -" YouCompleteMe {{{ -let g:ycm_semantic_triggers = { - \ 'c' : ['->', '.'], - \ 'objc' : ['->', '.'], - \ 'ocaml' : ['.', '#'], - \ 'cpp,objcpp' : ['->', '.', '::'], - \ 'perl' : ['->'], - \ 'php' : ['->', '::'], - \ 'cs,java,javascript,d,python,perl6,scala,vb,elixir,go' : ['.'], - \ 'vim' : ['re![_a-zA-Z]+[_\w]*\.'], - \ 'lua' : ['.', ':'], - \ 'erlang' : [':'], - \ 'clojure' : [], - \ 'haskell' : ['re!.*', '.', ' ', '('] - \ } - " \ 'haskell' : ['.', '(', ' '] - " \ 'ruby' : ['.', '::'], - " \ 'clojure' : ['(', '.', '/', '['] -" }}} - -" Neocomplete {{{ -if !has('nvim') - " 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 - - " Enable heavy omni completion. - if !exists('g:neocomplete#sources#omni#input_patterns') - let g:neocomplete#sources#omni#input_patterns = {} - endif -endif -" }}} - -" Deoplete {{{ -if has('nvim') - let g:deoplete#enable_at_startup = 1 - - 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>" - inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<TAB>" -endif -" }}} - -" Neovim Terminal mode {{{ -if has('nvim') - tnoremap <Esc> <C-\><C-n> - nnoremap \\ :tabedit term://zsh<CR> - nnoremap q\ :call <SID>OpenRepl()<CR> - - if !exists('g:repl_size') - let g:repl_size=9 - endif - - function! s:OpenRepl() " {{{ - " Check if buffer exists and is open - if exists('s:repl_bufname') && bufexists(s:repl_bufname) && bufwinnr(s:repl_bufname) >=? 0 - " If so, just switch to it - execute bufwinnr(s:repl_bufname) . 'wincmd' 'w' - norm i - return - endif - - if !exists('b:console') - let b:console=$SHELL - endif - - let l:console_cmd = b:console - - execute 'bot' g:repl_size . 'new' - set winfixheight nobuflisted - call termopen(l:console_cmd) - let s:repl_bufname = bufname('%') - norm i - endfunction " }}} -endif -" }}} - -" Tagbar options {{{ -let g:tagbar_autoclose = 1 -let g:tagbar_autofocus = 1 -let g:tagbar_compact = 1 -" }}} - -" delimitMate options {{{ -let g:delimitMate_expand_cr = 1 -" }}} - -" UltiSnips options {{{ -let g:UltiSnipsExpandTrigger = '<c-j>' - "g:UltiSnipsJumpForwardTrigger <c-j> - "g:UltiSnipsJumpBackwardTrigger <c-k> -" }}} - -" VDebug Options {{{ -let g:vdebug_options = {'server': '192.168.56.1'} -" }}} - -" Statusline {{{ -let g:airline_powerline_fonts=1 - -if !exists('g:airline_symbols') - let g:airline_symbols = {} -endif -let g:airline_symbols.space = "\ua0" - -let g:airline#extensions#tagbar#flags = 'f' -let g:airline#extensions#tabline#enabled = 1 -let g:airline#extensions#tabline#show_buffers = 0 -let g:airline#extensions#tabline#show_tabs = 1 -let g:airline#extensions#tabline#tab_min_count = 2 -let g:airline#extensions#tmuxline#enabled = 0 - -let g:tmuxline_theme = 'airline' -let g:tmuxline_preset = 'full' - -"set statusline= -"set statusline+=%2*[%n%H%M%R%W]%*\ " flags and buf no -"set statusline+=%-40f%<\ " path -"set statusline+=%=%40{fugitive#statusline()}\ " Vim status -"set statusline+=%1*%y%*%*\ " file type -"set statusline+=%10((%l,%c)%)\ " line and column -"set statusline+=%P " percentage of file -" }}} - -" Code review mode {{{ -fun! GetFontName() - return substitute(&guifont, '^\(.\{-}\)[0-9]*$', '\1', '') -endfun - -fun! <SID>CodeReviewMode() - let &guifont = GetFontName() . ' 15' -endfun -com! CodeReviewMode call <SID>CodeReviewMode() -" }}} - -" Syntastic {{{ -let g:syntastic_enable_signs = 0 - -" Python {{{ -let g:syntastic_python_checkers = ['flake8'] -let g:syntastic_python_flake8_post_args = "--ignore=E101,E223,E224,E301,E302,E303,E501,E701,W,F401,E111,E261" - -" }}} -" Javascript {{{ -let g:syntastic_javascript_checkers = ['eslint'] -let g:flow#autoclose = 1 -let g:flow#enable = 1 - -" augroup syntastic_javascript_jsx -" autocmd! -" autocmd BufReadPre,BufNewFile *.js -" autocmd BufReadPre,BufNewFile *.jsx -" \ let g:syntastic_javascript_checkers = ['jsxhint'] -" augroup END - -" }}} -" Haml {{{ -let g:syntastic_haml_checkers = ['haml_lint'] - -" }}} -" Html {{{ -let g:syntastic_html_checkers = [] - -" }}} -" Ruby {{{ -let g:syntastic_ruby_checkers = ['rubocop'] -" }}} -" SASS/SCSS {{{ -let g:syntastic_scss_checkers = ['scss_lint'] -" }}} -" Haskell {{{ -" let g:syntastic_haskell_checkers = ['ghc-mod'] -" }}} -" Elixir {{{ -let g:syntastic_elixir_checkers = ['elixir'] -let g:syntastic_enable_elixir_checker = 1 -" }}} -" }}} - -" Bufferline {{{ -let g:bufferline_echo=0 -" }}} - -" Eclim {{{ -let g:EclimCompletionMethod = 'omnifunc' -augroup eclim - au! - au FileType java call <SID>JavaSetup() - au FileType java set textwidth=120 -augroup END - -function! s:JavaSetup() abort - noremap <C-I> :JavaImport<CR> - nnoremap K :JavaDocPreview<CR> - nnoremap ]d :JavaSearchContext<CR> - nnoremap [d :JavaSearchContext<CR> - nnoremap g<CR> :JUnit<CR> - nnoremap g\ :Mvn test<CR> -endfunction -" }}} - -" Signify options {{{ -let g:signify_mapping_next_hunk = ']h' -let g:signify_mapping_prev_hunk = '[h' -let g:signify_vcs_list = ['git'] -let g:signify_sign_change = '~' -let g:signify_sign_delete = '-' -" }}} - -" Simplenote {{{ -let g:SimplenoteFiletype = 'markdown' -let g:SimplenoteSortOrder = 'pinned,modifydate,tagged,createdate' -let g:SimplenoteVertical = 1 - -nnoremap <Leader>nn :Simplenote -n<CR> -nnoremap <Leader>nl :Simplenote -l<CR> -nnoremap <Leader>nw :Simplenote -l work<CR> -nnoremap <Leader>nt :Simplenote -t<CR> -" }}} - -" Emmet {{{ -" Expand abbreviation -let g:user_emmet_leader_key = '<C-y>' -" }}} - -" Startify {{{ -let g:startify_bookmarks=[ '~/.vimrc', '~/.zshrc' ] -" }}} - -" Abolish {{{ -let g:abolish_save_file = expand('~/.vim/after/plugin/abolish.vim') -" }}} - -" Rails projections {{{ - -if !exists('g:rails_projections') - let g:rails_projections = {} -endif - -call extend(g:rails_projections, { - \ "config/routes.rb": { "command": "routes" }, - \ "config/structure.sql": { "command": "structure" } - \ }, 'keep') - -if !exists('g:rails_gem_projections') - let g:rails_gem_projections = {} -endif - -call extend(g:rails_gem_projections, { - \ "active_model_serializers": { - \ "app/serializers/*_serializer.rb": { - \ "command": "serializer", - \ "template": "class %SSerializer < ActiveModel::Serializer\nend", - \ "affinity": "model"}}, - \ "react-rails": { - \ "app/assets/javascripts/components/*.jsx": { - \ "command": "component", - \ "template": "var %S = window.%S = React.createClass({\n render: function() {\n }\n});", - \ "alternate": "spec/javascripts/components/%s_spec.jsx" }, - \ "spec/javascripts/components/*_spec.jsx": { - \ "alternate": "app/assets/javascripts/components/{}.jsx" }}, - \ "rspec": { - \ "spec/**/support/*.rb": { - \ "command": "support"}}, - \ "cucumber": { - \ "features/*.feature": { - \ "command": "feature", - \ "template": "Feature: %h"}, - \ "features/support/*.rb": { - \ "command": "support"}, - \ "features/support/env.rb": { - \ "command": "support"}, - \ "features/step_definitions/*_steps.rb": { - \ "command": "steps"}}, - \ "carrierwave": { - \ "app/uploaders/*_uploader.rb": { - \ "command": "uploader", - \ "template": "class %SUploader < CarrierWave::Uploader::Base\nend"}}, - \ "draper": { - \ "app/decorators/*_decorator.rb": { - \ "command": "decorator", - \ "affinity": "model", - \ "template": "class %SDecorator < Draper::Decorator\nend"}}, - \ "fabrication": { - \ "spec/fabricators/*_fabricator.rb": { - \ "command": ["fabricator", "factory"], - \ "alternate": "app/models/%s.rb", - \ "related": "db/schema.rb#%p", - \ "test": "spec/models/%s_spec.rb", - \ "template": "Fabricator :%s do\nend", - \ "affinity": "model"}}, - \ "factory_girl": { - \ "spec/factories/*.rb": { - \ "command": "factory", - \ "alternate": "app/models/%i.rb", - \ "related": "db/structure.sql#%s", - \ "test": "spec/models/%s_spec.rb", - \ "template": "FactoryGirl.define do\n factory :%i do\n end\nend", - \ "affinity": "model"}, - \ "spec/factories.rb": { - \ "command": "factory"}, - \ "test/factories.rb": { - \ "command": "factory"}} - \ }, 'keep') -" }}} - -" Other projections {{{ -let g:projectionist_heuristics = { - \ "config.ru&docker-compose.yml&app/&config/&OWNERS": { - \ "app/jobs/*.rb": { - \ "type": "job", - \ "alternate": "spec/jobs/{}_spec.rb" - \ }, - \ "app/models/*.rb": { - \ "type": "model", - \ "alternate": "spec/models/{}_spec.rb" - \ }, - \ "app/resources/*_resource.rb": { - \ "type": "resource", - \ "alternate": "spec/resources/{}_resource_spec.rb" - \ }, - \ "config/*.yml": { - \ "type": "config" - \ }, - \ "spec/*_spec.rb": { - \ "type": "spec", - \ "alternate": "app/{}.rb" - \ }, - \ "spec/factories/*.rb": { - \ "type": "factory", - \ } - \ }, - \ "svc-gateway.cabal": { - \ "src/*.hs": { - \ "type": "src", - \ "alternate": "test/{}Spec.hs" - \ }, - \ "test/*Spec.hs": { - \ "type": "spec", - \ "alternate": "src/{}.hs", - \ "template": [ - \ "module Gateway.Resource.HierarchySpec (main, spec) where", - \ "", - \ "import Prelude", - \ "import Test.Hspec", - \ "import Data.Aeson", - \ "", - \ "import Gateway.Resource.Hierarchy", - \ "", - \ "main :: IO ()", - \ "main = hspec spec", - \ "", - \ "spec :: Spec", - \ "spec = do", - \ " describe \"something\" $ undefined" - \ ] - \ }, - \ "svc-gateway.cabal": { - \ "type": "cabal" - \ } - \ }, - \ "package.json&.flowconfig": { - \ "src/*.*": { - \ "type": "src", - \ "alternate": "test/{}_spec.js" - \ } - \ }, - \ "pom.xml&src/main/clj/|src/main/cljs": { - \ "*": { - \ "start": "USE_NREPL=1 bin/run -m elephant.dev-system" , - \ "connect": "nrepl://localhost:5554", - \ "piggieback": "(figwheel-sidecar.repl-api/repl-env)" - \ }, - \ "pom.xml": { "type": "pom" }, - \ "src/main/clj/*.clj": { - \ "alternate": "src/test/clj/{}_test.clj", - \ "template": ["(ns {dot|hyphenate})"] - \ }, - \ "src/test/clj/*_test.clj": { - \ "alternate": "src/main/clj/{}.clj", - \ "dispatch": ":RunTests {dot|hyphenate}-test", - \ "template": ["(ns {dot|hyphenate}-test", - \ " (:require [clojure.test :refer :all]))"] - \ }, - \ "src/main/cljs/*.cljs": { - \ "alternate": "src/test/cljs/{}_test.cljs" - \ }, - \ "src/main/cljs/*_test.cljs": { - \ "alternate": "src/main/cljs/{}.cljs", - \ "dispatch": ":RunTests {dot|hyphenate}-test" - \ }, - \ "src/main/clj/*.cljc": { - \ "alternate": "src/test/clj/{}_test.cljc" - \ }, - \ "src/main/clj/*_test.cljc": { - \ "alternate": "src/test/clj/{}.cljc", - \ "dispatch": ":RunTests {dot|hyphenate}-test" - \ } - \ }} -" }}} - -" AutoPairs {{{ -let g:AutoPairsCenterLine = 0 -" }}} - -" Filetypes {{{ - -" Python {{{ -aug Python - au! - au FileType python set tabstop=4 shiftwidth=4 softtabstop=4 expandtab -aug END -let g:python_highlight_all=1 -" }}} - -" PHP {{{ -aug PHP - au! - "au FileType php setlocal fdm=marker fmr={{{,}}} -aug END " }}} - -" Mail {{{ -aug Mail - au FileType mail setlocal spell -aug END " }}} - -" Haskell {{{ -let g:haskell_conceal_wide = 1 -let g:haskellmode_completion_ghc = 0 -let g:necoghc_enable_detailed_browse = 1 - -augroup Haskell - autocmd! - autocmd FileType haskell setlocal textwidth=110 shiftwidth=2 - autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc - autocmd FileType haskell call <SID>HaskellSetup() - autocmd FileType haskell setlocal keywordprg=hoogle\ -cie -augroup END - -function! s:HaskellSetup() - set sw=4 - " compiler cabal - " let b:start='cabal run' - " let b:console='cabal repl' - " let b:dispatch='cabal test' - compiler stack - let b:start='stack run' - let b:console='stack ghci' - let b:dispatch='stack test' - nnoremap <buffer> gy :HdevtoolsType<CR> - nnoremap <buffer> yu :HdevtoolsClear<CR> -endfunction -" }}} - -" Ruby {{{ - -function! s:RSpecSyntax() - syn keyword rspecMethod describe context it its specify shared_context - \ shared_examples shared_examples_for shared_context include_examples - \ include_context it_should_behave_like it_behaves_like before after - \ around fixtures controller_name helper_name scenario feature - \ background given described_class - syn match rspecMethod '\<let\>!\=' - syn match rspecMethod '\<subject\>!\=' - syn keyword rspecMethod violated pending expect expect_any_instance_of allow - \ allow_any_instance_of double instance_double mock mock_model - \ stub_model xit - syn match rspecMethod '\.\@<!\<stub\>!\@!' - - call s:RSpecHiDefaults() -endfunction - -function! s:RSpecHiDefaults() - hi def link rspecMethod rubyFunction -endfunction - -augroup Ruby - au! - " au FileType ruby let b:surround_114 = "\\(module|class,def,if,unless,case,while,until,begin,do) \r end" - " au FileType ruby set fdm=syntax - au FileType ruby set tw=110 - au FileType ruby set omnifunc= - au FileType ruby nnoremap <buffer> gy orequire 'pry'; binding.pry<ESC>^ - au FileType ruby nnoremap <buffer> gY Orequire 'pry'; binding.pry<ESC>^ - au FileType ruby nnoremap <buffer> yu :g/require 'pry'; binding.pry/d<CR> - au BufNewFile,BufRead *_spec.rb call <SID>RSpecSyntax() -augroup END - -let ruby_operators = 1 -let ruby_space_errors = 1 - -let g:rubycomplete_rails = 1 -command! -range ConvertHashSyntax <line1>,<line2>s/:(\S{-})(\s{-})=> /\1:\2/ -" }}} - -" Clojure {{{ - -aug Clojure - au! - autocmd FileType clojure nnoremap <C-S> :Slamhound<CR> - autocmd FileType clojure nnoremap <silent> gr :w <bar> Require <bar> e<CR> - let g:clojure_align_multiline_strings = 1 - let g:clojure_fuzzy_indent_patterns = - \ ['^with', '^def', '^let', '^fact'] - let g:clojure_special_indent_words = - \ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn,html' - - autocmd FileType clojure setlocal textwidth=80 - autocmd FileType clojure setlocal lispwords+=GET,POST,PATCH,PUT,DELETE | - \ setlocal lispwords+=context,select - autocmd BufNewFile,BufReadPost *.cljx setfiletype clojure - autocmd BufNewFile,BufReadPost *.cljx setlocal omnifunc= - autocmd BufNewFile,BufReadPost *.cljs setlocal omnifunc= - autocmd FileType clojure call <SID>TangentInit() - autocmd FileType clojure call <SID>sexp_mappings() - autocmd BufRead *.cljc ClojureHighlightReferences - autocmd FileType clojure let b:AutoPairs = { - \ '"': '"', - \ '{': '}', - \ '(': ')', - \ '[': ']'} - " Don't auto-pair quote reader macros - " \'`': '`', - " \ '''': '''', - - autocmd User ProjectionistActivate call s:projectionist_connect() - - function! s:projectionist_connect() abort - let connected = !empty(fireplace#path()) - if !connected - for [root, value] in projectionist#query('connect') - try - silent execute "FireplaceConnect" value root - let connected = 1 - break - catch /.*Connection refused.*/ - endtry - endfor - endif - - " if connected && exists(':Piggieback') - " for [root, value] in projectionist#query('piggieback') - " silent execute "Piggieback" value - " break - " endfor - " endif - endfunction - - " autocmd BufNewFile,BufReadPost *.cljx setlocal omnifunc= - " autocmd BufNewFile,BufReadPost *.cljs setlocal omnifunc= - - autocmd FileType clojure let b:console='lein repl' - autocmd FileType clojure call <SID>ClojureMaps() - - function! s:ClojureMaps() abort - nnoremap <silent> <buffer> [m :call search('^(def', 'Wzb')<CR> - nnoremap <silent> <buffer> ]m :call search('^(def', 'Wz')<CR> - endfunction - - command! Scratch call <SID>OpenScratch() - autocmd FileType clojure nnoremap <buffer> \s :Scratch<CR> - - let g:scratch_buffer_name = 'SCRATCH' - - function! s:OpenScratch() - if bufwinnr(g:scratch_buffer_name) > 0 - execute bufwinnr(g:scratch_buffer_name) . 'wincmd' 'w' - return - endif - - vsplit SCRATCH - set buftype=nofile - set filetype=clojure - let b:scratch = 1 - endfunction -aug END - -function! s:sexp_mappings() abort - if !exists('g:sexp_loaded') - return - endif - - nmap <buffer> cfo <Plug>(sexp_raise_list) - nmap <buffer> cfO <Plug>(sexp_raise_element) - nmap <buffer> cfe <Plug>(sexp_raise_element) -endfunction - -function! s:TangentInit() abort - set textwidth=80 - command! TReset call fireplace#session_eval('(user/reset)') - command! TGo call fireplace#session_eval('(user/go)') - command! TMigrate call fireplace#session_eval('(user/migrate)') - command! TRollback call fireplace#session_eval('(user/rollback)') - nnoremap g\ :TReset<CR> -endfunction - -" }}} - -" Go {{{ - -let g:go_highlight_functions = 1 -let g:go_highlight_methods = 1 -let g:go_highlight_structs = 1 -let g:go_highlight_operators = 1 -let g:go_highlight_build_constraints = 1 - -augroup Go - autocmd! - autocmd FileType go setlocal omnifunc=go#complete#Complete - autocmd FileType go setlocal foldmethod=syntax - autocmd FileType go setlocal foldlevel=100 - autocmd FileType go nnoremap <buffer> <F9> :GoTest<CR> - autocmd FileType go inoremap <buffer> <F9> <ESC>:GoTest<CR>i -augroup END - -" }}} - -" RAML {{{ - -function! s:buffer_syntax() " {{{ - syn keyword ramlRAML RAML contained - syn match ramlVersionString '^#%RAML \d\.\d' contains=ramlRAML -endfunction " }}} - -augroup RAML - autocmd! - autocmd BufRead,BufNewFile *.raml set filetype=yaml - autocmd BufRead,BufNewFile *.raml call s:buffer_syntax() -augroup END - -hi def link ramlVersionString Special -hi def link ramlRAML Error -" }}} - -" Mustache/Handlebars {{{ -let g:mustache_abbreviations = 1 -" }}} - -" Netrw {{{ -augroup netrw - autocmd! - autocmd FileType netrw nnoremap <buffer> Q :Rexplore<CR> - - " Hee hee, oil and vinegar - function! s:setup_oil() abort - nnoremap <buffer> q <C-6> - xnoremap <buffer> q <C-6> - endfunction -augroup END -" }}} -" }}} - -" Remove trailing whitespace {{{ -fun! <SID>StripTrailingWhitespaces() - let l = line(".") - let c = col(".") - %s/\s\+$//e - call cursor(l, c) -endfun - -augroup striptrailingwhitespaces " {{{ -autocmd FileType c,cpp,java,php,ruby,python,sql,javascript,sh,jst,less,haskell,haml,coffee,scss,clojure,objc,elixir,yaml,json,eruby - \ autocmd BufWritePre <buffer> :call <SID>StripTrailingWhitespaces() -augroup END " }}} - -" }}} - -" Goyo {{{ -let g:limelight_conceal_ctermfg = "10" -let g:limelight_conceal_guifg = "#586e75" -autocmd! User GoyoEnter Limelight -autocmd! User GoyoLeave Limelight! -" }}} - -"----------------------------------------------------------------------------- - -" Commands {{{ - -" Edit temporary SQL files {{{ -let s:curr_sql = 0 -fun! <SID>EditSqlTempFile() - let l:fname = '/tmp/q' . s:curr_sql . '.sql' - execute 'edit' l:fname - let s:curr_sql = s:curr_sql + 1 -endfun -com! EditSqlTempFile call <SID>EditSqlTempFile() -" }}} - -" Double Indentation -command! -range DoubleIndentation <line1>,<line2>s/^\(\s.\{-}\)\(\S\)/\1\1\2/ - -" Quick-and-dirty fix capitalization of sql files -command! -range FixSqlCapitalization <line1>,<line2>v/\v(^\s*--.*$)|(TG_)/norm guu - -" VimPipe Commands {{{ -" let g:sql_type_default = 'pgsql' -command! SqlLive let b:vimpipe_command="vagrant ssh -c '~/mysql'" -command! SqlRails let b:vimpipe_command="bin/rails dbconsole" -command! SqlHeroku let b:vimpipe_command="heroku pg:psql" -command! SqlEntities let b:vimpipe_command="psql -h 127.1 entities nomi" -command! SqlUsers let b:vimpipe_command="psql -h 127.1 users nomi" -command! SqlTangent let b:vimpipe_command="psql -h local.docker tangent super" -" }}} - -" Git commands {{{ -command! -nargs=* Gpf Gpush -f <args> -command! -nargs=* Gcv Gcommit --verbose <args> -" }}} - -" Focus dispatch to only the last failures -command! -nargs=* FocusFailures FocusDispatch rspec --only-failures <args> - -" }}} - -" Autocommands {{{ - -augroup fugitive " {{{ - au! - autocmd BufNewFile,BufRead fugitive://* set bufhidden=delete -augroup END " }}} - -augroup omni " {{{ - au! - " autocmd FileType javascript setlocal omnifunc=tern#Complete - "autocmd FileType python setlocal omnifunc=pythoncomplete#Complete - autocmd FileType php setlocal omnifunc= -augroup END " }}} - -augroup sql " {{{ - au! - autocmd FileType sql let b:vimpipe_command="psql -h 127.0.0.1 landlordsny_development landlordsny" - autocmd FileType sql let b:vimpipe_filetype="postgresql" - autocmd FileType sql set syntax=postgresql - autocmd FileType postgresql set nowrap - autocmd BufNewFile,BufReadPost *.sql set syntax=pgsql -augroup END " }}} - -augroup markdown " {{{ - au! - autocmd FileType markdown let b:vimpipe_command='markdown' - autocmd FileType markdown let b:vimpipe_filetype='html' - autocmd FileType markdown set tw=80 -augroup END " }}} - -augroup typescript " {{{ - au! - autocmd FileType typescript let b:vimpipe_command='tsc' - autocmd FileType typescript let b:vimpipe_filetype='javascript' - autocmd FileType typescript TSSstarthere - autocmd FileType typescript nnoremap <buffer> gd :TSSdef<CR> -augroup END " }}} - -augroup jsx " {{{ - au! - " autocmd FileType jsx set syntax=javascript - autocmd FileType javascript set filetype=javascript.jsx -augroup END " }}} - -augroup nicefoldmethod " {{{ - au! - " Don't screw up folds when inserting text that might affect them, until - " leaving insert mode. Foldmethod is local to the window. Protect against - " screwing up folding when switching between windows. - autocmd InsertEnter * - \ if !exists('w:last_fdm') | - \ let w:last_fdm=&foldmethod | - \ setlocal foldmethod=manual | - \ endif - autocmd InsertLeave,WinLeave * - \ if exists('w:last_fdm') | - \ let &l:foldmethod=w:last_fdm | - \ unlet w:last_fdm | - \ endif -augroup END " }}} - -augroup visualbell " {{{ - au! - autocmd GUIEnter * set visualbell t_vb= -augroup END -" }}} - -augroup quickfix " {{{ - au! - autocmd QuickFixCmdPost grep cwindow -augroup END " }}} - -augroup php " {{{ - au! -augroup END "}}} - -augroup rubylang " {{{ - au! - autocmd FileType ruby compiler rake -augroup END " }}} - -augroup javascript "{{{ - au! - autocmd FileType javascript let &errorformat = - \ '%E%.%#%n) %s:,' . - \ '%C%.%#Error: %m,' . - \ '%C%.%#at %s (%f:%l:%c),' . - \ '%Z%.%#at %s (%f:%l:%c),' . - \ '%-G%.%#,' -augroup END " }}} - -augroup git " {{{ - autocmd! - autocmd FileType gitcommit set textwidth=72 -augroup END -" }}} -" }}} - -" Leader commands {{{ - -" Edit specific files {{{ -nnoremap <silent> <leader>ev :split $MYVIMRC<CR> -nnoremap <silent> <leader>eb :split ~/.vim_bundles<CR> -nnoremap <silent> <leader>es :UltiSnipsEdit<CR> -nnoremap <silent> <leader>ea :split ~/.vim/after/plugin/abolish.vim<CR> - -nnoremap <silent> <leader>sv :so $MYVIMRC<CR> -nnoremap <silent> <leader>sb :so ~/.vim_bundles<CR> -nnoremap <silent> <leader>sa :so ~/.vim/after/plugin/abolish.vim<CR> - -nnoremap <Leader>el :EditSqlTempFile<CR> -" }}} - -" Toggle navigation panels {{{ -nnoremap <Leader>l :TagbarToggle<CR> -nnoremap <Leader>mb :MBEToggle<CR> -nnoremap <Leader>u :GundoToggle<CR> - -nnoremap <Leader>t :CtrlP<CR> -nnoremap <Leader>z :FZF<CR> -nnoremap <Leader>b :CtrlPBuffer<CR> -nnoremap <Leader>a :CtrlPTag<CR> -nnoremap <Leader>r :CtrlPGitBranch<CR> -" }}} - -" CtrlP {{{ -let g:ctrlp_custom_ignore = { - \ 'dir': 'node_modules', - \ } -" }}} - -" Git leader commands {{{ -noremap <Leader>g :Git<SPACE> -noremap <Leader>gu :Gpull<CR> -noremap <Leader>gp :Gpush<CR> -noremap <Leader>s :Gstatus<CR> -noremap <Leader>cv :Gcommit --verbose<CR> -noremap <Leader>ca :Gcommit --verbose --amend<CR> - -nnoremap <Leader>dl :diffg LOCAL<CR> -nnoremap <Leader>dr :diffg REMOTE<CR> -nnoremap <Leader>db :diffg BASE<CR> -nnoremap <Leader>du :diffu<CR> -nnoremap <Leader>dg :diffg<CR> - -nnoremap <Leader>d2 :diffg //2<CR>:diffu<CR> -nnoremap <Leader>d3 :diffg //3<CR>:diffu<CR> - -nnoremap <Leader>yt :SignifyToggle<CR> -" }}} - -" Breakpoint Leader Commands {{{ -nnoremap <Leader>x :Breakpoint<CR> -nnoremap <Leader>dx :BreakpointRemove *<CR> -" }}} - -" Tabularize {{{ - " Leader Commands {{{ - nnoremap <localleader>t= :Tabularize /=<CR> - vmap <localleader>t= :Tabularize /=<CR> - - nnoremap <localleader>t> :Tabularize /=><CR> - vmap <localleader>t> :Tabularize /=><CR> - " }}} - - " => Aligning {{{ - function! s:rocketalign() - let l:p = '^.*=>\s.*$' - echo l:p - if exists(':Tabularize') && getline('.') =~# '^.*=' && - \ (getline(line('.')-1) =~# l:p || getline(line('.')+1) =~# l:p) - let column = strlen(substitute(getline('.')[0:col('.')],'[^=>]','','g')) - let position = strlen(matchstr(getline('.')[0:col('.')],'.*=>\s*\zs.*')) - Tabularize/=>/l1 - normal! $ - call search(repeat('[^=>]*=>',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) - endif - endfunction - "inoremap <buffer> <space>=><space> =><Esc>:call <SID>rocketalign()<CR>a - " }}} - - " = Aligning {{{ - function! s:eqalign() - let l:p = '^.*=\s.*$' - if exists(':Tabularize') && getline('.') =~# '^.*=' && - \ (getline(line('.')-1) =~# l:p || getline(line('.')+1) =~# l:p) - let column = strlen(substitute(getline('.')[0:col('.')],'[^=]','','g')) - let position = strlen(matchstr(getline('.')[0:col('.')],'.*=\s*\zs.*')) - Tabularize/=/l1 - normal! $ - call search(repeat('[^=]*=',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) - endif - endfunction - "inoremap <buffer><silent> <space>=<space> =<Esc>:call <SID>eqalign()<CR>a - " }}} - - " : Aligning {{{ - function! s:colonalign() - let l:p : '^.*:\s.*$' - if exists(':Tabularize') && getline('.') :~# '^.*:' && - \ (getline(line('.')-1) :~# l:p || getline(line('.')+1) :~# l:p) - let column : strlen(substitute(getline('.')[0:col('.')],'[^:]','','g')) - let position : strlen(matchstr(getline('.')[0:col('.')],'.*:\s*\zs.*')) - Tabularize/:/l1 - normal! $ - call search(repeat('[^:]*:',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) - endif - endfunction - "inoremap <buffer><silent> <space>:<space> :<Esc>:call <SID>colonalign()<CR>a - " }}} -" }}} - -" }}} - -" Mappings {{{ -" 'delete current' -nnoremap dc 0d$ -nnoremap com :silent !tmux set status<CR> -nnoremap <F9> :Make<CR> -nnoremap g<CR> :Dispatch<CR> -nnoremap g\ :Start<CR> -inoremap <F9> <ESC>:Make<CR>i - -" Navigate buffers {{{ -nnoremap gb :bn<CR> -nnoremap gB :bp<CR> -" }}} - -" Window Navigation {{{ -nnoremap <space>w <C-w> -nnoremap <space>h <C-w>h -nnoremap <space>j <C-w>j -nnoremap <space>k <C-w>k -nnoremap <space>l <C-w>l -nnoremap <space>z <C-w>z -" }}} - - -" Sort with motion {{{ -if !exists("g:sort_motion_flags") - let g:sort_motion_flags = "" -endif -function! s:sort_motion(mode) abort - if a:mode == 'line' - execute "'[,']sort " . g:sort_motion_flags - elseif a:mode == 'char' - execute "normal! `[v`]y" - let sorted = join(sort(split(@@, ', ')), ', ') - execute "normal! v`]c" . sorted - elseif a:mode == 'V' || a:mode == '' - execute "'<,'>sort " . g:sort_motion_flags - endif -endfunction - -function! s:sort_lines() - let beginning = line('.') - let end = v:count + beginning - 1 - execute beginning . ',' . end . 'sort' -endfunction - -xnoremap <silent> <Plug>SortMotionVisual :<C-U>call <SID>sort_motion(visualmode())<CR> -nnoremap <silent> <Plug>SortMotion :<C-U>set opfunc=<SID>sort_motion<CR>g@ -nnoremap <silent> <Plug>SortLines :<C-U>call <SID>sort_lines()<CR> - -map go <Plug>SortMotion -vmap go <Plug>SortMotionVisual -map goo <Plug>SortLines -" }}} -" }}} - -let g:hare_executable = 'cabal exec -- ghc-hare' |