From 74a6e2adfcda97601b8089a390a94d7201d8d89a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Wo=C5=BAniak?= Date: Mon, 1 Nov 2021 00:20:50 +0100 Subject: [PATCH] Sort all vimrc --- .config/nvim/init.vim | 332 ++++++++++++++++++++++-------------------- 1 file changed, 172 insertions(+), 160 deletions(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 7149053..d813b50 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -1,4 +1,6 @@ -" settings +"""""""""""""""""""""""""""""""" +" Download vim-plug +"""""""""""""""""""""""""""""""" if has('nvim') if ! filereadable(system('echo -n "$HOME/.config/nvim/autoload/plug.vim"')) silent !mkdir -p $HOME/.config/nvim/autoload/ @@ -7,7 +9,9 @@ if has('nvim') endif endif -let mapleader = "\" +"""""""""""""""""""""""""""""""" +" Default settings nvim +"""""""""""""""""""""""""""""""" let g:python3_host_prog = expand('/usr/bin/python3') let g:loaded_python_provider = 0 let g:python_host_prog = '' @@ -30,7 +34,48 @@ au BufWritePre * let &bex = '@' . strftime("%F.%H:%M") filetype plugin indent on syntax on -" plugins +" Disable by default indent line +" let g:indentLine_enabled = 0 + +" ansible +let g:ansible_extra_keywords_highlight = 1 + +" line numbers +set number +set ruler +set title + +" indent +set backspace=indent,eol,start +set shiftwidth=4 +set list listchars=nbsp:¬,tab:»·,trail:·,extends:> + +" editing +runtime! macros/matchit.vim + +" visual feedback +set laststatus=2 +set showmode +set showcmd + +" off mouse +set mouse-=a + +" disable pcspkr beep +set visualbell +set t_vb= + +" searching +set smartcase +set ic + +" cursor +let &t_SI = "\[6 q" +let &t_EI = "\[2 q" + +"""""""""""""""""""""""""""""""" +" Plugins +"""""""""""""""""""""""""""""""" call plug#begin('~/.config/nvim/plugged') " Markdown Plug 'tpope/vim-markdown' @@ -73,14 +118,7 @@ call plug#begin('~/.config/nvim/plugged') Plug 'junegunn/vim-easy-align' call plug#end() -" Disable by default indent line -" let g:indentLine_enabled = 0 - -" Enable by default indent line in files -autocmd BufRead,BufNewFile *.yaml let g:indentLine_enabled = 1 -autocmd BufRead,BufNewFile *.yaml let g:indentLine_char = '⦙' - -" Instalation coc extentions +" Coc let g:coc_global_extensions = ['coc-solargraph', 'coc-go', 'coc-yaml', 'coc-pyright', 'coc-json' , 'coc-markdownlint' , 'coc-sh', 'coc-prettier', 'coc-diagnostic', 'coc-perl'] inoremap coc#refresh() @@ -90,137 +128,16 @@ function! s:check_back_space() abort return !col || getline('.')[col - 1] =~# '\s' endfunction -" Use tab for trigger completion with characters ahead and navigate. -" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by -" other plugin before putting this into your config. -inoremap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : - \ coc#refresh() -inoremap pumvisible() ? "\" : "\" - -" GoTo code navigation. -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) -nmap rr (coc-rename) -nmap gp (coc-diagnostic-prev) -nmap gn (coc-diagnostic-next) -nnoremap cr :CocRestart - -" Commentry -xmap c Commentary -nmap c Commentary -omap c Commentary -nmap cc CommentaryLine - -vnoremap > -vnoremap < - -" Status-line -set statusline= -set statusline+=%#IncSearch# -set statusline+=\ %y -set statusline+=\ %m -set statusline+=\ %r -set statusline+=%#CursorLineNr# -set statusline+=\ %F -set statusline+=%= "Right side settings -set statusline+=%#Search# -set statusline+=\ %l/%L -set statusline+=\ [%c] - -" ansible -let g:ansible_extra_keywords_highlight = 1 -au BufRead,BufNewFile *.yml set filetype=yaml.ansible - -" fzf -let $FZF_DEFAULT_COMMAND = 'find . -type f -not -path "*/\.git/*" -not -path "*/\.local/share/nvim/*" -not -path "./Library/*" ' -command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --color "always" '.shellescape(), 1, 0) -command! -bang -nargs=* FindCurrentWord call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --color "always" '.shellescape(expand('')), 1, 0) -set grepprg=rg\ --vimgrep - -nmap e :Buffers -nmap q :Rg -nmap w :Files - -" Resize window -nnoremap :vertical resize +5 -nnoremap :vertical resize -5 -nnoremap :res +5 -nnoremap :res -5 - -" Split window -nnoremap _ :vsp -nnoremap - :split - -" Reload file -nnoremap :edit -nnoremap :edit! - -" livepreviewer -let g:livepreview_previewer = 'mupdf' - -" markdown preview -let g:mkdp_browser = '/home/yorune/.local/bin/browser-x' -let g:mkdp_echo_preview_url = 1 -let g:markdown_fenced_languages = ['html', 'python', 'bash=sh'] -let g:markdown_minlines = 1 -autocmd FileType markdown set foldexpr=NestedMarkdownFolds() - -au BufNewFile,BufRead *.conf setfiletype conf - -" line numbers -set number -set ruler -set title - -" indent -set backspace=indent,eol,start -set shiftwidth=4 -set list listchars=nbsp:¬,tab:»·,trail:·,extends:> - -" editing -runtime! macros/matchit.vim - -" cursor -set guicursor= - -" visual feedback -set laststatus=2 -set showmode -set showcmd - -" off mouse -set mouse-=a - -" disable pcspkr beep -set visualbell -set t_vb= - -" searching -set smartcase -set ic - -" cursor -let &t_SI = "\[6 q" -let &t_EI = "\[2 q" - " Enable show hidden in NerdTree let NERDTreeShowHidden=1 -" multiple cursors -let g:multi_cursor_start_word_key = '' -let g:multi_cursor_select_all_word_key = '' -let g:multi_cursor_start_key = 'g' -let g:multi_cursor_select_all_key = 'g' -let g:multi_cursor_next_key = '' -let g:multi_cursor_prev_key = '' -let g:multi_cursor_skip_key = '' -let g:multi_cursor_quit_key = '' +" latex +let g:tex_flavor = "latex" -" colors + +"""""""""""""""""""""""""""""""" +" Theme +"""""""""""""""""""""""""""""""" colorscheme gruvbox let g:gruvbox_invert_selection='0' let g:gruvbox_contrast_dark = 'hard' @@ -241,19 +158,70 @@ set colorcolumn=80 " highlight ColorColumn ctermbg=235 highlight ColorColumn ctermbg=236 -" map -nnoremap S :%s//g -vnoremap S :s//g -vnoremap F $A -vnoremap f 0I -nnoremap ee :!mupdf $(echo % \| sed 's/tex$/pdf/') & disown -map :NERDTreeToggle -nnoremap :tabnew -nnoremap :Goyo -nnoremap :tabprevious -nnoremap :tabnext -nnoremap K :tabprevious -nnoremap J :tabnext +"""""""""""""""""""""""""""""""" +" Status Line +"""""""""""""""""""""""""""""""" +set statusline= +set statusline+=%#IncSearch# +set statusline+=\ %y +set statusline+=\ %m +set statusline+=\ %r +set statusline+=%#CursorLineNr# +set statusline+=\ %F +set statusline+=%= "Right side settings +set statusline+=%#Search# +set statusline+=\ %l/%L +set statusline+=\ [%c] + +"""""""""""""""""""""""""""""""" +" Keyboard shortcuts +"""""""""""""""""""""""""""""""" +let mapleader = "\" + +" Go to definition +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) +nmap rr (coc-rename) +nmap gp (coc-diagnostic-prev) +nmap gn (coc-diagnostic-next) +nnoremap cr :CocRestart +xmap c Commentary +nmap c Commentary +omap c Commentary +nmap cc CommentaryLine + +" Better tab +vnoremap > +vnoremap < + +" FZF +nmap e :Buffers +nmap q :Rg +nmap w :Files + +" Resize window +nnoremap :vertical resize +5 +nnoremap :vertical resize -5 +nnoremap :res +5 +nnoremap :res -5 + +" Split window +nnoremap _ :vsp +nnoremap - :split + +" Reload file +nnoremap :edit +nnoremap :edit! + +inoremap pumvisible() ? "\" : "\" + +" Tab in the coc to help select right autocomplete +inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() "" Moving line up or down using alt nnoremap :m-2 @@ -275,38 +243,82 @@ inoremap :m+ vnoremap :m '>+1gv=gv vnoremap :m '<-2gv=gv -cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! +" Better replace +nnoremap S :%s//g +vnoremap S :s//g -map :setlocal spell! spelllang=en_gb -map :setlocal spell! spelllang=pl +" Better adding into begging and ending line +vnoremap F $A +vnoremap f 0I + +" Better management of tabs +nnoremap K :tabprevious +nnoremap J :tabnext " Copy into system noremap y "*y noremap p "*p " Code -map :w:terminal ~/.local/bin/debugger '%:p' -map , :CocAction map Vgaip= -nnoremap x :!chmod +x % + +" Multiple cursors +let g:multi_cursor_start_word_key = '' +let g:multi_cursor_select_all_word_key = '' +let g:multi_cursor_start_key = 'g' +let g:multi_cursor_select_all_key = 'g' +let g:multi_cursor_next_key = '' +let g:multi_cursor_prev_key = '' +let g:multi_cursor_skip_key = '' +let g:multi_cursor_quit_key = '' + +" Others +nnoremap ee :!mupdf $(echo % \| sed 's/tex$/pdf/') & disown +map :NERDTreeToggle +nnoremap :tabnew +nnoremap :Goyo +cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! +map :setlocal spell! spelllang=en_gb +map :setlocal spell! spelllang=pl + +"""""""""""""""""""""""""""""""" +" Files +"""""""""""""""""""""""""""""""" + +" Ansible +au BufRead,BufNewFile *.yml set filetype=yaml.ansible " Python autocmd BufRead,BufNewFile *.py set textwidth=0 autocmd BufRead,BufNewFile *.py set fo-=t -" latex -let g:tex_flavor = "latex" +" Latex autocmd BufWritePost *.tex silent! execute "!pdflatex --shell-escape -synctex=1 -interaction=nonstopmode % > /dev/null " | redraw! autocmd BufWritePost *.tex silent! execute "!latexmk -pdf -silent % > /dev/null" | redraw! autocmd BufWritePost *.tex silent! execute "!sudo rm -rf *.fls *.ilg *.nav *.snm *.toc *.idx *.lof *.lot *.synctex.gz *.aux *.fdb_latexmk *.fls *.log *.out > /dev/null" | redraw! autocmd BufWritePost *.tex silent! execute "!sudo pkill -HUP mupdf > /dev/null" | redraw! -" mutt +" Mutt autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80 autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo autocmd BufRead,BufNewFile /tmp/neomutt* map ZZ :Goyo\|x! autocmd BufRead,BufNewFile /tmp/neomutt* map ZQ :Goyo\|q! +" Yaml +autocmd BufRead,BufNewFile *.yaml let g:indentLine_enabled = 1 +autocmd BufRead,BufNewFile *.yaml let g:indentLine_char = '⦙' + +" Conf +au BufNewFile,BufRead *.conf setfiletype conf + " Automatically deletes all trailing whitespace and newlines at end of file on save. autocmd BufWritePre * %s/\s\+$//e autocmd BufWritepre * %s/\n\+\%$//e + +"""""""""""""""""""""""""""""""" +" FZF +"""""""""""""""""""""""""""""""" +let $FZF_DEFAULT_COMMAND = 'find . -type f -not -path "*/\.git/*" -not -path "*/\.local/share/nvim/*" -not -path "./Library/*" ' +command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --color "always" '.shellescape(), 1, 0) +command! -bang -nargs=* FindCurrentWord call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --color "always" '.shellescape(expand('')), 1, 0) +set grepprg=rg\ --vimgrep