78 Commits

Author SHA1 Message Date
f559e8b242 Update 2020-10-12 21:33:25 +02:00
65013e1ac5 Rather LCN? 2020-10-12 00:05:01 +02:00
97875214fa Update vim-lsp settings 2020-10-12 00:04:45 +02:00
efc29ec3b9 Use vim-lsp 2020-10-11 17:55:02 +02:00
6f5ba10aa6 Remove coc.nvim 2020-10-11 13:58:01 +02:00
58dae500af Remove fzf 2020-10-11 13:57:04 +02:00
8350566c14 Update 2020-10-11 13:50:17 +02:00
8143c60b21 Update 2020-08-22 20:37:20 +02:00
2c6ffd02e5 Fix git-gutter 2020-06-14 22:42:38 +02:00
8853388dea Use T for doc key 2020-06-14 22:41:14 +02:00
a070eccaf4 Update for workman 2020-06-14 21:43:04 +02:00
cc39580382 Fast fold 2020-02-02 00:04:00 +01:00
523dd1ad3a Use single quotes 2020-01-30 01:07:59 +01:00
08d59860f5 Enable vint for vim 2020-01-30 01:02:30 +01:00
0eea46beae Fix map 2020-01-28 02:10:39 +01:00
bf7c114395 Add rusty-tags support 2020-01-25 19:22:37 +01:00
34abb66cc9 Trash coc.nvim 2020-01-25 19:22:22 +01:00
f99343ca6e Update 2020-01-16 01:48:59 +01:00
d30df125c5 Disable neosnippet 2020-01-14 13:05:47 +01:00
1c2e0fccc3 Tweak diagnostics in coc.nvim 2020-01-14 13:05:33 +01:00
6e62775c1d Add dhall 2020-01-14 13:05:17 +01:00
c403eb2e73 Clean up plugins 2020-01-11 16:08:12 +01:00
e99f6129db Fix python LSP 2020-01-11 04:18:43 +01:00
e2505ecfc8 Enable shellcheck for sh 2020-01-11 04:18:30 +01:00
3dac35b6cf Update 2020-01-11 03:51:56 +01:00
5d64f2d58a Updates for haskell and rust 2020-01-09 00:37:57 +01:00
e94bbdb593 Update coc-settings.json 2020-01-09 00:37:34 +01:00
31ad2f7f7a Update LSP for haskell 2020-01-08 20:03:38 +01:00
Julian Ospald
3ff7565a49 Update Plug 2019-05-28 17:07:39 +08:00
Julian Ospald
4b5bc96115 Add typescript support 2019-05-28 17:07:12 +08:00
Julian Ospald
1ce2e893f4 Add vimwiki plugin 2019-02-25 12:28:40 +08:00
Julian Ospald
ab04e82f56 Add bufferize plugin 2019-02-25 12:28:26 +08:00
Julian Ospald
0432585de0 Add some scm plugins 2019-02-20 18:53:32 +08:00
Julian Ospald
98657d610b Add gruvbox colorscheme 2019-02-11 11:24:10 +08:00
Julian Ospald
0361e83857 Add some useful python plugins 2019-02-11 11:23:58 +08:00
Julian Ospald
e463bb7846 Enable rainbow for python 2019-02-11 11:23:11 +08:00
Julian Ospald
4bc374c640 Disable ycm completely 2018-10-11 14:54:55 +08:00
Julian Ospald
d5490493af More python stuff 2018-10-11 14:54:47 +08:00
Julian Ospald
2fa24865db Make rainbow config global 2018-10-11 14:54:16 +08:00
Julian Ospald
2ac0658755 Add gitgutter plugin 2018-10-11 14:53:50 +08:00
Julian Ospald
d32bc4751b Rm unnecessary syntax/filetype thing
I think this also fixed a bug with vim-airline being broken on
initial startup and with rainbow.
2018-10-11 14:52:59 +08:00
Julian Ospald
7efad8aba1 Try to fix clojurescript plugins 2018-09-17 15:44:46 +08:00
Julian Ospald
353281ff32 Enable vim-rainbow for haskell as well 2018-09-17 15:44:18 +08:00
Julian Ospald
649f4db641 Add neoformat 2018-09-17 15:42:18 +08:00
Julian Ospald
275a07bf4e Fix Rag and add <leader>ag shortcut 2018-08-19 14:15:09 +08:00
Julian Ospald
3adeb5e04e Utilize fzf tag jump too
* ctg -> create tags
* gd -> classic ctags jump
* tg -> fzf tags jump with list
2018-08-19 14:14:22 +08:00
Julian Ospald
77a5eb5742 Restructure colorschemes to bottom 2018-08-16 01:09:29 +08:00
Julian Ospald
e7c9a509c6 Add vim-code-dark VSCode like colorscheme 2018-08-16 01:09:19 +08:00
Julian Ospald
fcf39e4352 Use correct repo for cpsm 2018-08-16 01:08:36 +08:00
Julian Ospald
4eca702e94 Add Rag command for fzf 2018-08-16 00:19:38 +08:00
Julian Ospald
8ca26b851d Update vim-plug 2018-08-15 00:57:55 +08:00
Julian Ospald
841afeb278 Fix fzf 2018-08-15 00:57:32 +08:00
Julian Ospald
056d16651d Silence ATTENTION messages when swap file already exists 2018-08-14 23:55:58 +08:00
0b2a3aa3fc Use ctrlP caching 2018-08-13 20:36:02 +08:00
60ea3da091 Add fzf 2018-08-13 20:35:35 +08:00
5f149871f7 Add ctrlp 2018-08-12 17:41:31 +08:00
7a8a1f425f Unfuck haskell config for large projects 2018-08-04 19:42:36 +08:00
ea4275de9c Use stack for lushtags 2018-08-04 19:42:09 +08:00
728fc1cc94 Add custom snippets 2018-08-04 19:41:56 +08:00
cb32e85d5c Enable deoplete at startup 2018-08-04 19:41:47 +08:00
fd0ec0ec30 Disable sume clojure stuff 2018-08-04 19:41:12 +08:00
2f8ea2f5bc Disable liquidtypes 2018-07-08 16:56:34 +08:00
aa30843b94 Add hoogle support 2018-07-08 16:54:57 +08:00
9347f35352 Fix hasktags and hscope 2018-07-08 16:54:08 +08:00
6fb310f1f4 Use hie-wrapper 2018-07-03 18:27:21 +08:00
37f6c79332 Remove remnants of powerline 2018-06-27 12:04:03 +02:00
7e7201f6d7 Deoplete logging 2018-06-20 15:50:00 +02:00
2f0190fad6 Update argon 2018-06-20 15:49:50 +02:00
c58eab1c0e Brittany 2018-06-20 15:49:42 +02:00
c5c5364205 Style fix 2018-06-18 12:03:43 +02:00
23e2f09a8b Configure argon 2018-06-18 12:03:43 +02:00
901d336d82 Add argon ale linter and allow local linters 2018-06-18 12:03:43 +02:00
6b6c3628bb Fix cabal indenting 2018-06-18 12:03:43 +02:00
635cc5748c Allow textDocument_hover() in visual mode for LSP haskell 2018-06-16 15:54:56 +02:00
cf05781c02 Set <C-p> mapping for closing preview window 2018-06-16 15:54:34 +02:00
23abdd12ac Use vim-airline instead of powerline 2018-06-16 11:27:10 +02:00
b1e614cddc Add patch to fuzzyfinder 2018-06-16 11:26:55 +02:00
47a0889a7d Don't disable runtime snippets 2018-06-16 01:43:16 +02:00
32 changed files with 1612 additions and 2895 deletions

1
after/ftplugin/cabal.vim Normal file
View File

@@ -0,0 +1 @@
setlocal expandtab

View File

@@ -5,3 +5,6 @@ let g:rainbow_active = 1
let g:ScreenImpl = 'Tmux'
let g:sexp_enable_insert_mode_mappings = 0
" cljfmt
let g:clj_fmt_autosave = 0

View File

