Compare commits

..

No commits in common. "ada" and "master" have entirely different histories.
ada ... master

60 changed files with 519 additions and 803 deletions

109
.gitmodules vendored
View File

@ -1,109 +0,0 @@
[submodule "pack/vendor/start/fzf"]
path = pack/vendor/start/fzf
url = https://github.com/junegunn/fzf
[submodule "pack/vendor/start/fzf.vim"]
path = pack/vendor/start/fzf.vim
url = https://github.com/junegunn/fzf.vim
[submodule "pack/vendor/start/vim-poweryank"]
path = pack/vendor/start/vim-poweryank
url = https://github.com/haya14busa/vim-poweryank
[submodule "pack/vendor/start/undotree"]
path = pack/vendor/start/undotree
url = https://github.com/mbbill/undotree
[submodule "pack/vendor/start/powerline"]
path = pack/vendor/start/powerline
url = https://github.com/powerline/powerline
[submodule "pack/vendor/start/vim-fetch"]
path = pack/vendor/start/vim-fetch
url = https://github.com/wsdjeg/vim-fetch
[submodule "pack/vendor/start/vim-eunuch"]
path = pack/vendor/start/vim-eunuch
url = https://github.com/tpope/vim-eunuch
[submodule "pack/vendor/start/vim-commentary"]
path = pack/vendor/start/vim-commentary
url = https://github.com/tpope/vim-commentary
[submodule "pack/vendor/start/vim-rooter"]
path = pack/vendor/start/vim-rooter
url = https://github.com/airblade/vim-rooter
[submodule "pack/vendor/start/nerdtree"]
path = pack/vendor/start/nerdtree
url = https://github.com/scrooloose/nerdtree
[submodule "pack/vendor/start/vim-mucomplete"]
path = pack/vendor/start/vim-mucomplete
url = https://github.com/lifepillar/vim-mucomplete
[submodule "pack/vendor/start/nerdtree-git-plugin"]
path = pack/vendor/start/nerdtree-git-plugin
url = https://github.com/Xuyuanp/nerdtree-git-plugin
[submodule "pack/vendor/start/vim-fugitive"]
path = pack/vendor/start/vim-fugitive
url = https://github.com/tpope/vim-fugitive
[submodule "LanguageClient-neovim"]
path = pack/vendor/start/LanguageClient-neovim
url = https://github.com/autozimu/LanguageClient-neovim
branch = next
[submodule "pack/vendor/start/miramare"]
path = pack/vendor/start/miramare
url = https://github.com/franbach/miramare
[submodule "pack/vendor/start/vim-gitgo"]
path = pack/vendor/start/vim-gitgo
url = https://github.com/bitfield/vim-gitgo
[submodule "pack/vendor/start/melange"]
path = pack/vendor/start/melange
url = https://github.com/savq/melange
[submodule "pack/vendor/start/vim-indent-guides"]
path = pack/vendor/start/vim-indent-guides
url = https://github.com/nathanaelkane/vim-indent-guides
[submodule "pack/vendor/start/auto-pairs"]
path = pack/vendor/start/auto-pairs
url = https://github.com/jiangmiao/auto-pairs
[submodule "pack/vendor/start/black"]
path = pack/vendor/start/black
url = https://github.com/ambv/black
[submodule "pack/vendor/start/yaml-vim"]
path = pack/vendor/start/yaml-vim
url = https://github.com/mrk21/yaml-vim
[submodule "pack/vendor/start/vim-go"]
path = pack/vendor/start/vim-go
url = https://github.com/fatih/vim-go
[submodule "pack/vendor/start/vim-toml"]
path = pack/vendor/start/vim-toml
url = https://github.com/cespare/vim-toml
[submodule "pack/vendor/start/Dockerfile.vim"]
path = pack/vendor/start/Dockerfile.vim
url = https://github.com/ekalinin/Dockerfile.vim
[submodule "pack/vendor/start/rust.vim"]
path = pack/vendor/start/rust.vim
url = https://github.com/rust-lang/rust.vim
[submodule "pack/vendor/start/ale"]
path = pack/vendor/start/ale
url = https://github.com/dense-analysis/ale
[submodule "pack/vendor/start/deoplete.nvim"]
path = pack/vendor/start/deoplete.nvim
url = https://github.com/Shougo/deoplete.nvim
[submodule "pack/vendor/start/nvim-yarp"]
path = pack/vendor/start/nvim-yarp
url = https://github.com/roxma/nvim-yarp
[submodule "pack/vendor/start/vim-hug-neovim-rpc"]
path = pack/vendor/start/vim-hug-neovim-rpc
url = https://github.com/roxma/vim-hug-neovim-rpc
[submodule "pack/vendor/start/deoplete-go"]
path = pack/vendor/start/deoplete-go
url = https://github.com/deoplete-plugins/deoplete-go
[submodule "pack/vendor/start/deoplete-jedi"]
path = pack/vendor/start/deoplete-jedi
url = https://github.com/deoplete-plugins/deoplete-jedi
[submodule "pack/vendor/start/indentLine"]
path = pack/vendor/start/indentLine
url = https://github.com/Yggdroot/indentLine
[submodule "pack/vendor/start/docker-compose.vim"]
path = pack/vendor/start/docker-compose.vim
url = https://github.com/skanehira/docker-compose.vim
[submodule "pack/vendor/start/vim-powershell.git"]
path = pack/vendor/start/vim-powershell.git
url = https://github.com/corbob/vim-powershell.git
[submodule "pack/vendor/start/goyo.vim.git"]
path = pack/vendor/start/goyo.vim.git
url = https://github.com/junegunn/goyo.vim.git
[submodule "pack/vendor/start/limelight.vim.git"]
path = pack/vendor/start/limelight.vim.git
url = https://github.com/junegunn/limelight.vim.git

View File

@ -10,15 +10,4 @@ sudo pacman -Sy \
mypy \
python-greenlet
echo "Install from AUR: typescript-language-server"
pip3 install --user pynvim
mkdir .{swp,backup,undo}
git submodule update --init
THISDIR=$PWD
cd pack/vendor/start/LanguageClient-neovim
bash install.sh
cd $THISDIR

View File

