diff options
author | coat <coat@sadbeast.com> | 2021-12-10 00:18:46 -0600 |
---|---|---|
committer | coat <coat@sadbeast.com> | 2021-12-10 00:18:46 -0600 |
commit | 748e1e09bd90e38ff8658f7e32782c0ff41902e5 (patch) | |
tree | b1cc9517d46cdec44b2a1e7f42a7b97d202512e2 | |
parent | fcdb6ef7eb46ddb5ffb446f9db16427b4d4ac457 (diff) | |
download | cfg-748e1e09bd90e38ff8658f7e32782c0ff41902e5.tar.gz cfg-748e1e09bd90e38ff8658f7e32782c0ff41902e5.tar.bz2 |
vimrc redo
-rw-r--r-- | .config/sway/config | 6 | ||||
m--------- | .vim/pack/git-plugins/start/agit.vim | 0 | ||||
m--------- | .vim/pack/git-plugins/start/ale | 0 | ||||
m--------- | .vim/pack/git-plugins/start/base16-vim | 0 | ||||
m--------- | .vim/pack/git-plugins/start/deoplete.nvim | 0 | ||||
m--------- | .vim/pack/git-plugins/start/forth.vim | 0 | ||||
m--------- | .vim/pack/git-plugins/start/fzf.vim | 0 | ||||
m--------- | .vim/pack/git-plugins/start/lightline-ale | 0 | ||||
m--------- | .vim/pack/git-plugins/start/lightline.vim | 0 | ||||
m--------- | .vim/pack/git-plugins/start/nvim-yarp | 0 | ||||
m--------- | .vim/pack/git-plugins/start/vim-commentary | 0 | ||||
m--------- | .vim/pack/git-plugins/start/vim-eunuch | 0 | ||||
m--------- | .vim/pack/git-plugins/start/vim-hug-neovim-rpc | 0 | ||||
m--------- | .vim/pack/git-plugins/start/vim-rails | 0 | ||||
m--------- | .vim/pack/git-plugins/start/vim-signify | 0 | ||||
m--------- | .vim/pack/git-plugins/start/vim-toml | 0 | ||||
m--------- | .vim/pack/git-plugins/start/zig.vim | 0 | ||||
-rw-r--r-- | .vimrc | 445 |
18 files changed, 154 insertions, 297 deletions
diff --git a/.config/sway/config b/.config/sway/config index 0fd5a0b..fee563a 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -244,8 +244,10 @@ bindsym XF86AudioPrev exec playerctl previous bindsym XF86MonBrightnessUp exec light -A 5 && light -G | cut -d'.' -f1 > $SWAYSOCK.wob bindsym XF86MonBrightnessDown exec light -U 5 && light -G | cut -d'.' -f1 > $SWAYSOCK.wob -bindsym $mod+shift+p exec $screenclip -bindsym $mod+p exec $screenshot +bindsym $mod+shift+y exec $screenclip +bindsym $mod+y exec $screenshot + +bindsym $mod+p exec passmenu exec mkfifo $SWAYSOCK.wob && tail -f $SWAYSOCK.wob | wob diff --git a/.vim/pack/git-plugins/start/agit.vim b/.vim/pack/git-plugins/start/agit.vim new file mode 160000 +Subproject 8b168d347bc746f772ac99e461099ca20ff1258 diff --git a/.vim/pack/git-plugins/start/ale b/.vim/pack/git-plugins/start/ale new file mode 160000 +Subproject b9744076a1603b37bc861e1aa885bbc052e0ed6 diff --git a/.vim/pack/git-plugins/start/base16-vim b/.vim/pack/git-plugins/start/base16-vim new file mode 160000 +Subproject 6191622d5806d4448fa2285047936bdcee57a09 diff --git a/.vim/pack/git-plugins/start/deoplete.nvim b/.vim/pack/git-plugins/start/deoplete.nvim new file mode 160000 +Subproject 1c40f648d2b00e70beb4c473b7c0e32b633bd9a diff --git a/.vim/pack/git-plugins/start/forth.vim b/.vim/pack/git-plugins/start/forth.vim new file mode 160000 +Subproject 7fa67844fbdb91a3c8e0959e940788582f29286 diff --git a/.vim/pack/git-plugins/start/fzf.vim b/.vim/pack/git-plugins/start/fzf.vim new file mode 160000 +Subproject d6aa21476b2854694e6aa7b0941b8992a906c5e diff --git a/.vim/pack/git-plugins/start/lightline-ale b/.vim/pack/git-plugins/start/lightline-ale new file mode 160000 +Subproject a861f691ac7e40b1b359bc7a147078fa1e0570c diff --git a/.vim/pack/git-plugins/start/lightline.vim b/.vim/pack/git-plugins/start/lightline.vim new file mode 160000 +Subproject a29b8331e1bb36b09bafa30c3aa77e89cdd832b diff --git a/.vim/pack/git-plugins/start/nvim-yarp b/.vim/pack/git-plugins/start/nvim-yarp new file mode 160000 +Subproject b710bf4daccb603a423754794fb446e5fbb5957 diff --git a/.vim/pack/git-plugins/start/vim-commentary b/.vim/pack/git-plugins/start/vim-commentary new file mode 160000 +Subproject 627308e30639be3e2d5402808ce18690557e829 diff --git a/.vim/pack/git-plugins/start/vim-eunuch b/.vim/pack/git-plugins/start/vim-eunuch new file mode 160000 +Subproject 7a48f9ff0ef5f21447b2354ee52dc18b5567e05 diff --git a/.vim/pack/git-plugins/start/vim-hug-neovim-rpc b/.vim/pack/git-plugins/start/vim-hug-neovim-rpc new file mode 160000 +Subproject 93ae38792bc197c3bdffa2716ae493c67a5e795 diff --git a/.vim/pack/git-plugins/start/vim-rails b/.vim/pack/git-plugins/start/vim-rails new file mode 160000 +Subproject 582c4f6cf310b2b3044c366c726a90c0010fc45 diff --git a/.vim/pack/git-plugins/start/vim-signify b/.vim/pack/git-plugins/start/vim-signify new file mode 160000 +Subproject 22f05607d4d7406781af56cafc1121152988c6d diff --git a/.vim/pack/git-plugins/start/vim-toml b/.vim/pack/git-plugins/start/vim-toml new file mode 160000 +Subproject 2c8983cc391287e5e26e015c3ab9c38de9f9b75 diff --git a/.vim/pack/git-plugins/start/zig.vim b/.vim/pack/git-plugins/start/zig.vim new file mode 160000 +Subproject 0adf3a1407bdf60a6c1446fb6a9a05c9823e429 @@ -1,294 +1,157 @@ +" this isn't the 90s anymore set nocompatible -filetype off -" easier to reach than \ -let mapleader=" " - -" vim-plug -if empty(glob('~/.vim/autoload/plug.vim')) - silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs - \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim - autocmd VimEnter * PlugInstall --sync | source $MYVIMRC +" Attempt to determine the type of a file based on its name and possibly its +" contents. Use this to allow intelligent auto-indenting for each filetype, +" and for plugins that are filetype specific. +if has('filetype') + filetype indent plugin on endif -call plug#begin('~/.vim/plugged') - -" git wrapper -Plug 'tpope/vim-fugitive' - -" ack wrapper. :Ack -Plug 'mileszs/ack.vim' - -Plug 'mutewinter/nginx.vim' - -Plug 'scrooloose/nerdcommenter' - -Plug 'mustache/vim-mustache-handlebars' - -" better than ctrl-p -Plug 'junegunn/fzf' -Plug 'junegunn/fzf.vim' - -" Use a leader instead of the actual named binding -nmap <leader>p :Files<cr> - -" Easy bindings for its various modes -nmap <leader>bb :Buffers<cr> - -" rename a buffer. :rename[!] {newname} -Plug 'danro/rename.vim' +" Enable syntax highlighting +if has('syntax') + syntax on +endif -Plug 'neoclide/coc.nvim', {'branch': 'release'} -set shortmess+=c -set signcolumn=number +set encoding=utf-8 -" Use tab for trigger completion with characters ahead and navigate. -" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by -" other plugin before putting this into your config. -inoremap <silent><expr> <TAB> - \ pumvisible() ? "\<C-n>" : - \ <SID>check_back_space() ? "\<TAB>" : - \ coc#refresh() -inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" - -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction - -" Use <c-space> to trigger completion. -inoremap <silent><expr> <c-@> coc#refresh() - -" Make <CR> auto-select the first completion item and notify coc.nvim to -" format on enter, <cr> could be remapped by other vim plugin -inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() - \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -nmap <silent> [g <Plug>(coc-diagnostic-prev) -nmap <silent> ]g <Plug>(coc-diagnostic-next) - -" GoTo code navigation. -nmap <silent> gd <Plug>(coc-definition) -nmap <silent> gy <Plug>(coc-type-definition) -nmap <silent> gi <Plug>(coc-implementation) -nmap <silent> gr <Plug>(coc-references) - -" Use K to show documentation in preview window. -nnoremap <silent> K :call <SID>show_documentation()<CR> - -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('<cword>') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('<cword>') - endif -endfunction - -" Highlight the symbol and its references when holding the cursor. -autocmd CursorHold * silent call CocActionAsync('highlight') - -" Symbol renaming. -nmap <leader>rn <Plug>(coc-rename) - -" Formatting selected code. -xmap <leader>f <Plug>(coc-format-selected) -nmap <leader>f <Plug>(coc-format-selected) - -augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s). - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder. - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') -augroup end - -" Applying codeAction to the selected region. -" Example: `<leader>aap` for current paragraph -xmap <leader>a <Plug>(coc-codeaction-selected) -nmap <leader>a <Plug>(coc-codeaction-selected) - -" Remap keys for applying codeAction to the current buffer. -nmap <leader>ac <Plug>(coc-codeaction) -" Apply AutoFix to problem on the current line. -nmap <leader>qf <Plug>(coc-fix-current) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server. -xmap if <Plug>(coc-funcobj-i) -omap if <Plug>(coc-funcobj-i) -xmap af <Plug>(coc-funcobj-a) -omap af <Plug>(coc-funcobj-a) -xmap ic <Plug>(coc-classobj-i) -omap ic <Plug>(coc-classobj-i) -xmap ac <Plug>(coc-classobj-a) -omap ac <Plug>(coc-classobj-a) - -" Remap <C-f> and <C-b> for scroll float windows/popups. -" Note coc#float#scroll works on neovim >= 0.4.0 or vim >= 8.2.0750 -nnoremap <nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" -nnoremap <nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" -inoremap <nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>" -inoremap <nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>" - -" NeoVim-only mapping for visual mode scroll -" Useful on signatureHelp after jump placeholder of snippet expansion -if has('nvim') - vnoremap <nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#nvim_scroll(1, 1) : "\<C-f>" - vnoremap <nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#nvim_scroll(0, 1) : "\<C-b>" -endif +" Vim with default settings does not allow easy switching between multiple files +" in the same editor window. Users can use multiple split windows or multiple +" tab pages to edit multiple files, but it is still best to enable an option to +" allow easier switching between files. +" +" One such option is the 'hidden' option, which allows you to re-use the same +" window and switch from an unsaved buffer without saving it first. Also allows +" you to keep an undo history for multiple files when re-using the same window +" in this way. Note that using persistent undo also lets you undo in multiple +" files even in the same window, but is less efficient and is actually designed +" for keeping undo history after closing Vim entirely. Vim will complain if you +" try to quit without saving, and swap files will keep you safe if your computer +" crashes. +set hidden -" Use CTRL-S for selections ranges. -" Requires 'textDocument/selectionRange' support of language server. -nmap <silent> <C-s> <Plug>(coc-range-select) -xmap <silent> <C-s> <Plug>(coc-range-select) - -" Add `:Format` command to format current buffer. -command! -nargs=0 Format :call CocAction('format') - -" Add `:Fold` command to fold current buffer. -command! -nargs=? Fold :call CocAction('fold', <f-args>) - -" Add `:OR` command for organize imports of the current buffer. -command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') - -" Add (Neo)Vim's native statusline support. -" NOTE: Please see `:h coc-status` for integrations with external plugins that -" provide custom statusline: lightline.vim, vim-airline. -set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} - -" Mappings for CoCList -" Show all diagnostics. -nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr> -" Manage extensions. -nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr> -" Show commands. -nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr> -" Find symbol of current document. -nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr> -" Search workspace symbols. -nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr> -" Do default action for next item. -nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR> -" Do default action for previous item. -nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR> -" Resume latest coc list. -"nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR> - -Plug 'chaquotay/ftl-vim-syntax' - -Plug 'itchyny/lightline.vim' -let g:lightline = { - \ 'colorscheme': 'gruvbox', - \ } +" Better command-line completion +set wildmenu -Plug 'scrooloose/nerdtree' -nnoremap <silent><Leader>. :NERDTreeToggle<CR> -autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif +" Show partial commands in the last line of the screen +set showcmd -Plug 'vim-scripts/forth.vim' +" Highlight searches (use <leader>/ to temporarily turn off highlighting) +set hlsearch -Plug 'rust-lang/rust.vim' -let g:rustfmt_autosave = 1 +" Use case insensitive search, except when using capital letters +set ignorecase +set smartcase -Plug 'cespare/vim-toml' +" Allow backspacing over autoindent, line breaks and start of insert action +set backspace=indent,eol,start -Plug 'airblade/vim-gitgutter' -nnoremap <silent><Leader>gn :GitGutterNextHunk<CR> -nnoremap <silent><Leader>gp :GitGutterPrevHunk<CR> +" When opening a new line and no filetype-specific indenting is enabled, keep +" the same indent as the line you're currently on. Useful for READMEs, etc. +set autoindent -Plug 'majutsushi/tagbar' -nnoremap <silent><Leader>tb :TagbarToggle<CR> +" Stop certain movements from always going to the first character of a line. +" While this behaviour deviates from that of Vi, it does what most users +" coming from other editors would expect. +set nostartofline -Plug 'tpope/vim-rails' +" Display the cursor position on the last line of the screen or in the status +" line of a window +set ruler -Plug 'morhetz/gruvbox' -let g:gruvbox_contrast_dark = 'hard' +" Always display the status line, even if only one window is displayed +set laststatus=2 -" gitk in vim basically -Plug 'cohama/agit.vim' +" Instead of failing a command because of unsaved changes, instead raise a +" dialogue asking if you wish to save changed files. +set confirm -Plug 'jeetsukumaran/vim-buffergator' -" Use the right side of the screen -let g:buffergator_viewport_split_policy = 'R' +" Use visual bell instead of beeping when doing something wrong +set visualbell -" I want my own keymappings... -let g:buffergator_suppress_keymaps = 1 +" And reset the terminal code for the visual bell. If visualbell is set, and +" this line is also included, vim will neither flash nor beep. If visualbell +" is unset, this does nothing. +set t_vb= -" Looper buffers -"let g:buffergator_mru_cycle_loop = 1 +" Enable use of the mouse for all modes +if has('mouse') + set mouse=a +endif -" Go to the previous buffer open -nmap <leader>jj :BuffergatorMruCyclePrev<cr> +" Display line numbers on the left +set number +set relativenumber -" Go to the next buffer open -nmap <leader>kk :BuffergatorMruCycleNext<cr> +" Quickly time out on keycodes, but never time out on mappings +set notimeout ttimeout ttimeoutlen=200 -" View the entire list of buffers open -nmap <leader>bl :BuffergatorOpen<cr> +" Use <F11> to toggle between 'paste' and 'nopaste' +set pastetoggle=<F11> +" +" Leave paste mode so I don't forget +au InsertLeave * set nopaste -" Asynchronous Lint Engine -Plug 'w0rp/ale' +" Indentation settings for using 4 spaces instead of tabs. +" Do not change 'tabstop' from its default value of 8 with this setup. +set shiftwidth=4 +set softtabstop=4 +set expandtab -" Unixy stuff -Plug 'tpope/vim-eunuch' +" Don't update the screen when executing macros +set lazyredraw -Plug 'ziglang/zig.vim' +" Easier to reach than \ +let mapleader=" " -call plug#end() +" plugin config -filetype plugin indent on -set rtp+=$GOROOT/misc/vim +nmap <silent> <C-k> <Plug>(ale_previous_wrap) +nmap <silent> <C-j> <Plug>(ale_next_wrap) -syntax enable +" fzf +nmap <leader>p :Files<cr> +nmap <leader>bb :Buffers<cr> -set encoding=utf-8 -set showcmd +" lightline +let g:lightline = { + \ 'colorscheme': 'Tomorrow_Night', + \ } -set pastetoggle=<F2> -" leave paste mode so i don't forget -au InsertLeave * set nopaste +let g:lightline.component_expand = { + \ 'linter_checking': 'lightline#ale#checking', + \ 'linter_infos': 'lightline#ale#infos', + \ 'linter_warnings': 'lightline#ale#warnings', + \ 'linter_errors': 'lightline#ale#errors', + \ 'linter_ok': 'lightline#ale#ok', + \ } -" whitespace -set wrap " don't wrap lines -set textwidth=79 -set formatoptions=qrn1 -set tabstop=2 shiftwidth=2 " a tab is two spaces (or set this to 4) -set expandtab " use spaces, not tabs (optional) -set backspace=indent,eol,start " backspace through everything in insert mode +let g:lightline.component_type = { + \ 'linter_checking': 'right', + \ 'linter_infos': 'right', + \ 'linter_warnings': 'warning', + \ 'linter_errors': 'error', + \ 'linter_ok': 'right', + \ } +let g:lightline.active = { + \ 'right': [ [ 'linter_checking', 'linter_errors', 'linter_warnings', 'linter_infos', 'linter_ok' ], + \ [ 'lineinfo' ], + \ [ 'percent' ], + \ [ 'fileformat', 'fileencoding', 'filetype'] ] } -set lazyredraw " don't update the screen when executing macros +let g:lightline#ale#indicator_checking = "\uf110" +let g:lightline#ale#indicator_infos = "\uf129" +let g:lightline#ale#indicator_warnings = "\uf071" +let g:lightline#ale#indicator_errors = "\uf05e" +let g:lightline#ale#indicator_ok = "\uf00c" -set completeopt-=preview " hide the Scratch window when autocompleting +" end plugin config -" searching -set hlsearch " highlight matches -set incsearch " incremental searching -set ignorecase " searches are case insensitive... -set smartcase " ... unless they contain at least one capital letter -set gdefault +set formatoptions=ctqrn1 set showmatch " Show matching brackets. set matchtime=5 " Bracket blinking. -set novisualbell " No blinking -set noerrorbells " No noise. -set laststatus=2 " Always show status line. -set vb t_vb= " disable any beeps or flashes on error -set ruler -set showcmd " Display an incomplete command in the lower right corner of the Vim window -set shortmess=atI " Shortens messages - -set nolist " Display unprintable characters f12 - switches -set listchars=tab:·\ ,eol:¶,trail:·,extends:»,precedes:« " Unprintable chars mapping - -set foldenable " Turn on folding -set foldmethod=marker " Fold on the marker -set foldlevel=100 " Don't autofold anything (but I can still fold manually) -set foldopen=block,hor,mark,percent,quickfix,tag " what movements open folds " start scrolling when we're 8 lines away from margins set scrolloff=8 @@ -298,34 +161,26 @@ set sidescroll=1 set noswapfile set nobackup set nowb -set hidden " Automatically insert the current comment leader after hitting 'o' or 'O' in Normal mode. -set fo+=o +"set fo+=o " Do not automatically insert a comment leader after an enter -set fo-=r +"set fo-=r " Do no auto-wrap text using textwidth (does not apply to comments) -set fo-=t - -set mouse=a - -" make mouse work in st -set ttymouse=xterm2 +"set fo-=t set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/vendor/*,*/bin/*,*/node_modules/* -" quicker update time for things like tagbar and coc -set updatetime=300 +" quicker async update time +set updatetime=100 " taller vertical bar for vsplits set fillchars+=vert:│ -" company standard bleh -autocmd FileType java setlocal shiftwidth=4 tabstop=4 - -autocmd FileType go setlocal noexpandtab +set termguicolors -autocmd BufNewFile,BufRead *.shl set syntax=sh +set undodir=~/.vim/backups +set undofile " When opening a file, always jump to the last cursor position autocmd BufReadPost * @@ -333,9 +188,6 @@ autocmd BufReadPost * \ exe "normal g'\"" | \ endif -" easily copy to system clipboard -vnoremap <C-c> "+y - " remove annoying help window inoremap <F1> <nop> nnoremap <F1> <nop> @@ -355,10 +207,6 @@ nnoremap <c-l> <c-w>l nnoremap <c-n> :cnext<CR> nnoremap <c-b> :cprevious<CR> -" hulk smash escape -inoremap jk <Esc> -inoremap kj <Esc> - " buffer switching noremap <left> :bp<CR> noremap <right> :bn<CR> @@ -366,7 +214,6 @@ noremap <right> :bn<CR> " unhighlight search results noremap <silent><Leader>/ :nohls<CR> -noremap <silent><Leader>x :%!xmllint --format -<CR> " reselect visual block after indent/outdent vnoremap < <gv vnoremap > >gv @@ -378,25 +225,33 @@ cmap w!! %!sudo tee > /dev/null % " This replicates the idea of closing a tab nmap <leader>bq :bp <BAR> bd #<CR> -"autocmd vimenter * ++nested colorscheme gruvbox -set termguicolors -let g:gruvbox_italic=1 -colorscheme gruvbox +" Go to the previous buffer open +nmap <leader>jj :bp<cr> -if &t_Co >= 256 || has('gui-running') - set background=dark -endif +" Go to the next buffer open +nmap <leader>kk :bn<cr> -set nu -if version >= 703 - set undodir=~/.vim/backups - set undofile - set relativenumber -endif +colorscheme base16-tomorrow-night + +let g:ale_set_balloons=1 -highlight clear SignColumn +" Load all plugins now. +" Plugins need to be added to runtimepath before helptags can be generated. +packloadall +" Load all of the helptags now, after plugins have been loaded. +" All messages and errors will be ignored. +silent! helptags ALL -set t_ku=OA -set t_kd=OB -set t_kr=OC -set t_kl=OD +" ale + deoplete +call deoplete#enable() +call deoplete#custom#option('sources', { +\ '_': ['ale'], +\}) +inoremap <silent><expr> <TAB> + \ pumvisible() ? "\<C-n>" : + \ <SID>check_back_space() ? "\<TAB>" : + \ deoplete#manual_complete() + function! s:check_back_space() abort "{{{ + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~ '\s' + endfunction"}}} |