@@ -3,28 +3,76 @@ setlocal ts=2 sw=2 expandtab
"set background=light
"set guifont=Neep\ Medium\ Semi-Condensed\ 18
syntax on
filetype plugin indent on
" tags
call CmdAlias('hasktags', '!hasktags -c .<CR>')
" from
" https://raw.githubusercontent.com/begriffs/haskell-vim-now/master/git-hscope
call CmdAlias('codex', 'call system("haskell-ctags")<CR><CR>call LoadHscope()<CR>')
call CmdAlias('Cc', 'Clap commits<CR>')
call CmdAlias('hasktags', '!/home/jule/.cabal/bin/hasktags -c .<CR>')
map <leader>ctg :codex<CR>
set tags=tags;/,codex.tags;/
" classic ctags jump
" nnoremap <leader>gd <C-]>
" nnoremap <silent> <leader>cgd :cs find g <C-R>=expand("<cword>")<CR><CR>
nnoremap <silent> <C-\> :cs find c <C-R>=expand("<cword>")<CR><CR>
set cscopeprg=do_at_stack_root\ hscope
set csre
set csto=1 " search codex tags first
set nocst
" set cscopequickfix=s-,c-,d-,i-,t-,e-,a-
function! LoadHscope()
set nocscopeverbose " suppress 'duplicate connection' error
let hsf = findfile("hscope.out", ".;")
if filereadable(hsf)
exe "cs add " . hsf
elseif $HSCOPE_DB != ""
cs add $HSCOPE_DB
endif
set cscopeverbose
endfunction
au BufEnter /*.hs call LoadHscope()
"hoogle
nnoremap <leader>ho :Hoogle<CR>
nnoremap <leader>hc :HoogleClose<CR>
" haskell-vim
let g:haskell_classic_highlighting = 1
let g:haskell_indent_disable = 1
let g:haskell_indent_disable = 0
" let g:haskell_enable_quantification = 1
" let g:haskell_enable_recursivedo = 1
" let g:haskell_enable_arrowsyntax = 1
" let g:haskell_enable_pattern_synonyms = 1
" let g:haskell_enable_typeroles = 1
" let g:haskell_indent_if = 3
" let g:haskell_indent_case = 5
" let g:haskell_indent_let = 4
" let g:haskell_indent_where = 6
" let g:haskell_indent_do = 3
" let g:haskell_indent_in = 1
let g:haskell_indent_if = 0
let g:haskell_indent_case = 4
let g:haskell_indent_let = 4
let g:haskell_indent_where = 6
let g:haskell_indent_before_where = 2
let g:haskell_indent_after_bare_where = 2
let g:haskell_indent_do = 4
let g:haskell_indent_in = 0
let g:haskell_indent_guard = 4
" let g:haskell_disable_TH = 1
" vim-hindent
let g:hindent_on_save = 0
let g:hindent_indent_size = 4
let g:hindent_line_length = 80
" vim-stylishhask
let g:stylishask_on_save = 0
" haskellmode-vim
function! HaskellDocCurrentWord()
@@ -35,8 +83,8 @@ endfunction
" done by LSP now
nmap <F7> :call HaskellDocCurrentWord()<CR><CR>
nmap <silent> <F3> :silent update <bar> HsimportModule<CR>
nmap <silent> <F4> :silent update <bar> HsimportSymbol<CR>
" nmap <silent> <F3> :silent update <bar> HsimportModule<CR>
" nmap <silent> <F4> :silent update <bar> HsimportSymbol<CR>
" liquid-types
@@ -56,84 +104,91 @@ let g:vim_annotations_offset = '/.liquid/'
" endfunction
" LSP
let g:LanguageClient_autoStart = 1
let g:LanguageClient_serverCommands = {
\ 'haskell': ['hie', '--lsp', '-d', '-l', $HOME.'/lang-server.log'],
\ }
" we use ALE instead
let g:LanguageClient_diagnosticsEnable = 0
nnoremap <leader>lc :call LanguageClient_contextMenu()<CR>
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> <C-F6> :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> <F8> :call LanguageClient#textDocument_rename()<CR>
" deoplete
call deoplete#custom#option('sources',{
\ '_': ['buffer'],
\ 'haskell': ['neosnippet', 'buffer', 'file', 'LanguageClient']
\ })
" inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
call deoplete#enable()
let g:ghcmod_hlint_options = ['--ignore=Eta reduce $']
" ALE
let g:ale_enabled = 1
let g:ale_linters = {'haskell':['ghc-mod', 'hdevtools'], 'c':['clang']}
let g:ale_enabled = 0
let g:ale_linters = {'haskell':[], 'c':['clang']}
" let g:ale_linters = {'haskell':['ghc-mod', 'hdevtools', 'argon'], 'c':['clang']}
" let g:ale_fixers = {
" \ 'go': ['gofmt', 'goimports'],
" \ 'haskell': ['brittany'],
" \}
let g:ale_haskell_hdevtools_options = "-g '-Wall' -g '-Wno-orphans'"
let g:ale_haskell_argon_error_level = 14
let g:ale_haskell_argon_warn_level = 10
let g:ale_haskell_argon_info_level = 6
" completion
"
" neco-ghc
" let g:necoghc_enable_detailed_browse = 1
" let g:haskellmode_completion_ghc = 0
" let g:necoghc_enable_detailed_browse = 1
" autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc
" let g:ycm_semantic_triggers = {'haskell' : ['.']}
let g:neoformat_enabled_haskell = ['brittany']
" LSP
let g:LanguageClient_rootMarkers = ['cabal.project', '*.cabal', 'stack.yaml']
" clear search
nmap <F2> :noh<CR>:GhcModTypeClear<CR>
imap <F2> <C-O>:noh<CR>:GhcModTypeClear<CR>
" \ 'haskell': ['ghcide', "--lsp"],
let g:LanguageClient_serverCommands = {
\ 'haskell': ['haskell-language-server-wrapper', '--lsp'],
\ }
" unmap <F3>
" unmap <F4>
nmap <F6> :GhcModType<CR>
let g:echodoc#enable_at_startup = 1
" for intero
" if has("nvim")
" let g:ale_enabled = 0
" " let g:intero_backend = {
" " \ 'command': 'cabal new-repl',
" " \ 'options': '',
" " \ 'cwd': expand('%:p:h'),
" " \}
call deoplete#enable()
call deoplete#custom#source('LanguageClient',
\ 'min_pattern_length',
\ 2)
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
" " Intero starts automatically. Set this if you'd like to prevent that.
" let g:intero_start_immediately = 1
" " Enable type information on hover (when holding cursor at point for ~1 second).
" let g:intero_type_on_hover = 1
let g:tagbar_type_haskell = {
\ 'ctagsbin' : 'hasktags',
\ 'ctagsargs' : '-x -c -o-',
\ 'kinds' : [
\ 'm:modules:0:1',
\ 'd:data: 0:1',
\ 'd_gadt: data gadt:0:1',
\ 't:type names:0:1',
\ 'nt:new types:0:1',
\ 'c:classes:0:1',
\ 'cons:constructors:1:1',
\ 'c_gadt:constructor gadt:1:1',
\ 'c_a:constructor accessors:1:1',
\ 'ft:function types:1:1',
\ 'fi:function implementations:0:1',
\ 'i:instance:0:1',
\ 'o:others:0:1'
\ ],
\ 'sro' : '.',
\ 'kind2scope' : {
\ 'm' : 'module',
\ 'c' : 'class',
\ 'd' : 'data',
\ 't' : 'type',
\ 'i' : 'instance'
\ },
\ 'scope2kind' : {
\ 'module' : 'm',
\ 'class' : 'c',
\ 'data' : 'd',
\ 'type' : 't',
\ 'instance' : 'i'
\ }
\ }
" " Change the intero window size; default is 10.
" let g:intero_window_size = 15
" " Sets the intero window to split vertically; default is horizontal
" let g:intero_vertical_split = 1
" vista
let g:vista_ctags_cmd = {
\ 'haskell': 'hasktags -x -o - -c',
\ }
" " OPTIONAL: Make the update time shorter, so the type info will trigger faster.
" set updatetime=1000
" map <silent> <leader>t <Plug>InteroGenericType
" endif
" vim-lsp
if executable('haskell-language-server-wrapper')
au User lsp_setup call lsp#register_server({
\ 'name': 'hls',
\ 'cmd': {server_info->['haskell-language-server-wrapper', '--lsp']},
\ 'allowlist': ['haskell'],
\ })
endif

16
after/ftplugin/python.vim Normal file
View File

@@ -0,0 +1,16 @@
" let g:ale_linters = {'python':['mypy']}
" let g:ale_python_mypy_options = '--no-warn-incomplete-stub --ignore-missing-imports'
" let g:ale_python_pycodestyle_options = '--ignore=W391'
let g:neoformat_enabled_python = ['autopep8']
augroup fmt
autocmd!
autocmd BufWritePre * undojoin | Neoformat
augroup END
let g:jedi#completions_enabled = 0

View File

@@ -1,5 +1,3 @@
let g:tagbar_ctags_bin = '/usr/bin/universal-ctags'
let g:rust_doc#define_map_K = 0
let g:rust_doc#downloaded_rust_doc_dir = '~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu'
@@ -16,29 +14,40 @@ endfunction
nnoremap <buffer><silent><F7> :<C-u>call <SID>search_under_cursor(expand('<cword>'))<CR>
vnoremap <buffer><silent><F7> "gy:call <SID>search_under_cursor(getreg('g'))<CR>
nnoremap <F3> :call LanguageClient_contextMenu()<CR>
nnoremap <silent> <F4> :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> <F6> :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> <F8> :call LanguageClient#textDocument_rename()<CR>
" rusty-tags
autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/
autocmd BufWritePost *.rs :silent! exec "!rusty-tags vi --quiet --start-dir=" . expand('%:p:h') . "&" | redraw!
let g:tagbar_ctags_bin = '/usr/bin/exuberant-ctags'
let g:LanguageClient_autoStart = 1
" nnoremap <F3> :call LanguageClient_contextMenu()<CR>
" nnoremap <silent> <F4> :call LanguageClient#textDocument_definition()<CR>
" nnoremap <silent> <F6> :call LanguageClient#textDocument_hover()<CR>
" nnoremap <silent> <F8> :call LanguageClient#textDocument_rename()<CR>
let g:LanguageClient_serverCommands = {
\ 'rust': ['rustup', 'run', 'nightly', 'rls'] }
let g:LanguageClient_diagnosticsEnable = 0
" let g:LanguageClient_autoStart = 1
let g:ale_linters = {'rust': ['rls']}
let g:ale_fixers = { 'rust': ['rustfmt'] }
" let g:LanguageClient_serverCommands = {
" \ 'rust': ['rustup', 'run', 'nightly', 'rls'] }
let g:ale_fix_on_save = 0
let g:autofmt_autosave = 0
" let g:LanguageClient_diagnosticsEnable = 0
" let g:ale_linters = {'rust': ['rls']}
" let g:ale_fixers = { 'rust': ['rustfmt'] }
" let g:ale_fix_on_save = 0
" let g:autofmt_autosave = 0
" deoplete
call deoplete#custom#option('sources',{
\ '_': ['buffer'],
\ 'rust': ['ultisnips', 'buffer', 'file', 'LanguageClient']
\ })
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
call deoplete#enable()
" call deoplete#custom#option('sources',{
" \ '_': ['buffer'],
" \ 'rust': ['ultisnips', 'buffer', 'file', 'LanguageClient']
" \ })
" inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
" call deoplete#enable()
let g:LanguageClient_serverCommands = {
\ 'rust': ['~/.cargo/bin/ra_lsp_server'],
\ }

8
after/ftplugin/sh.vim Normal file
View File

@@ -0,0 +1,8 @@
if (expand("%:e") == "exheres-0")
finish
endif
if (expand("%:e") == "exlib")
finish
endif

View File

@@ -0,0 +1,18 @@
nnoremap <leader>gd <C-]>
let g:tsuquyomi_disable_quickfix = 1
let g:ale_linters = {
\ 'typescript': ['tsserver'],
\}
call deoplete#custom#option('sources', {
\ 'typescript': ['ale', 'buffer', 'file', 'around'],
\})
call deoplete#custom#source('ale', 'rank', 999)
call deoplete#custom#source('ale', 'input_pattern', '[^. *\t]\.\w*')
autocmd FileType typescript setlocal balloonexpr=tsuquyomi#balloonexpr()

2
after/ftplugin/vim.vim Normal file
View File

@@ -0,0 +1,2 @@
let g:ale_linters = {'vim':['vint']}

View File

@@ -0,0 +1,224 @@
" echodoc
" set cmdheight=2
let g:echodoc#enable_at_startup = 1
let g:echodoc#type = 'signature'
"LanguageClient-neovim
" Required for operations modifying multiple buffers like rename.
set hidden
let g:LanguageClient_autoStart = 0
let g:LanguageClient_diagnosticsEnable = 1
let g:LanguageClient_diagnosticsList = "Quickfix"
let g:LanguageClient_diagnosticsDisplay = {
\ 1: {
\ "name": "Error",
\ "texthl": "ALEError",
\ "signText": "✖",
\ "signTexthl": "ALEErrorSign",
\ "virtualTexthl": "Error",
\ },
\ 2: {
\ "name": "Warning",
\ "texthl": "ALEWarning",
\ "signText": "⚠",
\ "signTexthl": "ALEWarningSign",
\ "virtualTexthl": "Virtual",
\ },
\ 3: {
\ "name": "Information",
\ "texthl": "ALEInfo",
\ "signText": "",
\ "signTexthl": "ALEInfoSign",
\ "virtualTexthl": "Virtual",
\ },
\ 4: {
\ "name": "Hint",
\ "texthl": "ALEInfo",
\ "signText": "➤",
\ "signTexthl": "ALEInfoSign",
\ "virtualTexthl": "Virtual",
\ },
\ }
" hi link ALEError Error
hi ALEError term=underline cterm=underline ctermfg=Red gui=undercurl guisp=Red
hi link ALEWarning Warning
hi Virtual cterm=italic ctermfg=10 gui=italic guifg=#4b5558
hi link ALEInfo SpellCap
let $LANGUAGECLIENT_DEBUG=1
let g:LanguageClient_loggingLevel='DEBUG'
let g:LanguageClient_virtualTextPrefix = ''
let g:LanguageClient_loggingFile = expand('~/LanguageClient.log')
let g:LanguageClient_serverStderr = expand('~/LanguageServer.log')
" neosnippet
" Plugin key-mappings.
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
" imap <C-k> <Plug>(neosnippet_expand_or_jump)
" smap <C-k> <Plug>(neosnippet_expand_or_jump)
" xmap <C-k> <Plug>(neosnippet_expand_target)
" SuperTab like snippets behavior.
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
" imap <expr><tab> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<c-n>" : "\<tab>"
" smap <expr><tab> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<tab>"
" For conceal markers.
" if has('conceal')
" set conceallevel=2 concealcursor=niv
" endif
" Enable snipMate compatibility feature.
" let g:neosnippet#enable_snipmate_compatibility = 1
" let g:neosnippet#snippets_directory='~/.vim/custom-snippets'
" rainbow
let g:rainbow_conf = {
\ 'guifgs': ['#DC322F', 'royalblue3', 'darkorange3', 'seagreen3'],
\ 'ctermfgs': ['lightred', 'lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],
\}
let g:rainbow_active = 1
" vim airline
" let g:airline#extensions#tabline#enabled = 1
" deoplete
let g:deoplete#enable_at_startup = 0
" ==== delimitMate ====
let g:delimitMate_matchpairs = "(:),[:],{:}"
let g:delimitMate_expand_cr = 1
let g:delimitMate_expand_space = 1
let g:delimitMate_autoclose = 1
" Solarized stuff
" let g:solarized_termtrans=0
" let g:solarized_degrade=0
" let g:solarized_bold=1
" let g:solarized_underline=1
" let g:solarized_italic=1
" let g:solarized_termcolors=16
" let g:solarized_contrast="normal"
let g:solarized_visibility="high"
" let g:solarized_diffmode="normal"
" let g:solarized_hitrail=0
let g:solarized_menu=1
" youcompleteme
let g:ycm_filetype_blacklist = {
\ 'notes' : 1,
\ 'markdown' : 1,
\ 'text' : 1,
\ 'java' : 1,
\}
let g:ycm_confirm_extra_conf = 0
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_seed_identifiers_with_syntax = 0
" let g:ycm_always_populate_location_list = 1
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_key_invoke_completion = '<C-Space>'
let g:ycm_key_list_select_completion = ['<TAB>']
let g:ycm_key_list_previous_completion = ['<S-TAB>']
" nnoremap <F4> :YcmCompleter GoToDefinition<CR>
let g:ycm_server_log_level = 'error'
let g:ycm_semantic_triggers = {'haskell' : ['. ', '$ ']}
let g:ycm_goto_buffer_command = 'horizontal-split'
" commenting
let NERDSpaceDelims=1
let NERDCreateDefaultMappings=0
" haskellmode, needs to load early
let g:haddock_browser='/usr/bin/firefox'
let g:haddock_browser_callformat='%s file://%s >/dev/null 2>&1 &'
" fastfold
let g:fastfold_savehook = 1
let g:fastfold_fold_command_suffixes = ['x','X','a','A','o','O','c','C']
let g:fastfold_fold_movement_commands = [']z', '[z', 'zj', 'zk']
let g:markdown_folding = 1
let g:tex_fold_enabled = 1
let g:vimsyn_folding = 'af'
let g:xml_syntax_folding = 1
let g:html_syntax_folding = 1
let g:javaScript_fold = 1
let g:sh_fold_enabled= 7
let g:ruby_fold = 1
let g:perl_fold = 1
let g:perl_fold_blocks = 1
let g:r_syntax_folding = 1
let g:rust_fold = 1
let g:haskell_fold = 1
" tagbar
let g:tagbar_map_togglefold = ['za']
let g:tagbar_map_togglecaseinsensitive = 'zi'
" Nerdtree
let g:NERDTreeMapActivateNode = '<CR>'
let g:NERDTreeMapCustomOpen = ''
let g:NERDTreeMapOpenExpl = 'n'
let g:NERDTreeMapJumpNextSibling = ''
" let g:NERDTreeMapOpenSplit = ''
" use NERDTree instead of netrw
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
" overwrite nonsense from editorconfig
let g:EditorConfig_max_line_indicator = 'none'
" let g:EditorConfig_preserve_formatoptions = 1
" vim current word
let g:vim_current_word#highlight_current_word = 0
hi default link CurrentWordTwins CursorColumn
" vista
let g:vista#renderer#enable_icon = 0
" vim-lsp
function! s:on_lsp_buffer_enabled() abort
setlocal omnifunc=lsp#complete
setlocal signcolumn=yes
if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif
nmap <buffer> gd <plug>(lsp-definition)
nmap <buffer> gr <plug>(lsp-references)
" nmap <buffer> gi <plug>(lsp-implementation)
" nmap <buffer> gt <plug>(lsp-type-definition)
nmap <buffer> <leader>rn <plug>(lsp-rename)
nmap <buffer> .g <Plug>(lsp-previous-diagnostic)
nmap <buffer> ,g <Plug>(lsp-next-diagnostic)
nmap <buffer> T <plug>(lsp-hover)
nmap <buffer> <leader>la <plug>(lsp-code-action)
nmap <buffer> <leader>sd <plug>(lsp-document-diagnostics)
" refer to doc to add more commands
endfunction
augroup lsp_install
au!
" call s:on_lsp_buffer_enabled only for languages that has the server registered.
autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled()
augroup END
let g:lsp_auto_enable = 0
" command -nargs=0 LspStart call lsp#activate()
" clap
command -nargs=* Rag Clap grep ++query='<args>'
let g:clap_layout = {'relative': 'editor', 'width': '95%', 'height': '33%', 'row': '33%', 'col': '5%'}
let g:clap_use_pure_python = 1

View File

@@ -0,0 +1,69 @@
" Author: Julian Ospald <hasufell@hasufell.de>
" Description: argon for Haskell files
call ale#Set('haskell_argon_executable', 'argon')
call ale#Set('haskell_argon_options', '')
call ale#Set('haskell_argon_error_level', 12)
call ale#Set('haskell_argon_warn_level', 8)
call ale#Set('haskell_argon_info_level', 4)
function! ale_linters#haskell#argon#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'haskell_argon_executable')
endfunction
function! ale_linters#haskell#argon#GetCommand(buffer) abort
return ale#Escape(ale_linters#haskell#argon#GetExecutable(a:buffer))
\ . ' '
\ . ale#Var(a:buffer, 'haskell_argon_options')
\ . ' -m ' . ale#Var(a:buffer, 'haskell_argon_info_level')
\ . ' -j'
\ . ' %t'
endfunction
function! ale_linters#haskell#argon#Handle(buffer, lines) abort
let l:output = []
for l:error in ale#util#FuzzyJSONDecode(a:lines, [])
if !has_key(l:error, 'blocks')
" this cannot be formatted properly into an ALE error
execute 'echom ''[argon] '' l:error.message'
return l:output
endif
for l:block in l:error.blocks
let l:complexity = l:block.complexity
if l:complexity >= ale#Var(a:buffer, 'haskell_argon_error_level')
let l:type = 'E'
let l:max_c = ale#Var(a:buffer, 'haskell_argon_error_level')
elseif l:complexity >= ale#Var(a:buffer, 'haskell_argon_warn_level')
let l:type = 'W'
let l:max_c = ale#Var(a:buffer, 'haskell_argon_warn_level')
else
let l:type = 'I'
let l:max_c = ale#Var(a:buffer, 'haskell_argon_info_level')
endif
call add(l:output, {
\ 'filename': l:error.path,
\ 'lnum': l:block.lineno,
\ 'col': l:block.col,
\ 'text': l:block.name . ': cyclomatic complexity of ' . l:complexity,
\ 'type': l:type,
\})
endfor
endfor
return l:output
endfunction
call ale#linter#Define('haskell', {
\ 'name': 'argon',
\ 'executable_callback': 'ale_linters#haskell#argon#GetExecutable',
\ 'command_callback': 'ale_linters#haskell#argon#GetCommand',
\ 'callback': 'ale_linters#haskell#argon#Handle',
\})

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
snippet docsec
------------------------
--[ ${0:DOCUMENT SECTION} ]--
------------------------

View File

@@ -0,0 +1,2 @@
snippet tc
\textcolor{${1:red}}{${0}}

View File

@@ -1,6 +1,98 @@
nnoremap <SPACE> <Nop>
let g:mapleader = ' '
"
nnoremap <Leader>tk <C-w><C-]><C-w>T
" Quickly insert an empty new line without entering insert mode
nnoremap <Leader>o o<Esc>
nnoremap <Leader>O O<Esc>
" workman
noremap <C-K> <C-O>
noremap <Tab> <C-I>
noremap e j
noremap o k
noremap n h
noremap i l
noremap k n
noremap h e
noremap l o
noremap f u
noremap u i
noremap E J
noremap O K
noremap N H
noremap I L
noremap K N
noremap H E
noremap L O
noremap F U
noremap U I
noremap ge gj
noremap go gk
noremap gn gh
noremap gl go
noremap gk gn
noremap gh ge
noremap gE gJ
noremap gN gH
noremap gK gN
noremap gH gE
noremap gL gO
nnoremap <silent> <c-w>e :wincmd j<cr>
nnoremap <silent> <c-w>o :wincmd k<cr>
nnoremap <silent> <c-w>n :wincmd h<cr>
nnoremap <silent> <c-w>i :wincmd l<cr>
nnoremap <silent> <c-w>k :wincmd n<cr>
nnoremap <silent> <c-w>l :wincmd o<cr>
vnoremap <c-n> B
vnoremap <c-i> W
nnoremap <c-n> B
nnoremap <c-i> W
vnoremap <A-n> b
vnoremap <A-i> w
nnoremap <A-n> b
nnoremap <A-i> w
" nnoremap <c-n>i e
" get control-j back, so switch it with ctrl-n at qwerty position of j
" imap <c-n> <cr>
" cmap <c-n> <cr>
inoremap <c-j> <c-n>
cnoremap <c-j> <c-n>
" half scroll up and down
noremap <C-A-p> <C-u>
noremap <C-A-u> <C-d>
map <C-d> <Nop>
" jump word in visual mode -- TODO
" In insert or command mode, move normally by using Ctrl
inoremap <C-n> <Left>
inoremap <C-e> <Down>
inoremap <C-o> <Up>
inoremap <C-i> <Right>
cnoremap <C-n> <Left>
cnoremap <C-e> <Down>
cnoremap <C-o> <Up>
cnoremap <C-i> <Right>
inoremap <C-A-n> <C-Left>
inoremap <C-A-i> <C-Right>
inoremap <C-A-e> <Esc>:+3<CR>i
inoremap <C-A-o> <Esc>:-3<CR>i
" easy config
nmap <S-F9> :e $HOME/.vimrc<CR>
nmap <S-F10> :so $HOME/.vimrc<CR>
@@ -8,15 +100,22 @@ nmap <S-F10> :so $HOME/.vimrc<CR>
" Force saving files that require root permission
command! SUDOwrite :execute 'w !sudo tee > /dev/null %' | edit!
" TODO: C-S-o etc does not work
" Bubble single lines
nmap <silent> <C-S-Up> :m-2<CR>==
nmap <silent> <C-S-o> :m-2<CR>==
nmap <silent> <C-S-Down> :m+<CR>==
nmap <silent> <C-S-e> :m+<CR>==
imap <silent> <C-S-Up> <Esc>:m-2<CR>==gi
imap <silent> <C-S-o> <Esc>:m-2<CR>==gi
imap <silent> <C-S-Down> <Esc>:m+<CR>==gi
imap <silent> <C-S-e> <Esc>:m+<CR>==gi
" Bubble multiple lines
vmap <silent> <C-S-Up> :m-2<CR>gv=gv
vmap <silent> <C-S-o> :m-2<CR>gv=gv
vmap <silent> <C-S-Down> :m'>+<CR>gv=gv
vmap <silent> <C-S-e> :m'>+<CR>gv=gv
" Indent lines using <Left> and <Right>
vmap <C-S-Right> >gv
@@ -37,6 +136,9 @@ noremap <leader>bd <Esc>:bd<CR>
noremap <leader>wc <Esc>:bd<CR>
noremap <leader>bo <Esc>:Bufonly<CR>
" close preview
nmap <leader>pc <Esc>:pc<CR>
" Remap window commands
" map <leader>ws <Esc>:wincmd s<CR>
" map <leader>wv <Esc>:wincmd v<CR>
@@ -57,10 +159,19 @@ noremap <leader>bo <Esc>:Bufonly<CR>
" map <C-h> <Esc>:wincmd h<CR>
" map <C-Right> <Esc>:wincmd l<CR>
" map <C-l> <Esc>:wincmd l<CR>
nnoremap <silent> <A-i> :wincmd K<CR>
nnoremap <silent> <A-k> :wincmd J<CR>
nnoremap <silent> <A-j> :wincmd H<CR>
nnoremap <silent> <A-l> :wincmd L<CR>
"
" nnoremap <silent> <A-o> :wincmd k<CR>
" nnoremap <silent> <A-e> :wincmd j<CR>
" nnoremap <silent> <A-n> :wincmd h<CR>
" nnoremap <silent> <A-i> :wincmd l<CR>
" inoremap <silent> <A-o> <Esc>:wincmd k<CR>
" inoremap <silent> <A-e> <Esc>:wincmd j<CR>
" inoremap <silent> <A-n> <Esc>:wincmd h<CR>
" inoremap <silent> <A-i> <Esc>:wincmd l<CR>
nnoremap <silent> <C-A-o> :wincmd k<CR>
nnoremap <silent> <C-A-e> :wincmd j<CR>
nnoremap <silent> <C-A-n> :wincmd h<CR>
nnoremap <silent> <C-A-i> :wincmd l<CR>
nnoremap <silent> <A-Up> :wincmd k<CR>
nnoremap <silent> <A-Down> :wincmd j<CR>
nnoremap <silent> <A-Left> :wincmd h<CR>
@@ -69,18 +180,23 @@ inoremap <silent> <A-Up> <Esc>:wincmd k<CR>
inoremap <silent> <A-Down> <Esc>:wincmd j<CR>
inoremap <silent> <A-Left> <Esc>:wincmd h<CR>
inoremap <silent> <A-Right> <Esc>:wincmd l<CR>
nnoremap <silent> <C-A-Up> :wincmd K<CR>
nnoremap <silent> <C-A-Down> :wincmd J<CR>
nnoremap <silent> <C-A-Left> :wincmd H<CR>
nnoremap <silent> <C-A-Right> :wincmd L<CR>
inoremap <silent> <C-A-Up> <Esc>:wincmd K<CR>
inoremap <silent> <C-A-Down> <Esc>:wincmd J<CR>
inoremap <silent> <C-A-Left> <Esc>:wincmd H<CR>
inoremap <silent> <C-A-Right> <Esc>:wincmd L<CR>
" tags
nmap <S-F3> :exec("tjump ".expand("<cword>"))<CR>
nmap <S-F4> :split<CR>:exec("tjump ".expand("<cword>"))<CR>
" trigger NERDTree, Tagbar $ Co.
nmap <leader>n <Esc>:NERDTreeToggle<CR>
nmap <leader>t <Esc>:TagbarToggle<CR>
" nmap <leader>n <Esc>:NERDTreeToggle<CR>
" nmap <leader>t <Esc>:TagbarToggle<CR>
" nmap <leader>f "zyaw :exe ":Ack ".@z.""<CR>
nmap <C-f> :CtrlP<CR>
nmap <C-t> :CtrlPTag<CR>
nmap <C-b> :CtrlPBuffer<CR>
" grep word under cursor
nnoremap <silent><leader>f :lgr! "\b<C-R><C-W>\b"<CR>:cw<CR>
@@ -92,18 +208,27 @@ inoremap <silent> <S-Insert> <ESC>:set paste<CR>"+p :set nopaste<CR>
nmap <silent> <S-F7> :setlocal spell! spelllang=en_us<CR>
" cursor jump
nnoremap <S-Up> 3k
inoremap <S-Up> <Esc>:-3<CR>i
vnoremap <S-Up> 3k
nnoremap <S-Down> 3j
inoremap <S-Down> <Esc>:+3<CR>i
vnoremap <S-Down> 3j
nnoremap <C-Up> 6k
inoremap <C-Up> <Esc>:-6<CR>i
vnoremap <C-Up> 6k
nnoremap <C-Down> 6j
inoremap <C-Down> <Esc>:+6<CR>i
vnoremap <C-Down> 6j
" nnoremap <A-Up> 3k
" inoremap <A-Up> <Esc>:-3<CR>i
" vnoremap <A-Up> 3k
" nnoremap <A-Down> 3j
" inoremap <A-Down> <Esc>:+3<CR>i
" vnoremap <A-Down> 3j
" nnoremap <C-Up> 6k
" inoremap <C-Up> <Esc>:-6<CR>i
" vnoremap <C-Up> 6k
" nnoremap <C-Down> 6j
" inoremap <C-Down> <Esc>:+6<CR>i
" vnoremap <C-Down> 6j
nnoremap <A-o> 3k
vnoremap <A-o> 3k
nnoremap <A-e> 3j
vnoremap <A-e> 3j
nnoremap <C-o> 6k
vnoremap <C-o> 6k
nnoremap <C-e> 6j
vnoremap <C-e> 6j
" scrolling
nnoremap <S-PageUp> 10<C-Y>
@@ -113,26 +238,24 @@ nnoremap <S-PageDown> 10<C-E>
inoremap <S-PageDown> <Esc>10<C-E>i
vnoremap <S-PageDown> 10<C-E>
nnoremap <C-p> 10<C-Y>
inoremap <C-p> <Esc>10<C-Y>i
vnoremap <C-p> 10<C-Y>
nnoremap <C-u> 10<C-E>
inoremap <C-u> <Esc>10<C-E>i
vnoremap <C-u> 10<C-E>
" F keys
nmap <F2> :noh<CR>
imap <F2> <C-O>:noh<CR>
nmap <F3> :YcmCompleter GoToDeclaration<CR>
nmap <F4> :YcmCompleter GoTo<CR>
nmap <C-F4> :YcmCompleter GoTo<CR>:wincmd o<CR>
" nmap <F2> :noh<CR>
" imap <F2> <C-O>:noh<CR>
noremap <F5> :FufBuffer<CR>
nmap <F7> :call ManCurrentWord()<CR><CR>
nmap <F8> :call DevHelpCurrentWord()<CR><CR>
nnoremap <silent> <F10> :call NERDComment("n", "Toggle")<cr>
vnoremap <silent> <F10> <ESC>:call NERDComment("v", "Toggle")<cr>
" nmap <F8> :call DevHelpCurrentWord()<CR><CR>
" nmap <F4> <C-]>
" plugins etc
noremap <C-F> :NERDTreeToggle<CR>
noremap <C-B> :TagbarToggle<CR>
inoremap <C-B> <C-O>:TagbarToggle<CR>
" remap visual block
nnoremap <S-B> <c-v>
nnoremap <S-C> <c-v>
" write
noremap <C-s> :w<CR>
@@ -150,3 +273,111 @@ inoremap <C-V> <C-O>:call Paste("i")<CR>
" select all
nnoremap <C-A> ggVG<CR>
inoremap <C-A> <C-O>:call Select()<CR>
nnoremap <leader>cd :cd %:p:h<CR>:pwd<CR>
nnoremap <Leader>cc :cclose<CR>
nnoremap <Leader>co :copen<CR>
function! ToggleQuickFix()
if empty(filter(getwininfo(), 'v:val.quickfix'))
copen
else
cclose
endif
endfunction
function! ToggleLocList()
if empty(filter(getwininfo(), 'v:val.loclist'))
lopen
else
lclose
endif
endfunction
nnoremap <silent> <F3> :call ToggleQuickFix()<CR>
nnoremap <silent> <F4> :call ToggleLocList()<CR>
" PLUGINS
" NERDTree
noremap <C-j> :NERDTreeToggle<CR>
" noremap <C-B> :TagbarToggle<CR>
inoremap <C-B> <C-O>:TagbarToggle<CR>
" vista
nmap <F8> :Vista!!<CR>
" NERDComment
nnoremap <silent> <F10> :call NERDComment("n", "Toggle")<cr>
vnoremap <silent> <F10> <ESC>:call NERDComment("v", "Toggle")<cr>
" YCM
nmap <C-F4> :YcmCompleter GoTo<CR>:wincmd o<CR>
" vim-clap
nnoremap <leader>ag :Clap grep ++query=<cword><CR>
" nnoremap <silent> <leader>tg :Clap proj_tags ++query=<cword><CR>
nmap <C-f> :Clap files<CR>
nmap <C-t> :Clap tags<CR>
nmap <C-b> :Clap buffers<CR>
nnoremap <silent> <leader>tg :tag <C-R>=expand("<cword>")<CR><CR>
nnoremap <silent> <leader>tp :ptag <C-R>=expand("<cword>")<CR><CR>
nnoremap <silent> <leader>ts :ts <C-R>=expand("<cword>")<CR><CR>
" gitgutter
nmap <leader>ggt <Esc>:GitGutterToggle<CR>
nmap <leader>nh <Plug>(GitGutterNextHunk)
nmap <leader>bh <Plug>(GitGutterPrevHunk)
" tig
" let g:tig_explorer_keymap_edit = '<C-x>'
" let g:tig_explorer_keymap_tabedit = '<C-t>'
" let g:tig_explorer_keymap_split = '<C-s>'
" let g:tig_explorer_keymap_vsplit = '<C-v>'
" nnoremap <Leader>T :TigOpenCurrentFile<CR>
" nnoremap <Leader>t :TigOpenProjectRootDir<CR>
" nnoremap <Leader>g :TigGrep<CR>
" nnoremap <Leader>r :TigGrepResume<CR>
" vnoremap <Leader>g y:TigGrep<Space><C-R>"<CR>
" nnoremap <Leader>cg :<C-u>:TigGrep<Space><C-R><C-W><CR>
" nnoremap <Leader>b :TigBlame<CR>
" ghcup
" nnoremap <Leader>ghc :GHCup<CR>
" git gutter
omap <leader>ic <Plug>(GitGutterTextObjectInnerPending)
omap <leader>ac <Plug>(GitGutterTextObjectOuterPending)
xmap <leader>ic <Plug>(GitGutterTextObjectInnerVisual)
xmap <leader>ac <Plug>(GitGutterTextObjectOuterVisual)
" fastfold
nmap zuz <Plug>(FastFoldUpdate)
"LanguageClient-neovim
" Required for operations modifying multiple buffers like rename.
set hidden
nnoremap <leader>lc :call LanguageClient_contextMenu()<CR>
" Or map each action separately
nnoremap <silent> T :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
" nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
" nnoremap <leader>ld :call LanguageClient#textDocument_definition()<CR>
" nnoremap <leader>lr :call LanguageClient#textDocument_rename()<CR>
" nnoremap <leader>lf :call LanguageClient#textDocument_formatting()<CR>
" nnoremap <leader>lt :call LanguageClient#textDocument_typeDefinition()<CR>
" nnoremap <leader>lx :call LanguageClient#textDocument_references()<CR>
" nnoremap <leader>la :call LanguageClient_workspace_applyEdit()<CR>
" nnoremap <leader>lc :call LanguageClient#textDocument_completion()<CR>
" nnoremap <leader>lh :call LanguageClient#textDocument_hover()<CR>
nnoremap <leader>la :call LanguageClient#textDocument_codeAction()<CR>
nnoremap <leader>rn :call LanguageClient#textDocument_rename()<CR>

241
plugins.toml Normal file
View File

@@ -0,0 +1,241 @@
[[plugins]]
repo = 'mileszs/ack.vim'
[[plugins]]
repo = 'vim-scripts/cmdalias.vim'
[[plugins]]
repo = 'Raimondi/delimitMate'
[[plugins]]
repo = 'vim-scripts/genindent.vim'
[[plugins]]
repo = 'scrooloose/nerdcommenter'
[[plugins]]
repo = 'scrooloose/nerdtree'
on_event = 'NERDTreeToggle'
[[plugins]]
repo = 'Xuyuanp/nerdtree-git-plugin'
on_event = 'NERDTreeToggle'
[[plugins]]
repo = 'xolox/vim-easytags'
[[plugins]]
repo = 'xolox/vim-misc'
[[plugins]]
repo = 'nathanaelkane/vim-indent-guides'
[[plugins]]
repo = 'Shougo/vimproc.vim'
build = 'make'
[[plugins]]
repo = 'sjbach/lusty'
[[plugins]]
repo = 'nixprime/cpsm'
build = 'sh -c "PY3=ON ./install.sh"'
[[plugins]]
repo = 'liuchengxu/vista.vim'
[[plugins]]
repo = 'sbdchd/neoformat'
[[plugins]]
repo = 'AndrewRadev/bufferize.vim'
[[plugins]]
repo = 'vmchale/dhall-vim'
[[plugins]]
repo = 'Shougo/echodoc.vim'
[[plugins]]
repo = 'tpope/vim-scriptease'
[[plugins]]
repo = 'Konfekt/FastFold'
[[plugins]]
repo = 'editorconfig/editorconfig-vim'
[[plugins]]
repo = 'hasufell/ghcup.vim'
[[plugins]]
repo = 'junegunn/vim-easy-align'
[[plugins]]
repo = 'dominikduda/vim_current_word'
#[[plugins]]
# repo = 'vim-airline/vim-airline'
#[[plugins]]
# repo = 'vim-airline/vim-airline-themes'
[[plugins]]
repo = 'mkitt/tabline.vim'
# finder
[[plugins]]
repo = 'liuchengxu/vim-clap'
build = 'make'
# scm
[[plugins]]
repo = 'tpope/vim-fugitive'
[[plugins]]
repo = 'tpope/vim-rhubarb'
[[plugins]]
repo = 'tommcdo/vim-fubitive'
[[plugins]]
repo = 'airblade/vim-gitgutter'
# local vimrc
[[plugins]]
repo = 'LucHermitte/lh-vim-lib'
[[plugins]]
repo = 'LucHermitte/local_vimrc'
# completion
[[plugins]]
repo = 'Valloric/YouCompleteMe'
build = './install.py --clang-completer --go-completer --rust-completer --system-boost --system-libclang'
on_ft = ['c', 'go', 'clojure']
[[plugins]]
repo = 'Shougo/deoplete.nvim'
[[plugins]]
repo = 'roxma/nvim-yarp'
on_if = '!has("nvim")'
[[plugins]]
repo = 'roxma/vim-hug-neovim-rpc'
on_if = '!has("nvim")'
# linting/compilation
[[plugins]]
repo = 'w0rp/ale'
build = 'bash -c "cp -R ~/.vim/ale_linters ."'
on_ft = ['sh', 'vim']
# LSP
[[plugins]]
repo = 'autozimu/LanguageClient-neovim'
rev = 'dev'
build = 'bash ./install.sh'
#[[plugins]]
#repo = 'prabirshrestha/vim-lsp'
# snippets
#[[plugins]]
#repo = 'Shougo/neosnippet.vim'
#[[plugins]]
#repo = 'honza/vim-snippets'
# multi language
[[plugins]]
repo = 'luochen1990/rainbow'
on_ft = ['clojure', 'haskell', 'python']
# haskell
[[plugins]]
repo = 'neovimhaskell/haskell-vim'
on_ft = ['haskell', 'cabal']
[[plugins]]
repo = 'Twinside/vim-hoogle'
on_ft = ['haskell']
[[plugins]]
repo = 'alx741/vim-stylishask'
on_ft = ['haskell']
[[plugins]]
repo = 'fatih/vim-go'
on_ft = ['go']
hook_post_source = 'GoInstallBinaries'
# rust
[[plugins]]
repo = 'rust-lang/rust.vim'
on_ft = ['rust']
# javascript
[[plugins]]
repo = 'pangloss/vim-javascript'
on_ft = ['javascript']
# python
[[plugins]]
repo = 'python-mode/python-mode'
on_ft = ['python']
#[[plugins]]
# repo = 'zchee/deoplete-jedi'
# on_ft = ['python']
#[[plugins]]
# repo = 'davidhalter/jedi-vim'
# on_ft = ['python']
[[plugins]]
repo = 'manicmaniac/coconut.vim'
on_ft = ['python']
[[plugins]]
repo = 'alfredodeza/pytest.vim'
on_ft = ['python']
[[plugins]]
repo = 'idanarye/vim-vebugger'
on_ft = ['python']
# scala
[[plugins]]
repo = 'derekwyatt/vim-scala'
on_ft = ['scala']
# typescript
[[plugins]]
repo = 'leafgarland/typescript-vim'
on_ft = ['typescript']
[[plugins]]
repo = 'Quramy/tsuquyomi'
on_ft = ['typescript']
# color and beauty
# [[plugins]]
# repo = 'tomasiser/vim-code-dark'
# [[plugins]]
# repo = 'romainl/Apprentice'
# [[plugins]]
# repo = 'chriskempson/base16-vim'
# [[plugins]]
# repo = 'fneu/breezy'
# [[plugins]]
# repo = 'romainl/Disciple'
# [[plugins]]
# repo = 'wimstefan/Lightning'
# [[plugins]]
# repo = 'NLKNguyen/papercolor-theme'
# [[plugins]]
# repo = 'flazz/vim-colorschemes'
[[plugins]]
repo = 'altercation/vim-colors-solarized'
# repo = 'reedes/vim-colors-pencil'
# [[plugins]]
# repo = 'whatyouhide/vim-gotham'
# [[plugins]]
# repo = 'noahfrederick/vim-hemisu'
# [[plugins]]
# repo = 'morhetz/gruvbox'
# unmanaged
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'L9'
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'ScrollColor'
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'bufonly'
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'colorschemedegrade'
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'exheres-syntax-20160116'
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'fontzoom'
on_if = '!has("nvim")'
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'fuzzyfinder'
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'log'
#[[plugins]]
#repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
#rtp = 'paredit'
#[[plugins]]
#repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
#rtp = 'tslime'
[[plugins]]
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
rtp = 'txtfmt'

View File

@@ -0,0 +1 @@
Saleem Abdulrasool <compnerd@exherbo.org> compnerd <compnerd@lithium.(none)>

View File

@@ -0,0 +1,40 @@
COPYRIGHT
=========
Copyright (c) 2008 Alexander Færøy <ahf@exherbo.org>
You may redistribute this package under the same terms as Vim itself.
Based in part upon gentoo-syntax, which is:
Copyright (c) 2004-2005 Ciaran McCreesh, Aaron Walker
INSTALL
=======
If you are on an Exherbo-based system:
cave resolve app-vim/exheres-syntax
If you are on a Gentoo-based system:
cave resolve app-vim/exheres-syntax
or
emerge app-vim/exheres-syntax
Other:
Just extract the tarball to your ~/.vim/ directory.
BUGS
====
If you discover any bugs in exheres-syntax, please file a bug under the
"Hosted Projects" -> "Exheres-syntax" component on https://bugs.exherbo.org/
AUTHORS
=======
* Alexander Færøy <ahf@exherbo.org>
* Ingmar Vanhassel <ingmar@exherbo.org>
* Saleem Abdulrasool <compnerd@compnerd.org>

View File

@@ -0,0 +1,13 @@
*exheres-syntax.txt* Exheres Syntax Plug-in
Author: Alexander Færøy <ahf@exherbo.org>
Copyright: (c) 2007 by Alexander Færøy
==============================================================================
Please read http://www.exherbo.org/docs/exheres-for-smarties.html for
information about the exheres package format.
==============================================================================
vim:tw=78:ts=4:ft=help:et

View File

@@ -0,0 +1 @@
exheres-syntax.txt exheres-syntax.txt /*exheres-syntax.txt*

View File

@@ -0,0 +1,14 @@
" Vim filetype detection file
" Language: Exheres
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2008 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
au BufNewFile,BufRead *.exlib set filetype=exlib
au BufNewFile,BufRead *.exheres-0 set filetype=exheres-0
" vim: set et ts=4 :

View File

@@ -0,0 +1,19 @@
" Vim filetype plugin file
" Language: Exheres-0
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2008, 2009 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
runtime! ftplugin/sh.vim
setlocal tabstop=4
setlocal shiftwidth=4
setlocal expandtab
setlocal fileencoding=utf-8
setlocal textwidth=100
" vim: set et ts=4 :

View File

@@ -0,0 +1,19 @@
" Vim filetype plugin file
" Language: Exlib
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2008, 2009 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
runtime! ftplugin/sh.vim
setlocal tabstop=4
setlocal shiftwidth=4
setlocal expandtab
setlocal fileencoding=utf-8
setlocal textwidth=100
" vim: set et ts=4 :

View File

@@ -0,0 +1,18 @@
" Vim indent file
" Language: Exheres-0
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2008 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
if exists("b:did_indent")
finish
endif
runtime! indent/sh.vim
let b:did_indent = 1
" vim: set et ts=4 :

View File

@@ -0,0 +1,18 @@
" Vim indent file
" Language: Exlib
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2008 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
if exists("b:did_indent")
finish
endif
runtime! indent/sh.vim
let b:did_indent = 1
" vim: set et ts=4 :

View File

@@ -0,0 +1,89 @@
" Vim plugin
" Language: Create new common-metadata.exlib
" Author: Saleem Abdulrasool <compnerd@compnerd.org>
" Copyright: Copyright (c) 2008-2012 Saleem Abdulrasool <compnerd@compnerd.org>
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
fun! <SID>GenerateCommonMetadataExlib()
let l:pastebackup = &paste
set nopaste
if exists("*strftime")
let l:year = strftime("%Y")
else
let l:year = "<year>"
endif
put = '# Copyright ' . l:year . ' ' . g:exheres_author_name
put = '# Distributed under the terms of the GNU General Public License v2'
put = ''
put = 'SUMMARY=\"\"'
put = 'DESCRIPTION=\"'
put = 'If DESCRIPTION is set it must not be an empty string.'
put = '\"'
put = 'HOMEPAGE=\"\"'
put = 'DOWNLOADS=\"\"'
put = ''
put = 'LICENCES=\"\"'
put = 'SLOT=\"0\"'
put = 'MYOPTIONS=\"\"'
put = ''
put = 'DEPENDENCIES=\"'
put = ' build:'
put = ' build+run:'
put = '\"'
put = ''
put = 'BUGS_TO=\"\"'
put = ''
put = 'REMOTE_IDS=\"\"'
put = ''
put = 'UPSTREAM_CHANGELOG=\"\"'
put = 'UPSTREAM_DOCUMENTATION=\"\"'
put = 'UPSTREAM_RELEASE_NOTES=\"\"'
put = ''
0
/^SUMMARY=/
exec "normal 2f\""
nohls
if pastebackup != 0
set paste
endif
endfun
com! -nargs=0 NewCommonMetadataExlib call <SID>GenerateCommonMetadataExlib
if !exists("g:common_metadata_create_on_empty")
let g:common_metadata_create_on_empty = 1
endif
if v:progname =~ "vimdiff"
let g:common_metadata_create_on_empty = 0
endif
if !exists("g:exheres_author_name")
let g:exheres_author_name = "<name>"
endif
augroup NewCommonMetadataExlib
au!
" common-metadata.exlib
autocmd BufNewFile common-metadata.exlib
\ if g:common_metadata_create_on_empty |
\ call <SID>GenerateCommonMetadataExlib() |
\ endif
" ${PN}.exlib
autocmd BufNewFile *.exlib
\ if expand('%:p:t') == expand('%:p:h:t') . '.exlib' |
\ if g:common_metadata_create_on_empty |
\ call <SID>GenerateCommonMetadataExlib() |
\ endif |
\ endif
augroup END
" vim: set et ts=4 sw=4 :

View File

@@ -0,0 +1,80 @@
" Vim plugin
" Language: Create new exheres-0 package.
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2007 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
fun! <SID>GenerateExheresZeroPackage()
let l:pastebackup = &paste
set nopaste
if exists("*strftime")
let l:year = strftime("%Y")
else
let l:year = "<year>"
endif
put! ='# Copyright ' . l:year . ' ' . g:exheres_author_name
put ='# Distributed under the terms of the GNU General Public License v2'
put =''
put ='SUMMARY=\"\"'
put ='DESCRIPTION=\"'
put ='If DESCRIPTION is set it must not be an empty string.'
put ='\"'
put ='HOMEPAGE=\"\"'
put ='DOWNLOADS=\"\"'
put =''
put ='LICENCES=\"\"'
put ='SLOT=\"0\"'
put ='PLATFORMS=\"\"'
put ='MYOPTIONS=\"\"'
put =''
put ='DEPENDENCIES=\"'
put =' build:'
put =' build+run:'
put ='\"'
put =''
put ='BUGS_TO=\"\"'
put =''
put ='DEFAULT_SRC_CONFIGURE_PARAMS=( )'
put ='DEFAULT_SRC_CONFIGURE_OPTION_WITHS=( )'
put ='DEFAULT_SRC_CONFIGURE_OPTION_ENABLES=( )'
put =''
0
/^SUMMARY=/
exec "normal 2f\""
nohls
if pastebackup == 0
set nopaste
endif
endfun
com! -nargs=0 NewExheresZeroPackage call <SID>GenerateExheresZeroPackage()
if !exists("g:package_create_on_empty")
let g:package_create_on_empty = 1
endif
if v:progname =~ "vimdiff"
let g:package_create_on_empty = 0
endif
if !exists("g:exheres_author_name")
let g:exheres_author_name = "<name>"
endif
augroup NewExheresZeroPackage
au!
autocmd BufNewFile *.exheres-0
\ if g:package_create_on_empty |
\ call <SID>GenerateExheresZeroPackage() |
\ endif
augroup END
" vim: set et ts=4 :

View File

@@ -0,0 +1,18 @@
" Vim syntaxfile
" Language: Exheres-0
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2008 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
syn keyword ExheresZeroError export_exlib_phases
syn keyword ExheresZeroError myexparam exparam
runtime syntax/exheres-common.vim
let b:current_syntax = "exheres-0"
" vim: set et ts=4 :

View File

@@ -0,0 +1,142 @@
" Vim syntaxfile
" Language: Common code for exheres syntax
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2008 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
let is_bash = 1
runtime! syntax/sh.vim
unlet b:current_syntax
syn region ExheresHeader contained start=/^#/ end=/$/ contains=ExheresCopyrightHeader
syn region ExheresHeaderBlock start=/\%^\(#\)\@=/ end=/^$/ contains=ExheresHeader
" Unfilled copyright notice
syn region ExheresCopyrightHeader contained start=/^#\s*Copyright/ end=/$/ contains=ExheresCopyrightError
syn match ExheresCopyrightError contained /<\(name\|year\)>/
" Phases
syn keyword ExheresZeroFunctions pkg_pretend pkg_setup pkg_preinst pkg_postinst pkg_prerm pkg_postrm pkg_nofetch pkg_config pkg_info
syn keyword ExheresZeroFunctions src_fetch_extra src_unpack src_prepare src_configure src_compile src_test src_test_expensive src_install
" Default phases
syn keyword ExheresZeroFunctions default
syn keyword ExheresZeroFunctions default_pkg_pretend default_pkg_setup default_pkg_preinst default_pkg_postinst default_pkg_prerm default_pkg_postrm default_pkg_nofetch default_pkg_config default_pkg_info
syn keyword ExheresZeroFunctions default_src_fetch_extra default_src_unpack default_src_prepare default_src_configure default_src_compile default_src_test default_src_test_expensive default_src_install
" Multibuild phases
syn keyword ExheresZeroFunctions compile_one_multibuild compile_prepare_one_multibuild configure_one_multibuild configure_prepare_one_multibuild install_one_multibuild install_prepare_one_multibuild prepare_one_multibuild prepare_prepare_one_multibuild test_expensive_one_multibuild test_expensive_prepare_one_multibuild test_one_multibuild test_prepare_one_multibuild unpack_one_multibuild unpack_prepare_one_multibuild
" die_functions.bash
syn keyword ExheresZeroCoreKeyword die assert nonfatal
" echo_functions.bash
syn keyword ExheresZeroCoreKeyword einfo elog ewarn eerror ebegin eend
syn keyword ExheresZeroCoreKeyword einfon ewend
" install_functions.bash
syn keyword ExheresZeroCoreKeyword keepdir into insinto exeinto docinto insopts diropts exeopts libopts
" kernel_functions.bash
syn keyword ExheresZeroCoreKeyword KV_major KV_minor KV_micro KV_to_int get_KV
" sydbox.bash
syn keyword ExheresZeroCoreKeyword esandbox
syn match ExheresZeroError "sydboxcheck"
syn match ExheresZeroError "sydboxcmd"
syn match ExheresZeroError "addread"
syn match ExheresZeroError "adddeny"
syn match ExheresZeroError "addpredict"
" exheres-0/build_functions.bash
syn keyword ExheresZeroCoreKeyword expatch econf emagicdocs edo exhost
" exheres-0/conditional_functions.bash
syn keyword ExheresZeroCoreKeyword option_with option_enable
syn keyword ExheresZeroError use_with use_enable
" exheres-0/exlib_functions.bash
syn keyword ExheresZeroRequire require
" exheres-0/list_functions.bash
syn keyword ExheresZeroError einstall use usev useq
syn keyword ExheresZeroCoreKeyword optionfmt option optionv optionq has hasv hasq
syn keyword ExheresZeroCoreKeyword expecting_tests
" exheres-0/portage_stubs.bash
syn keyword ExheresZeroCoreKeyword has_version best_version
syn keyword ExheresZeroError portageq vdb_path check_KV debug-print debug-print-function debug-print-section
" utils/
syn keyword ExheresZeroCoreKeyword dobin doconfd dodir doenvd doexe doinfo
syn keyword ExheresZeroCoreKeyword doinitd doins dolib dolib.a dolib.so doman domo dosym
syn keyword ExheresZeroCoreKeyword newbin newconfd newdoc newenvd newexe newinitd newins newlib.a newlib.so
syn keyword ExheresZeroCoreKeyword newman unpack
syn keyword ExheresZeroCoreKeyword herebin hereconfd hereenvd hereinitd hereins
syn keyword ExheresZeroError dosbin fperms fowners newsbin heresbin
" utils/exheres-0/
syn keyword ExheresZeroCoreKeyword emake dodoc
syn keyword ExheresZeroError dohard donewins dosed doset dohtml
syn keyword ExheresZeroError prepall prepalldocs prepallinfo prepallman prepallstrip prepdocs prepinfo prepman prepstrip
syn match ExheresZeroError /ecompress\w*/
" autotools.exlib
syn keyword ExheresZeroCoreKeyword eautoreconf eaclocal eautoconf eautoheader eautomake
" Legacy ebuild stuff
syn match ExheresZeroError /^SOURCES/
syn match ExheresZeroError /^DISTDIR/
syn match ExheresZeroError /^FILESDIR/
syn match ExheresZeroError /^PORTDIR/
syn match ExheresZeroError /^WORKDIR/
syn match ExheresZeroError /^KEYWORDS/
syn match ExheresZeroError /^PROVIDE/
syn match ExheresZeroError /^IUSE/
syn match ExheresZeroError /^LICENSE/
syn match ExheresZeroError /^LICENCE[^S]/
syn match ExheresZeroError /^SRC_URI/
syn match ExheresZeroError /^EAPI/
syn match ExheresZeroError /AA/
syn match ExheresZeroError /ARCH/
syn match ExheresZeroError /KV/
syn match ExheresZeroError /^\(A\|D\|S\|T\)=/
syn match ExheresZeroErrorC /\${\(P\|PF\|A\|D\|S\|T\)}/
syn match ExheresZeroErrorC /\${\(DISTDIR\|FILESDIR\|PORTDIR\|SOURCES\|WORKDIR\)}/
" Read-only variables
syn match ExheresZeroError /^\(PNV\|PN\|PV\|PR\|PVR\|PNVR\|ARCHIVES\)=/
" Bad variable assignments
syn match ExheresZeroError /^SLOT\s*=\s*\(""\|''\|$\)/
syn match ExheresZeroError ~^WORK="\?\${\?WORKBASE}\?/\${\?PNV}\?"\?\s*$~
syn match ExheresZeroErrorC /\${PN}-\${PV}/
" Highlight tabs and trailing whitespace as errors
syn match ExheresZeroError " "
syn match ExheresZeroError "\s\+$"
" Highlight last line if it's not empty
syn match ExheresZeroError /^.\+\%$/
" Highlight it
syn cluster ExheresZeroContents contains=ExheresZeroCoreKeyword,ExheresZeroFunctions,ExheresZeroRequire
syn cluster ExheresZeroContents add=ExheresZeroError,ExheresZeroErrorC
syn cluster shCommandSubList add=@ExheresZeroContents
syn cluster shDblQuoteList add=ExheresZeroErrorC
hi def link ExheresZeroCoreKeyword Keyword
hi def link ExheresZeroFunctions Special
hi def link ExheresZeroRequire Include
hi def link ExheresZeroError Error
hi def link ExheresZeroErrorC Error
hi def link ExheresHeader Comment
hi def link ExheresCopyrightHeader Comment
hi def link ExheresCopyrightError Error
" vim: set et ts=4 :