@ -1,40 +0,0 @@
function! s:getValaProjectRoot(buffer) abort
let l:cur_path_abs = fnamemodify(a:buffer, ':p:h')
let l:maybe_doap_file = expand(l:cur_path_abs . s:sep . '*.doap')
if !empty(l:maybe_doap_file)
return l:cur_path_abs
endif
for l:path in ale#path#Upwards(expand('#' . a:buffer . ':p:h'))
if filereadable(expand(l:path . '*.doap'))
return l:path
endif
endfor
return ''
endfunction
function! s:curPath(buffer) abort
let l:cur_path = fnamemodify(a:buffer, ':p:h')
return l:cur_path
endfunction
call ale#linter#Define('vala', {
\ 'name': 'vala-language-server',
\ 'lsp': 'stdio',
\ 'output_stream': 'both',
\ 'executable': '/usr/bin/vala-language-server',
\ 'command': '%e',
\ 'project_root': function('s:getValaProjectRoot'),
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})
call ale#linter#Define('promql', {
\ 'name': 'promql-langserver',
\ 'lsp': 'stdio',
\ 'output_stream': 'both',
\ 'executable': '/usr/local/bin/promql-langserver',
\ 'command': '%e',
\ 'project_root': function('s:curPath'),
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})

View File

@ -1,9 +0,0 @@
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit',
\ }
let opts = fzf#vim#with_preview().options + [
\ '--expect='.join(keys(fzf_action), ','),
\ ]
let g:LanguageClient_fzfOptions = opts

View File

@ -1,7 +0,0 @@
function s:vertopen_url()
normal! "uyiW
let mycommand = "reader " . @u
execute "vertical terminal " . mycommand
endfunction
noremap <Plug>vertopen_url : call <SID>vertopen_url()<CR>
nmap gx <Plug>vertopen_url

View File

@ -1,22 +0,0 @@
" air-line
"let g:airline_powerline_fonts = 1
if !exists('g:airline_symbols') && !g:is_tty
let g:airline_symbols = {}
endif
" unicode symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''"
" let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
" let g:airline_symbols.paste = 'Þ'
" let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'

View File

@ -1,75 +0,0 @@
""" ALE configuration
let g:ale_completion_enabled = 0
let g:ale_sign_error = '->'
let g:ale_sign_warning = '~>'
" let g:ale_sign_error = '✘'
" let g:ale_sign_warning = '⚠'
let g:ale_elixir_elixir_ls_release = '/usr/lib/elixir-ls/'
let g:ale_java_javalsp_executable = '/usr/bin/java-language-server'
let g:ale_linters = {
\ 'javascript': ['eslint'],
\ 'javascriptreact': ['eslint'],
\ 'typescript': ['tsserver', 'tslint'],
\ 'typescriptreact': ['tsserver', 'tslint'],
\ 'python': ['pyright'],
\ 'rust': ['rls'],
\ 'elixir': ['elixir-ls'],
\ 'go': ['gopls'],
\ 'json': ['jsonlint'],
\ 'dockerfile': ['hadolint'],
\ 'vala': ['vala-language-server'],
\ 'scss': ['eslint'],
\ 'elm': ['elm_ls'],
\ 'sql': ['sql-lint'],
\ 'promql': ['promql-langserver'],
\ 'java': ['javalsp'],
\ 'ps1': ['powershell'],
\}
let g:ale_fixers = {
\ 'javascript': ['prettier'],
\ 'typescript': ['prettier'],
\ 'javascriptreact': ['prettier'],
\ 'typescriptreact': ['prettier'],
\ 'python': ['black'],
\ 'rust': ['rustfmt'],
\ 'elixir': ['mix_format'],
\ 'graphql': ['prettier'],
\ 'perl': ['perltidy'],
\ 'go': ['gofmt'],
\ 'json': ['prettier'],
\ 'vala': ['uncrustify'],
\ 'dart': ['dartfmt'],
\ 'scss': ['prettier'],
\}
let g:ale_rust_rls_config = {
\ 'rust': {
\ 'clippy_preference': 'on'
\ }
\ }
let g:ale_echo_msg_error_str = 'Err'
let g:ale_echo_msg_warning_str = 'Warn'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
let g:ale_go_langserver_executable = 'gopls'
" let g:ale_go_revive_executable = '/usr/bin/revive'
" let g:ale_go_revive_options = '-config ~/.vim/revive.toml'
let g:airline#extensions#ale#enabled = 1
" let g:ale_completion_enabled = 1
let g:ale_lint_on_enter = 0
let g:ale_lint_on_text_changed = 'never'
highlight ALEErrorSign ctermbg=NONE ctermfg=red
highlight ALEWarningSign ctermbg=NONE ctermfg=yellow
let g:ale_linters_explicit = 1
let g:ale_lint_on_save = 1
let g:ale_fix_on_save = 1
let g:ale_floating_preview = 1
let g:ale_floating_window_border = ['│', '─', '╭', '╮', '╯', '╰']

View File

@ -1,5 +0,0 @@
""" deoplete
let g:deoplete#enable_at_startup = 1
" let g:deoplete#sources = {'go': ['deoplete-go'], 'python': ['deoplete-jedi']}
" call deoplete#custom#option('omni_patterns', { 'go': '[^. *\t]\.\w*' })

View File