View File

@@ -0,0 +1,18 @@
" Vim syntaxfile
" Language: Exheres-0
" Author: Alexander Færøy <ahf@exherbo.org>
" Copyright: Copyright (c) 2008 Alexander Færøy
" License: You may redistribute this under the same terms as Vim itself
if &compatible || v:version < 603
finish
endif
syn keyword ExheresZeroRequire export_exlib_phases
syn keyword ExheresZeroRequire myexparam exparam
runtime syntax/exheres-common.vim
let b:current_syntax = "exlib"
" vim: set et ts=4 :

View File

@@ -706,6 +706,11 @@ let s:FUF_BUF_NAME = '[fuf]'
"
function s:activateFufBuffer()
" Save the last window number so we can switch back to it later (otherwise,
" at least with more recent versions of Vim, we end up with the top left
" window focused)
let s:fuf_buffer_last_winnr = winnr()
" lcd . : To avoid the strange behavior that unnamed buffer changes its cwd
" if 'autochdir' was set on.
lcd .
@@ -733,6 +738,7 @@ function s:deactivateFufBuffer()
AutoComplPopUnlock
endif
call l9#tempbuffer#close(s:FUF_BUF_NAME)
exec s:fuf_buffer_last_winnr . "wincmd w"
endfunction
" }}}1