@ -1,15 +0,0 @@
""" FZF
let g:fzf_commits_log_options = '--graph --color=always --format="%C(auto)%h%d %s %C(black)%C(bold)%cr"'
let g:fzf_action = {
\ 'ctrl-t': 'tabedit',
\ 'ctrl-v': 'vsplit',
\ 'ctrl-x': 'split' }
let g:fzf_buffers_jump = 1
let g:fzf_commands_expect = 'alt-enter,ctrl-x'
" disable popup window
" let g:fzf_layout = { 'down': '40%' }

View File

@ -1,49 +0,0 @@
""" indentation seek functions
" Jump to the next or previous line that has the same level or a lower
" level of indentation than the current line.
"
" exclusive (bool): true: Motion is exclusive
" false: Motion is inclusive
" fwd (bool): true: Go to next line
" false: Go to previous line
" lowerlevel (bool): true: Go to line with lower indentation level
" false: Go to line with the same indentation level
" skipblanks (bool): true: Skip blank lines
" false: Don't skip blank lines
function! NextIndent(exclusive, fwd, lowerlevel, skipblanks)
let line = line('.')
let column = col('.')
let lastline = line('$')
let indent = indent(line)
let stepvalue = a:fwd ? 1 : -1
while (line > 0 && line <= lastline)
let line = line + stepvalue
if ( ! a:lowerlevel && indent(line) == indent ||
\ a:lowerlevel && indent(line) < indent)
if (! a:skipblanks || strlen(getline(line)) > 0)
if (a:exclusive)
let line = line - stepvalue
endif
exe line
exe "normal " column . "|"
return
endif
endif
endwhile
endfunction
" Moving back and forth between lines of same or lower indentation.
nnoremap <silent> [l :call NextIndent(0, 0, 0, 1)<CR>
nnoremap <silent> ]l :call NextIndent(0, 1, 0, 1)<CR>
nnoremap <silent> [L :call NextIndent(0, 0, 1, 1)<CR>
nnoremap <silent> ]L :call NextIndent(0, 1, 1, 1)<CR>
vnoremap <silent> [l <Esc>:call NextIndent(0, 0, 0, 1)<CR>m'gv''
vnoremap <silent> ]l <Esc>:call NextIndent(0, 1, 0, 1)<CR>m'gv''
vnoremap <silent> [L <Esc>:call NextIndent(0, 0, 1, 1)<CR>m'gv''
vnoremap <silent> ]L <Esc>:call NextIndent(0, 1, 1, 1)<CR>m'gv''
onoremap <silent> [l :call NextIndent(0, 0, 0, 1)<CR>
onoremap <silent> ]l :call NextIndent(0, 1, 0, 1)<CR>
onoremap <silent> [L :call NextIndent(1, 0, 1, 1)<CR>
onoremap <silent> ]L :call NextIndent(1, 1, 1, 1)<CR>

View File

@ -1,53 +0,0 @@
""" LanguageClient
" Required for operations modifying multiple buffers like rename.
set hidden
" let g:LanguageClient_serverCommands = {
" \ 'javascript': ['/usr/local/bin/javascript-typescript-stdio'],
" \ 'javascript.jsx': ['tcp://127.0.0.1:2089'],
" \ 'python': ['/usr/local/bin/pyls'],
" \ 'ruby': ['~/.rbenv/shims/solargraph', 'stdio'],
" \ }
let g:LanguageClient_serverCommands = {
\ 'rust': ['/usr/bin/rustup', 'run', 'stable', 'rls'],
\ 'elixir': ['/usr/lib/elixir-ls/language_server.sh'],
\ 'elm': ['/usr/bin/elm-language-server'],
\ 'python': ['/usr/bin/pyls'],
\ 'go': ['/usr/bin/gopls'],
\ 'promql': ['/usr/local/bin/promql-langserver'],
\ 'java': ['/usr/bin/java-language-server'],
\ 'typescript': ['/usr/bin/typescript-language-server', '--stdio'],
\ 'typescriptreact': ['/usr/bin/typescript-language-server', '--stdio'],
\ }
let g:LanguageClient_rootMarkers = {
\ 'elm': ['elm.json'],
\ 'typescript': ['package.json'],
\ 'typescriptreact': ['package.json'],
\ }
let g:LanguageClient_hoverPreview = 'always'
let g:LanguageClient_loggingFile = expand('~/.vim/LanguageClient.log')
function LC_maps()
if has_key(g:LanguageClient_serverCommands, &filetype)
nnoremap <F5> :call LanguageClient_contextMenu()<CR>
nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> gdd :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> gdi :call LanguageClient#textDocument_implementation()<CR>
nnoremap <silent> gdt :call LanguageClient#textDocument_typeDefinition()<CR>
nnoremap <silent> gds :call LanguageClient#textDocument_documentSymbol()<CR>
nnoremap <silent> gdr :call LanguageClient#textDocument_references()<CR>
nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
" noremap <F5> <Plug>(lcn-menu)
" noremap <buffer> <silent> K <Plug>(lcn-hover)
" noremap <buffer> <silent> gd <Plug>(lcn-definition)
" noremap <buffer> <silent> <F2> <Plug>(lcn-rename)
set formatexpr=LanguageClient#textDocument_rangeFormatting_sync()
endif
endfunction
autocmd FileType * call LC_maps()

View File

@ -1,6 +0,0 @@
set completeopt+=menuone
set completeopt+=noselect
" set completeopt+=noinsert
set shortmess+=c " Shut off completion messages
set belloff+=ctrlg " If Vim beeps during completion
let g:mucomplete#enable_auto_at_startup = 1

View File

@ -1,22 +0,0 @@
""" neosnippets
" 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>
" \ pumvisible() ? "\<C-n>" :
" \ neosnippet#expandable_or_jumpable() ?
" \ "\<Plug>(neosnippet_expand_or_jump)" : "\<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

View File

@ -1,13 +0,0 @@
""" NERDTree
" Close NERDTree automatically after opening a file with it.
let g:NERDTreeQuitOnOpen = 1
" Use a single click for opening things in NERDTree
let g:NERDTreeMouseMode = 3
let g:NERDTreeMapActivateNode = '<Space>'
let g:NERDTreeIgnore = [
\ '\.pyc$',
\ '^__pycache__$',
\ '^\.mypy_cache$',
\]

View File

@ -1,168 +0,0 @@
" vim-plug init
if empty(glob('~/.vim/autoload/plug.vim'))
system('curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim')
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin('~/.vim/bundle')
""" Install Plugs
" clipboard
Plug 'haya14busa/vim-poweryank'
" undotree
Plug 'mbbill/undotree'
" vim-fetch
Plug 'wsdjeg/vim-fetch'
" powerline-vim
Plug 'powerline/powerline'
" vim-eunuch
Plug 'tpope/vim-eunuch'
" vim-commentary
Plug 'tpope/vim-commentary'
" vim-markbar
Plug 'Yilin-Yang/vim-markbar'
" vim-rooter
Plug 'airblade/vim-rooter'
" win-resizer
Plug 'simeji/winresizer'
" Deoplete.vim
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
Plug 'deoplete-plugins/deoplete-go', { 'do': 'make' }
Plug 'deoplete-plugins/deoplete-jedi'
" neosnippets
"Plug 'Shougo/neosnippet.vim'
"Plug 'Shougo/neosnippet-snippets'
" fzf
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
" Peekaboo
Plug 'junegunn/vim-peekaboo'
" NERDTree
Plug 'scrooloose/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'
" NERTCommenter
Plug 'scrooloose/nerdcommenter'
" tagbar
" Plug 'majutsushi/tagbar'
" vim-fugitive
Plug 'tpope/vim-fugitive'
" dadbod (sql)
Plug 'tpope/vim-dadbod'
" yara
Plug 'yaunj/vim-yara'
" Dart
" Plug 'bartekd/vim-dart'
Plug 'dart-lang/dart-vim-plugin'
" Kotlin
Plug 'udalov/kotlin-vim'
" Elixir
Plug 'elixir-editors/vim-elixir'
" Plug 'GrzegorzKozub/vim-elixirls', { 'do': ':ElixirLsCompileSync' }
" Elm
"Plug 'elmcast/elm-vim'
"Plug 'andys8/vim-elm-syntax'
"let g:elm_format_autosave = 1
"Plug 'Zaptic/elm-vim'
" GraphQL
Plug 'jparise/vim-graphql'
" Scss
Plug 'cakebaker/scss-syntax.vim'
" Vala
Plug 'arrufat/vala.vim'
" ALE
"Plug 'w0rp/ale'
Plug 'dense-analysis/ale'
" LanguageClient
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\ }
" vim-airline
"Plug 'vim-airline/vim-airline'
"Plug 'vim-airline/vim-airline-themes'
" Colorschemes
Plug 'junegunn/seoul256.vim'
Plug 'scwood/vim-hybrid'
Plug 'kristijanhusak/vim-hybrid-material'
Plug 'srcery-colors/srcery-vim'
Plug 'nightsense/cosmic_latte'
Plug 'rafi/awesome-vim-colorschemes'
Plug 'altercation/vim-colors-solarized'
Plug 'franbach/miramare'
Plug 'sainnhe/edge'
Plug 'ayu-theme/ayu-vim'
Plug 'bitfield/vim-gitgo'
Plug 'savq/melange'
Plug 'sonph/onehalf', { 'rtp': 'vim' }
" indent-guides
Plug 'nathanaelkane/vim-indent-guides'
" Dockerfile.vim
Plug 'ekalinin/Dockerfile.vim'
" YAML
Plug 'mrk21/yaml-vim'
" Python
Plug 'ambv/black'
" TOML
Plug 'cespare/vim-toml'
" Autoclose
Plug 'jiangmiao/auto-pairs'
" vim-go
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
" vim-multiple-cursor
Plug 'terryma/vim-multiple-cursors'
" rust.vim
" Plug 'rust-lang/rust.vim'
" nginx.vim
Plug 'chr4/nginx.vim'
" typescript
Plug 'HerringtonDarkholme/yats.vim'
"Plug 'leafgarland/typescript-vim'
Plug 'ianks/vim-tsx'
Plug 'maxmellon/vim-jsx-pretty'
"Plug 'mhartington/nvim-typescript', {'do': './install.sh'}
call plug#end()

View File

@ -1,2 +0,0 @@
""" powerline
let g:powerline_pycmd = "py3"

View File

@ -1,44 +0,0 @@
" ripgrep
" if executable('ug')
" let $FZF_DEFAULT_COMMAND = 'ug'
" set grepprg=ugrep\ -RInk\ -j\ -u\ --tabs=1\ --ignore-files
" set grepformat=%f:%l:%c:%m,%f+%l+%c+%m,%-G%f\\\|%l\\\|%c\\\|%m
" endif
if executable('rg')
let $RG_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"'
set grepprg=rg\ --vimgrep
command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --glob "!.git/*" --color "always" '.shellescape(<q-args>).'| tr -d "\017"', 1, <bang>0)
endif
" Search in files with ripgrep + preview with bat
function! Fzf_dev()
let l:fzf_files_options = '--preview "bat --style=numbers,changes --color always {2..-1} | head -'.&lines.'"'
function! s:files()
let l:files = split(system($RG_DEFAULT_COMMAND), '\n')
return s:format_list(l:files)
endfunction
function! s:format_list(candidates)
let l:result = []
for l:candidate in a:candidates
let l:filename = fnamemodify(l:candidate, ':p:t')
let l:icon = ">-"
call add(l:result, printf('%s %s', l:icon, l:candidate))
endfor
return l:result
endfunction
function! s:edit_file(item)
let l:pos = stridx(a:item, ' ')
let l:file_path = a:item[pos+1:-1]
execute 'silent e' l:file_path
endfunction
call fzf#run({
\ 'source': <sid>files(),
\ 'sink': function('s:edit_file'),
\ 'options': '-m ' . l:fzf_files_options,
\ 'down': '40%' })
endfunction

View File

@ -1,37 +0,0 @@
""" Themes and colors
if exists('+termguicolors')
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
endif
" source $VIMHOME/config/themes/melange.vim
source $VIMHOME/config/themes/miramare.vim
function! s:colorscheme_gitgo()
hi Search guibg=Green
endfunction
function! s:colorscheme_miramare()
hi Search guibg=Purple
endfunction
autocmd! ColorScheme gitgo call s:colorscheme_gitgo()
autocmd! ColorScheme miramare call s:colorscheme_miramare()
function! LightOrDarkness()
if &background==?"dark"
set background=light
colorscheme gitgo
elseif &background==?"light"
set background=dark
execute 'colorscheme ' . g:colorscheme
endif
endfunction
" Needed for kitty not to f*ck up the background color
let &t_ut=''
" virtualedit
"set virtualedit=all

View File

@ -1,8 +0,0 @@
""" vim-go
let g:go_highlight_types = 1
let g:go_highlight_fields = 1
let g:go_highlight_functions = 1
let g:go_highlight_function_calls = 1
let g:go_imports_autosave = 0
let g:go_doc_popup_window = 1

View File

@ -1,4 +0,0 @@
""" vim-rooter
"let g:rooter_change_directory_for_non_project_files = 'current':

View File