View File

@@ -0,0 +1,36 @@
From fd41e8d68b6774324b58c02692b896a6a36a0397 Mon Sep 17 00:00:00 2001
From: David Wolever <david@wolever.net>
Date: Thu, 1 Jun 2017 10:11:43 -0400
Subject: [PATCH] Fix focus top left window bug
With newer versions of Vim, the top left window will be focused after
opening the fuf menu. This patch restores the window focus after the
menu is closed.
---
autoload/fuf.vim | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/autoload/fuf.vim b/autoload/fuf.vim
index fe9e6eb..78be490 100644
--- a/autoload/fuf.vim
+++ b/autoload/fuf.vim
@@ -706,6 +706,11 @@ let s:FUF_BUF_NAME = '[fuf]'
"
function s:activateFufBuffer()
+ " Save the last window number so we can switch back to it later (otherwise,
+ " at least with more recent versions of Vim, we end up with the top left
+ " window focused)
+ let s:fuf_buffer_last_winnr = winnr()
+
" lcd . : To avoid the strange behavior that unnamed buffer changes its cwd
" if 'autochdir' was set on.
lcd .
@@ -733,6 +738,7 @@ function s:deactivateFufBuffer()
AutoComplPopUnlock
endif
call l9#tempbuffer#close(s:FUF_BUF_NAME)
+ exec s:fuf_buffer_last_winnr . "wincmd w"
endfunction
" }}}1