@ -1,4 +0,0 @@
" Melange configuration
colorscheme melange
let g:colorscheme = 'melange'

View File

@ -1,13 +0,0 @@
" Miramare config
set background=dark
let g:miramare_enable_italic = 0
let g:miramare_disable_italic_comment = 1
let g:miramare_transparent_background = 0
colorscheme miramare
"let g:airline_theme='hybrid'
set number
let g:enable_bold_font = 1
let g:enable_italic_font = 1
set laststatus=2
let g:colorscheme = 'miramare'

View File

@ -1,4 +0,0 @@
augroup promql
au!
autocmd BufReadCmd,BufRead *.promql,*.pql set ft=promql syntax=yaml et ts=2 sts=0 sw=0
augroup END

@ -1 +0,0 @@
Subproject commit 2a31e6bcea5977209c05c728c4253d82fd873c82

@ -1 +0,0 @@
Subproject commit 1cb8bb505f9e0e46177874dc76de73858a94ff6b

@ -1 +0,0 @@
Subproject commit 560e6340ce10ce90fac587096fb147eea43e624d

@ -1 +0,0 @@
Subproject commit 39f06b873a8449af8ff6a3eee716d3da14d63a76

@ -1 +0,0 @@
Subproject commit fda2561f79e10826dbdeb900b6124d642766229f

@ -1 +0,0 @@
Subproject commit 4eac2e6f127f2e2601dee415db2f826e2c9ef16c

@ -1 +0,0 @@
Subproject commit 43058915007d92dc167b84dd5b8ada2d2a057a82

@ -1 +0,0 @@
Subproject commit 1c40f648d2b00e70beb4c473b7c0e32b633bd9ae

@ -1 +0,0 @@
Subproject commit 8a6dbc869200f11d00f532e6bee8f2e7ce4ef64e

@ -1 +0,0 @@
Subproject commit 9cb7a364a31bdb882d873807774bdcf6fad0c9e4

@ -1 +0,0 @@
Subproject commit 91332acb1c48e7080539c5b5cd131816341c738c

@ -1 +0,0 @@
Subproject commit 7f5d35a65510083ea5c2d0941797244b9963d4a9

@ -1 +0,0 @@
Subproject commit 5617a1cf7d315e6e6f84d825c85e3b669d220bfa

@ -1 +0,0 @@
Subproject commit 86aaec1700b27618d33d6182f44691d84d2cb6e5

@ -1 +0,0 @@
Subproject commit e3a3a2cd03c73b4fc0670e9ac09dacdb3c6609c1

@ -1 +0,0 @@
Subproject commit 04330816640c3162275d69e7094126727948cd0d

@ -1 +0,0 @@
Subproject commit eed488b1cd1867bd25f19f90e10440c5cc7d6424

@ -1 +0,0 @@
Subproject commit e1fe727127a813095854a5b063c15e955a77eafb

@ -1 +0,0 @@
Subproject commit b710bf4daccb603a423754794fb446e5fbb59576

@ -1 +0,0 @@
Subproject commit 82c1373ba0b424c57e8c12cb5f6f1a7ee3829c27

@ -1 +0,0 @@
Subproject commit 4aa69b84c8a58fcec6b6dad6fe244b916b1cf830

@ -1 +0,0 @@
Subproject commit c4984fc6dcc6c4e190f2f8cd5fffb65b0aaa51d2

@ -1 +0,0 @@
Subproject commit 627308e30639be3e2d5402808ce18690557e8292

@ -1 +0,0 @@
Subproject commit e2c9e01abd2734919e65dd6fe6c84ca2a9b65a7d

@ -1 +0,0 @@
Subproject commit 0a6ab17e84c7f4808bf05ec380121bce40b40d21

@ -1 +0,0 @@
Subproject commit 59529a2c3634dc1cb3956c4faaf824f5c4dd7be1

@ -1 +0,0 @@
Subproject commit c30d1c3f6da0a43c4ef6eb18b47e42be828e6eae

@ -1 +0,0 @@
Subproject commit 430bc227654abc3eb5e27a9052a857344ca08cdc

@ -1 +0,0 @@
Subproject commit 93ae38792bc197c3bdffa2716ae493c67a5e7957

@ -1 +0,0 @@
Subproject commit 765084d38bf102a95ab966fb06472e83fa7deff7

@ -1 +0,0 @@
Subproject commit 7ef91226beeb382a37b4d4d5f0f54e6acf1eaaee

@ -1 +0,0 @@
Subproject commit 37fb044c8398018f5b900a05a39824dba7477575

@ -1 +0,0 @@
Subproject commit 48dff95dbd64423c96fdae5c18eaddb5b5fa3064

@ -1 +0,0 @@
Subproject commit 0415be8b5989e56f6c9e382a04906b7f719cfb38

@ -1 +0,0 @@
Subproject commit 3c5face8e8944a217af45bc5bb708ff7dfcf1a54

@ -1 +0,0 @@
Subproject commit 509eef523082d69a75652739d4e7e6068eeb6506

566
vimrc
View File

@ -3,50 +3,536 @@ let s:sep = has('win32') ? '\' : '/'
" check if in tty
let g:is_tty = system('case $(tty) in (/dev/tty[0-9]) echo 1;; (*) echo 0;; esac')
" set user_dir
if has('nvim')
let s:user_dir = stdpath('config')
else
let s:user_dir = has('win32') ? expand('~/vimfiles') : expand('~/.vim')
" vim-plug init
if empty(glob('~/.vim/autoload/plug.vim'))
system('curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim')
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
""" Set python3 path
let g:python3_host_prog = "/usr/bin/python"
let g:python_host_prog='/usr/bin/python'
""" source
call plug#begin('~/.vim/bundle')
" all other includes are in alphabetical order
source $VIMHOME/config/before/ale.vim
source $VIMHOME/config/before/fzf.vim
source $VIMHOME/config/before/indent.vim
source $VIMHOME/config/before/language-client.vim
source $VIMHOME/config/before/mucomplete.vim
source $VIMHOME/config/before/nerdtree.vim
source $VIMHOME/config/before/powerline.vim
source $VIMHOME/config/before/rg.vim
source $VIMHOME/config/before/theme.vim " this sets the colorscheme
source $VIMHOME/config/before/vim-go.vim
source $VIMHOME/config/before/vim-rooter.vim
""" Install Plugs
" clipboard
Plug 'haya14busa/vim-poweryank'
packloadall
" undotree
Plug 'mbbill/undotree'
source $VIMHOME/config/after/ale.vim
source $VIMHOME/config/after/language-client.vim
source $VIMHOME/config/after/reader.vim
" vim-fetch
Plug 'wsdjeg/vim-fetch'
" powerline-vim
Plug 'powerline/powerline'
" vim-eunuch
Plug 'tpope/vim-eunuch'
" vim-commentary
Plug 'tpope/vim-commentary'
" vim-markbar
Plug 'Yilin-Yang/vim-markbar'
" vim-rooter
Plug 'airblade/vim-rooter'
" win-resizer
Plug 'simeji/winresizer'
" Deoplete.vim
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
Plug 'deoplete-plugins/deoplete-go', { 'do': 'make' }
Plug 'deoplete-plugins/deoplete-jedi'
let g:deoplete#enable_at_startup = 1
" neosnippets
"Plug 'Shougo/neosnippet.vim'
"Plug 'Shougo/neosnippet-snippets'
" fzf
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
" Peekaboo
Plug 'junegunn/vim-peekaboo'
" NERDTree
Plug 'scrooloose/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'
" NERTCommenter
Plug 'scrooloose/nerdcommenter'
" tagbar
" Plug 'majutsushi/tagbar'
" vim-fugitive
Plug 'tpope/vim-fugitive'
" dadbod (sql)
Plug 'tpope/vim-dadbod'
" yara
Plug 'yaunj/vim-yara'
" Dart
" Plug 'bartekd/vim-dart'
Plug 'dart-lang/dart-vim-plugin'
" Kotlin
Plug 'udalov/kotlin-vim'
" Elixir
Plug 'elixir-editors/vim-elixir'
" Plug 'GrzegorzKozub/vim-elixirls', { 'do': ':ElixirLsCompileSync' }
" Elm
"Plug 'elmcast/elm-vim'
"Plug 'andys8/vim-elm-syntax'
"let g:elm_format_autosave = 1
"Plug 'Zaptic/elm-vim'
" GraphQL
Plug 'jparise/vim-graphql'
" Scss
Plug 'cakebaker/scss-syntax.vim'
" Vala
Plug 'arrufat/vala.vim'
" ALE
"Plug 'w0rp/ale'
Plug 'dense-analysis/ale'
let g:ale_completion_enabled = 0
" LanguageClient
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\ }
" vim-airline
"Plug 'vim-airline/vim-airline'
"Plug 'vim-airline/vim-airline-themes'
" Colorschemes
Plug 'junegunn/seoul256.vim'
Plug 'scwood/vim-hybrid'
Plug 'kristijanhusak/vim-hybrid-material'
Plug 'srcery-colors/srcery-vim'
Plug 'nightsense/cosmic_latte'
Plug 'rafi/awesome-vim-colorschemes'
Plug 'altercation/vim-colors-solarized'
Plug 'franbach/miramare'
Plug 'sainnhe/edge'
Plug 'ayu-theme/ayu-vim'
Plug 'bitfield/vim-gitgo'
Plug 'savq/melange'
Plug 'sonph/onehalf', { 'rtp': 'vim' }
" indent-guides
Plug 'nathanaelkane/vim-indent-guides'
" Dockerfile.vim
Plug 'ekalinin/Dockerfile.vim'
" YAML
Plug 'mrk21/yaml-vim'
" Python
Plug 'ambv/black'
" TOML
Plug 'cespare/vim-toml'
" Autoclose
Plug 'jiangmiao/auto-pairs'
" vim-go
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
" vim-multiple-cursor
Plug 'terryma/vim-multiple-cursors'
" rust.vim
" Plug 'rust-lang/rust.vim'
" nginx.vim
Plug 'chr4/nginx.vim'
" typescript
Plug 'HerringtonDarkholme/yats.vim'
"Plug 'leafgarland/typescript-vim'
Plug 'ianks/vim-tsx'
Plug 'maxmellon/vim-jsx-pretty'
"Plug 'mhartington/nvim-typescript', {'do': './install.sh'}
call plug#end()
"""
""" vim-rooter
"let g:rooter_change_directory_for_non_project_files = 'current':
""" neosnippets
" 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>
" \ pumvisible() ? "\<C-n>" :
" \ neosnippet#expandable_or_jumpable() ?
" \ "\<Plug>(neosnippet_expand_or_jump)" : "\<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
""" LanguageClient
" Required for operations modifying multiple buffers like rename.
set hidden
" let g:LanguageClient_serverCommands = {
" \ 'javascript': ['/usr/local/bin/javascript-typescript-stdio'],
" \ 'javascript.jsx': ['tcp://127.0.0.1:2089'],
" \ 'python': ['/usr/local/bin/pyls'],
" \ 'ruby': ['~/.rbenv/shims/solargraph', 'stdio'],
" \ }
let g:LanguageClient_serverCommands = {
\ 'rust': ['/usr/bin/rustup', 'run', 'stable', 'rls'],
\ 'elixir': ['/usr/lib/elixir-ls/language_server.sh'],
\ 'elm': ['/usr/bin/elm-language-server'],
\ 'python': ['/usr/bin/pyls'],
\ 'go': ['/usr/bin/gopls'],
\ }
let g:LanguageClient_rootMarkers = {
\ 'elm': ['elm.json'],
\ }
" note that if you are using Plug mapping you should not use `noremap` mappings.
nmap <F5> <Plug>(lcn-menu)
" Or map each action separately
nmap <silent>K <Plug>(lcn-hover)
nmap <silent> gd <Plug>(lcn-definition)
nmap <silent> <F2> <Plug>(lcn-rename)
""" ALE configuration
let g:ale_sign_error = '->'
let g:ale_sign_warning = '~>'
" let g:ale_sign_error = '✘'
" let g:ale_sign_warning = '⚠'
if has('nvim')
let s:user_dir = stdpath('config')
else
let s:user_dir = has('win32') ? expand('~/vimfiles') : expand('~/.vim')
endif
let g:ale_elixir_elixir_ls_release = '/usr/lib/elixir-ls/'
let g:ale_linters = {
\ 'javascript': ['eslint'],
\ 'typescript': ['tsserver', 'tslint'],
\ 'python': ['pyls', 'pylint'],
\ 'rust': ['rls'],
\ 'elixir': ['elixir-ls'],
\ 'go': ['gopls'],
\ 'json': ['jsonlint'],
\ 'dockerfile': ['hadolint'],
\ 'vala': ['vala-language-server'],
\ 'scss': ['eslint'],
\ 'elm': ['elm_ls'],
\}
let g:ale_fixers = {
\ 'javascript': ['prettier'],
\ 'typescript': ['prettier'],
\ 'python': ['black', 'pyls'],
\ 'rust': ['rustfmt'],
\ 'elixir': ['mix_format'],
\ 'graphql': ['prettier'],
\ 'perl': ['perltidy'],
\ 'go': ['gofmt'],
\ 'json': ['prettier'],
\ 'vala': ['uncrustify'],
\ 'dart': ['dartfmt'],
\ 'scss': ['prettier'],
\}
function! s:getValaProjectRoot(buffer) abort
let l:cur_path_abs = fnamemodify(a:buffer, ':p:h')
let l:maybe_doap_file = expand(l:cur_path_abs . s:sep . '*.doap')
if !empty(l:maybe_doap_file)
return l:cur_path_abs
endif
for l:path in ale#path#Upwards(expand('#' . a:buffer . ':p:h'))
if filereadable(expand(l:path . '*.doap'))
return l:path
endif
endfor
return ''
endfunction
call ale#linter#Define('vala', {
\ 'name': 'vala-language-server',
\ 'lsp': 'stdio',
\ 'output_stream': 'both',
\ 'executable': '/usr/bin/vala-language-server',
\ 'command': '%e',
\ 'project_root': function('s:getValaProjectRoot'),
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})
let g:ale_rust_rls_config = {
\ 'rust': {
\ 'clippy_preference': 'on'
\ }
\ }
let g:ale_echo_msg_error_str = 'Err'
let g:ale_echo_msg_warning_str = 'Warn'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
let g:ale_go_langserver_executable = 'gopls'
" let g:ale_go_revive_executable = '/usr/bin/revive'
" let g:ale_go_revive_options = '-config ~/.vim/revive.toml'
let g:airline#extensions#ale#enabled = 1
let g:ale_completion_enabled = 1
let g:ale_lint_on_enter = 0
let g:ale_lint_on_text_changed = 'never'
highlight ALEErrorSign ctermbg=NONE ctermfg=red
highlight ALEWarningSign ctermbg=NONE ctermfg=yellow
let g:ale_linters_explicit = 1
let g:ale_lint_on_save = 1
let g:ale_fix_on_save = 1
""" vim-go
let g:go_highlight_types = 1
let g:go_highlight_fields = 1
let g:go_highlight_functions = 1
let g:go_highlight_function_calls = 1
""" deoplete
" let g:deoplete#sources = {'go': ['deoplete-go'], 'python': ['deoplete-jedi']}
" call deoplete#custom#option('omni_patterns', { 'go': '[^. *\t]\.\w*' })
""" Themes and colors
if exists('+termguicolors')
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
endif
function! LightOrDarkness()
if &background==?"dark"
set background=light
colorscheme edge
hi Search guibg=Green
elseif &background==?"light"
set background=dark
colorscheme miramare
hi Search guibg=Purple
endif
endfunction
" Needed for kitty not to f*ck up the background color
let &t_ut=''
set background=dark
let g:miramare_enable_italic = 0
let g:miramare_disable_italic_comment = 1
let g:miramare_transparent_background = 0
colorscheme miramare
"let g:airline_theme='hybrid'
set number
let g:enable_bold_font = 1
let g:enable_italic_font = 1
set laststatus=2
" virtualedit
"set virtualedit=all
" air-line
"let g:airline_powerline_fonts = 1
if !exists('g:airline_symbols') && !g:is_tty
let g:airline_symbols = {}
endif
" unicode symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''"
" let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
" let g:airline_symbols.paste = 'Þ'
" let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'
""" FZF
let g:fzf_commits_log_options = '--graph --color=always --format="%C(auto)%h%d %s %C(black)%C(bold)%cr"'
let g:fzf_action = {
\ 'ctrl-t': 'tabedit',
\ 'ctrl-v': 'vsplit',
\ 'ctrl-x': 'split' }
let g:fzf_buffers_jump = 1
let g:fzf_commands_expect = 'alt-enter,ctrl-x'
" disable popup window
" let g:fzf_layout = { 'down': '40%' }
""" NERDTree
" Close NERDTree automatically after opening a file with it.
let g:NERDTreeQuitOnOpen = 1
" Use a single click for opening things in NERDTree
let g:NERDTreeMouseMode = 3
let g:NERDTreeMapActivateNode = '<Space>'
let g:NERDTreeIgnore = [
\ '\.pyc$',
\ '^__pycache__$',
\ '^\.mypy_cache$',
\]
" ripgrep
" if executable('ug')
" let $FZF_DEFAULT_COMMAND = 'ug'
" set grepprg=ugrep\ -RInk\ -j\ -u\ --tabs=1\ --ignore-files
" set grepformat=%f:%l:%c:%m,%f+%l+%c+%m,%-G%f\\\|%l\\\|%c\\\|%m
" endif
if executable('rg')
let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"'
set grepprg=rg\ --vimgrep
command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --glob "!.git/*" --color "always" '.shellescape(<q-args>).'| tr -d "\017"', 1, <bang>0)
endif
" Search in files with ripgrep + preview with bat
function! Fzf_dev()
let l:fzf_files_options = '--preview "bat --style=numbers,changes --color always {2..-1} | head -'.&lines.'"'
function! s:files()
let l:files = split(system($FZF_DEFAULT_COMMAND), '\n')
return s:format_list(l:files)
endfunction
function! s:format_list(candidates)
let l:result = []
for l:candidate in a:candidates
let l:filename = fnamemodify(l:candidate, ':p:t')
let l:icon = ">-"
call add(l:result, printf('%s %s', l:icon, l:candidate))
endfor
return l:result
endfunction
function! s:edit_file(item)
let l:pos = stridx(a:item, ' ')
let l:file_path = a:item[pos+1:-1]
execute 'silent e' l:file_path
endfunction
call fzf#run({
\ 'source': <sid>files(),
\ 'sink': function('s:edit_file'),
\ 'options': '-m ' . l:fzf_files_options,
\ 'down': '40%' })
endfunction
""" indentation seek functions
" Jump to the next or previous line that has the same level or a lower
" level of indentation than the current line.
"
" exclusive (bool): true: Motion is exclusive
" false: Motion is inclusive
" fwd (bool): true: Go to next line
" false: Go to previous line
" lowerlevel (bool): true: Go to line with lower indentation level
" false: Go to line with the same indentation level
" skipblanks (bool): true: Skip blank lines
" false: Don't skip blank lines
function! NextIndent(exclusive, fwd, lowerlevel, skipblanks)
let line = line('.')
let column = col('.')
let lastline = line('$')
let indent = indent(line)
let stepvalue = a:fwd ? 1 : -1
while (line > 0 && line <= lastline)
let line = line + stepvalue
if ( ! a:lowerlevel && indent(line) == indent ||
\ a:lowerlevel && indent(line) < indent)
if (! a:skipblanks || strlen(getline(line)) > 0)
if (a:exclusive)
let line = line - stepvalue
endif
exe line
exe "normal " column . "|"
return
endif
endif
endwhile
endfunction
" Moving back and forth between lines of same or lower indentation.
nnoremap <silent> [l :call NextIndent(0, 0, 0, 1)<CR>
nnoremap <silent> ]l :call NextIndent(0, 1, 0, 1)<CR>
nnoremap <silent> [L :call NextIndent(0, 0, 1, 1)<CR>
nnoremap <silent> ]L :call NextIndent(0, 1, 1, 1)<CR>
vnoremap <silent> [l <Esc>:call NextIndent(0, 0, 0, 1)<CR>m'gv''
vnoremap <silent> ]l <Esc>:call NextIndent(0, 1, 0, 1)<CR>m'gv''
vnoremap <silent> [L <Esc>:call NextIndent(0, 0, 1, 1)<CR>m'gv''
vnoremap <silent> ]L <Esc>:call NextIndent(0, 1, 1, 1)<CR>m'gv''
onoremap <silent> [l :call NextIndent(0, 0, 0, 1)<CR>
onoremap <silent> ]l :call NextIndent(0, 1, 0, 1)<CR>
onoremap <silent> [L :call NextIndent(1, 0, 1, 1)<CR>
onoremap <silent> ]L :call NextIndent(1, 1, 1, 1)<CR>
""" general
filetype plugin indent on
set nospell
" restore screen after quitting
" au VimLeave * :!clear
syntax on
packloadall
silent! helptags ALL
" Enable persistent undo
set undodir=$VIMHOME/.undo/
set undodir=$VIMHOME/.undo//
set undofile
set undolevels=1000 "maximum number of changes that can be undone
set undoreload=10000 "maximum number lines to save for undo on a buffer reload
@ -59,8 +545,8 @@ set autoindent
set showmatch
" Put all special files in the right place
set backupdir=$VIMHOME/.backup/
set directory=$VIMHOME/.swp/
set backupdir=$VIMHOME/.backup//
set directory=$VIMHOME/.swp//
" Draw tabs and trailing spaces.
" set listchars=tab:<->
@ -101,11 +587,8 @@ highlight LineHighlight ctermbg=darkgray guibg=Purple
" Make :Q and :W work like :q and :w
command! W w
command! Q q
command! QA qa
command! WQ wq
command! Wq wq
command! Wqa wqa
command! WQA wqa
command! WW w ! sudo tee %:t
" Make completion smarter.
@ -135,9 +618,8 @@ if !empty(glob(s:info_filename)) && !filewritable(s:info_filename)
echoerr 'The .viminfo file cannot be written to!'
endif
""" Set dockerfile syntax
autocmd BufNewFile,BufRead Dockerfile* set ft=Dockerfile
""" powerline
let g:powerline_pycmd = "py3"
""" keybindings
@ -157,14 +639,12 @@ nnoremap <C-k> <C-w><Up>
nnoremap <C-l> <C-w><Right>
nnoremap <leader>b :Gblame<CR>
nnoremap <C-p> :FZF<CR>
nnoremap <leader>f :Buffers<CR>
nnoremap <C-o> :Buffers<CR>
nnoremap <C-F> :Files<CR>
nnoremap <C-g> :Rg<CR>
nnoremap <leader>k :exe "Rg " . expand("<cword>")<cr>
nnoremap <C-\> :Rg<CR>
nnoremap <leader>s :call Fzf_dev()<CR>
nnoremap <leader>c :Commits<CR>
nnoremap <leader>b :Git blame<CR>
nnoremap <leader>gh :exe "Git log -L:" . expand("<cword>") . ":" . expand("%")<cr>
nnoremap <leader>b :Gblame<CR>
nnoremap <leader><esc> :silent! nohls<CR>:call clearmatches()<CR>
nnoremap <leader><Tab> :bnext<CR>
nnoremap <leader>\ :bprev<CR>
@ -179,15 +659,7 @@ nnoremap "+p :let @"=substitute(system("wl-paste --no-newline"), '<C-v><C-m>', '
nnoremap "*p :let @"=substitute(system("wl-paste --no-newline --primary"), '<C-v><C-m>', '', 'g')<cr>p
nnoremap <Leader>u :UndotreeShow<CR>:UndotreeFocus<CR>
" highlight the current line
"nnoremap l :call matchadd('LineHighlight', '\%'.line('.').'l')<CR>
" Limelight and Goyo
nnoremap <Leader>l :Limelight!!<CR>
xnoremap <Leader>l :Limelight!!<CR>
nnoremap <Leader>G :Goyo<CR>
xnoremap <Leader>G :Goyo<CR>
" Move lines
nnoremap l :call matchadd('LineHighlight', '\%'.line('.').'l')<CR>
nnoremap <silent> <C-Down> :m .+1<CR>==
nnoremap <silent> <C-Up> :m .-2<CR>==
inoremap <silent> <C-Down> <Esc>:m .+1<CR>==gi