334
vimrc
View File

@@ -1,258 +1,51 @@
" ===== hasufell's vimrc ))))
" no ATTENTION messages when swap file is already found
set shortmess+=A
let g:pymode_python = 'python3'
" plugin stuff
filetype plugin on
filetype indent on
set backspace=indent,eol,start " backspace through everything in insert mode
set cmdheight=1
set wildmenu
" set wildmode=longest,list,full
" vim-plug settings (Plugin declaration)
call plug#begin('~/.vim/plugged')
Plug 'mileszs/ack.vim'
Plug 'romainl/Apprentice'
Plug 'chriskempson/base16-vim'
Plug 'fneu/breezy'
Plug 'vim-scripts/cmdalias.vim'
Plug 'Raimondi/delimitMate'
Plug 'romainl/Disciple'
Plug 'vim-scripts/genindent.vim'
Plug 'sjl/gundo.vim'
Plug 'idris-hackers/idris-vim'
Plug 'wimstefan/Lightning'
Plug 'yegappan/mru'
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'NLKNguyen/papercolor-theme'
Plug 'vim-scripts/promela.vim'
Plug 'AndrewRadev/simple_bookmarks.vim'
Plug 'Keithbsmiley/swift.vim'
Plug 'majutsushi/tagbar'
Plug 'ternjs/tern_for_vim'
Plug 'flazz/vim-colorschemes'
Plug 'reedes/vim-colors-pencil'
Plug 'altercation/vim-colors-solarized'
Plug 'xolox/vim-easytags'
Plug 'tpope/vim-fugitive'
Plug 'whatyouhide/vim-gotham'
Plug 'noahfrederick/vim-hemisu'
Plug 'nathanaelkane/vim-indent-guides'
Plug 'xolox/vim-misc'
Plug 'Shougo/vimproc.vim', {'do' : 'make'}
Plug 'tpope/vim-rhubarb'
Plug 'sjbach/lusty'
if has("nvim")
Plug 'iCyMind/NeoSolarized'
Plug 'vim-airline/vim-airline'
else
Plug 'powerline/powerline', {
\ 'branch': 'develop',
\ 'do': 'python3 setup.py install --user',
\ 'rtp': 'powerline/bindings/vim',
\ }
" plugins
if &compatible
set nocompatible " Be iMproved
endif
" local_vimrc
Plug 'LucHermitte/lh-vim-lib'
Plug 'LucHermitte/local_vimrc'
" Required:
set runtimepath+=/home/jule/.cache/dein/repos/github.com/Shougo/dein.vim
" completion
Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --go-completer --rust-completer --system-boost --system-libclang',
\ 'for': ['c', 'python', 'sh', 'go', 'clojure'],
\ }
" deoplete for haskell
if has('nvim')
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins',
\ }
else
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
let s:toml = '/home/jule/.vim/plugins.toml'
" Required:
if dein#load_state('/home/jule/.cache/dein')
call dein#begin('/home/jule/.cache/dein', ['/home/jule/.vim/vimrc', '/home/jule/.vim/plugins.toml'])
call dein#load_toml(s:toml)
" Let dein manage dein
" Required:
call dein#add('/home/jule/.cache/dein/repos/github.com/Shougo/dein.vim')
" Required:
call dein#end()
call dein#save_state()
endif
" snippets
Plug 'Shougo/neosnippet.vim'
Plug 'honza/vim-snippets'
" LSP
" setting this per-language breaks "let g:LanguageClient_autoStart = 1",
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\ }
" (Optional) Multi-entry selection UI.
Plug 'junegunn/fzf', { 'for': 'haskell' }
" linting/compilation
Plug 'w0rp/ale'
" haskell
" if has("nvim")
" Plug 'parsonsmatt/intero-neovim'
" endif
Plug 'eagletmt/ghcmod-vim', { 'for': 'haskell' }
" completion based on ghc-mod, not LSP
" Plug 'eagletmt/neco-ghc', { 'for': 'haskell' }
Plug 'lukerandall/haskellmode-vim', { 'for': 'haskell' }
Plug 'neovimhaskell/haskell-vim', { 'for': 'haskell' }
Plug 'ucsd-progsys/liquid-types.vim', { 'for': 'haskell' }
Plug 'bitc/lushtags', {
\ 'do': 'bash -c \"cabal clean && cabal sandbox delete && cabal sandbox init && cabal install && cp .cabal-sandbox/bin/lushtags ~/.cabal/bin/lushtags\"',
\ 'for': 'haskell',
\ }
" Plug 'timmytofu/vim-cabal-context', { 'for': 'haskell' }
Plug 'itchyny/vim-haskell-indent', { 'for': 'haskell' }
Plug 'dan-t/vim-hsimport', { 'for': 'haskell' }
" clojure
" Plug '~/.vim/unmanaged-vim-plug/paredit', { 'for': 'clojure' }
" Plug '~/.vim/unmanaged-vim-plug/tslime', { 'for': 'clojure' }
Plug 'guns/vim-slamhound', {'for': 'clojure'}
Plug 'guns/vim-sexp', {'for': 'clojure'}
Plug 'tpope/vim-sexp-mappings-for-regular-people', {'for': 'clojure'}
Plug 'kovisoft/paredit', {'for': 'clojure'}
Plug 'tpope/vim-salve', { 'for': 'clojure' }
Plug 'tpope/vim-projectionist', { 'for': 'clojure' }
Plug 'tpope/vim-dispatch', { 'for': 'clojure' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
Plug 'luochen1990/rainbow', { 'for': 'clojure' }
Plug 'typedclojure/vim-typedclojure', {'for': 'clojure'}
" go
Plug 'garyburd/go-explorer', { 'for': 'go' }
Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries', 'for': 'go' }
" rust
Plug 'rhysd/rust-doc.vim', { 'for': 'rust' }
Plug 'rust-lang/rust.vim', { 'for': 'rust' }
" javascript
Plug 'moll/vim-node', { 'for': 'javascript' }
Plug 'pangloss/vim-javascript', { 'for': 'javascript' }
" python
Plug 'icedwater/vimpython', { 'for': 'python' }
" scala
Plug 'derekwyatt/vim-scala', { 'for': 'scala' }
" unmanaged
Plug '~/.vim/unmanaged-vim-plug/bufonly'
Plug '~/.vim/unmanaged-vim-plug/colorschemedegrade'
Plug '~/.vim/unmanaged-vim-plug/fuzzyfinder'
Plug '~/.vim/unmanaged-vim-plug/L9'
Plug '~/.vim/unmanaged-vim-plug/log'
Plug '~/.vim/unmanaged-vim-plug/ScrollColor'
Plug '~/.vim/unmanaged-vim-plug/txtfmt'
if !has("nvim")
Plug '~/.vim/unmanaged-vim-plug/fontzoom'
endif
" Initialize plugin system
call plug#end()
" ===== further plugin initialization and default config =====
so ~/.vim/plugged/cmdalias.vim/plugin/cmdalias.vim
if !has("nvim")
"powerline
python3 from powerline.vim import setup as powerline_setup
python3 powerline_setup()
python3 del powerline_setup
set laststatus=2
" lj
let g:LustyJugglerSuppressRubyWarning = 1
endif
" lustyexplorer
set hidden
" neosnippet
" Plugin key-mappings.
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
imap <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)
xmap <C-k> <Plug>(neosnippet_expand_target)
" SuperTab like snippets behavior.
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
imap <expr><tab> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<c-n>" : "\<tab>"
smap <expr><tab> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<tab>"
" For conceal markers.
if has('conceal')
set conceallevel=2 concealcursor=niv
endif
" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1
let g:neosnippet#disable_runtime_snippets = 1
" LSP
let g:LanguageClient_autoStart = 0
" deoplete
let g:deoplete#enable_at_startup = 0
" ==== delimitMate ====
let g:delimitMate_matchpairs = "(:),[:],{:}"
let g:delimitMate_expand_cr = 1
let g:delimitMate_expand_space = 1
let g:delimitMate_autoclose = 1
" Solarized stuff
" let g:solarized_termtrans=0
" let g:solarized_degrade=0
" let g:solarized_bold=1
" let g:solarized_underline=1
" let g:solarized_italic=1
" let g:solarized_termcolors=16
" let g:solarized_contrast="normal"
let g:solarized_visibility="high"
" let g:solarized_diffmode="normal"
" let g:solarized_hitrail=0
let g:solarized_menu=1
" youcompleteme
let g:ycm_filetype_blacklist = {
\ 'notes' : 1,
\ 'markdown' : 1,
\ 'text' : 1,
\ 'java' : 1,
\}
let g:ycm_confirm_extra_conf = 0
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_seed_identifiers_with_syntax = 0
" let g:ycm_always_populate_location_list = 1
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_key_invoke_completion = '<C-Space>'
let g:ycm_key_list_select_completion = ['<TAB>']
let g:ycm_key_list_previous_completion = ['<S-TAB>']
" nnoremap <F4> :YcmCompleter GoToDefinition<CR>
let g:ycm_server_log_level = 'error'
let g:ycm_semantic_triggers = {'haskell' : ['. ', '$ ']}
let g:ycm_goto_buffer_command = 'horizontal-split'
" commenting
let NERDSpaceDelims=1
let NERDCreateDefaultMappings=0
" haskellmode, needs to load early
let g:haddock_browser='/usr/bin/firefox'
let g:haddock_browser_callformat='%s file://%s >/dev/null 2>&1 &'
" ==== conque ====
" command aliases
call CmdAlias('t','tabnew')
@@ -264,10 +57,25 @@ call CmdAlias('hotkeys', 'tabnew ~/.vim/hotkeys')
call CmdAlias('TC', 'call ToggleComment()<CR>')
call CmdAlias('TF', 'call ToggleFoldText()<CR>')
call CmdAlias('ctags', '!/usr/bin/ctags -R --langmap=c:.c.h --c++-kinds=+p --c-kinds=+p+x --fields=+i+a+S+t+l+m+n --extra=+q .<CR>')
call CmdAlias('Nf', 'Neoformat')
call CmdAlias('NF', 'Neoformat')
call CmdAlias('nf', 'Neoformat')
call CmdAlias('LS', 'LanguageClientStart')
" global settings
if has('gui_running')
set guioptions -=T
" disable gvim tab
set guioptions-=e
set winaltkeys=no
set guiheadroom=0
else
set termguicolors
endif
set foldmethod=syntax "fold based on indent
set foldnestmax=10 "deepest fold is 10 levels
set nofoldenable "dont fold by default
@@ -284,8 +92,10 @@ set shiftwidth=4
set directory=~/.vimtmp
set modeline
set modelines=1
set autoindent
set laststatus=2
let g:nickID = "hasufell"
let g:nickID = 'hasufell'
" don't yank to buffer on deletion
" vnoremap d "_d
@@ -294,7 +104,7 @@ vnoremap x "_x
nnoremap x "_x
" Syntax
syntax enable
syntax on
" pane navigation
" Use ctrl-[hjkl] to select the active split!
@@ -306,21 +116,20 @@ try
catch
endtry
" ==========colors===========
"set t_Co=256
"let g:solarized_termcolors=256
if has('gui_running')
set background=dark
colorscheme solarized
else
set background=dark
colorscheme solarized
endif
" git-gutter workaround
" https://github.com/airblade/vim-gitgutter/issues/696
autocmd ColorScheme * highlight! link SignColumn LineNr
if has("nvim")
" ==========colors===========
" set t_Co=256
let g:solarized_termcolors=256
set background=dark
colorscheme solarized
if has('nvim')
if exists('g:GtkGuiLoaded')
let g:neosolarized_contrast = "normal"
let g:neosolarized_visibility = "normal"
let g:neosolarized_contrast = 'normal'
let g:neosolarized_visibility = 'normal'
let g:neosolarized_vertSplitBgTrans = 0
let g:neosolarized_bold = 1
let g:neosolarized_underline = 1
@@ -328,8 +137,8 @@ if has("nvim")
set background=dark
colorscheme NeoSolarized
else
let g:neosolarized_contrast = "normal"
let g:neosolarized_visibility = "normal"
let g:neosolarized_contrast = 'normal'
let g:neosolarized_visibility = 'normal'
let g:neosolarized_vertSplitBgTrans = 0
let g:neosolarized_bold = 1
let g:neosolarized_underline = 1
@@ -342,9 +151,6 @@ endif
" ===========================
" Disable annoying auto line break
fu! DisableBr()
set wrap
@@ -352,7 +158,7 @@ fu! DisableBr()
set nolist " list disables linebreak
set textwidth=0
set wrapmargin=0
set fo-=t
set formatoptions-=t
endfu
" Disable line breaks for all file types
@@ -361,15 +167,15 @@ au BufNewFile,BufRead *.* call DisableBr()
" ==========copy/paste===========
function! Paste(mode)
if a:mode == "v"
if a:mode == 'v'
normal gv
normal "_d
normal "+gP
normal l
elseif a:mode == "i"
elseif a:mode == 'i'
set virtualedit=all
normal `^"+gP
let &virtualedit = ""
let &virtualedit = ''
endif
endfunction
@@ -378,7 +184,7 @@ endfunction
function! Select()
set virtualedit=all
normal `^ggVG
let &virtualedit = ""
let &virtualedit = ''
endfunction
" =======================
@@ -427,7 +233,7 @@ endfun
" comment hiding
func! IsComment( lnum )
return synIDattr(synID(a:lnum, match(getline(a:lnum),'\S')+1, 1),"name") =~? 'comment'
return synIDattr(synID(a:lnum, match(getline(a:lnum),'\S')+1, 1),'name') =~? 'comment'
endfun
@@ -468,13 +274,13 @@ endfunction
" vim macro to jump to devhelp topics.
""""""""""""""""""""""""""""""
function! DevHelpCurrentWord()
let word = expand("<cword>")
exe "!devhelp -s " . word . " &"
let word = expand('<cword>')
exe '!devhelp -s ' . word . ' &'
endfunction
function! ManCurrentWord()
let word = expand("<cword>")
exe "!man 3 " . word
let word = expand('<cword>')
exe '!man 3 ' . word
endfunction
" vim:foldmethod=marker:foldlevel=0