From a8903ac96dd7cd0e1af968d729e557d579f26124 Mon Sep 17 00:00:00 2001 From: Yigit Sever Date: Fri, 8 Oct 2021 00:09:37 +0300 Subject: neovim: migrate to init.lua --- .config/nvim/init.vim | 607 -------------------------------------------------- 1 file changed, 607 deletions(-) delete mode 100755 .config/nvim/init.vim (limited to '.config/nvim/init.vim') diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100755 index 40fadf2..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,607 +0,0 @@ -let g:polyglot_disabled=['latex', 'tex'] - -"{{{ Plugs -call plug#begin('~/.local/share/nvim/plugged') - -" latex " had to move vimtex to top to avoid a difficult error -Plug 'lervag/vimtex', { 'for': ['tex', 'latex', 'plaintex']} -autocmd User vimtex call deoplete#custom#var('omni', 'input_patterns', { - \ 'tex': g:vimtex#re#deoplete - \}) - -" Vimscript debugger -" Plug 'vim-scripts/Decho' - -" completion, 'lsp' and coding {{{ " - -" completion framework -Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } -Plug 'lionawurscht/deoplete-biblatex' -Plug 'deoplete-plugins/deoplete-jedi' -" rust code completion & navigation -Plug 'racer-rust/vim-racer' -" syntax checking -Plug 'dense-analysis/ale' -" manages tag files -Plug 'ludovicchabant/vim-gutentags' -" run tests (todo: write tests) -Plug 'janko/vim-test' -" type in file send to repl -Plug 'jpalardy/vim-slime' -" snippets to expand -Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' -" Highlight the yanked region -Plug 'machakann/vim-highlightedyank' - -" auto pair plugin, people hate these -Plug 'tmsvg/pear-tree' -" language packs -Plug 'sheerun/vim-polyglot' -" i3 config syntax -Plug 'mboughaba/i3config.vim' -" git diff in the sign column -Plug 'airblade/vim-gitgutter' -" gitk apparently -Plug 'cohama/agit.vim' -" completion preview of floating window -Plug 'ncm2/float-preview.nvim' -" switch between single line and multiline -Plug 'AndrewRadev/splitjoin.vim' - -" }}} completion, 'lsp' and such " - -" heresy {{{ " - -" Fuzzy finder with post-update hook -Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } -Plug 'junegunn/fzf.vim' - -" TODO let's try out fern.vim -Plug 'lambdalisue/fern.vim' -" TODO bug in neovim, so required for now -" https://github.com/lambdalisue/fern.vim/issues/120 -Plug 'antoinemadec/FixCursorHold.nvim' - -" displays tags ordered by scope -Plug 'majutsushi/tagbar' -" status/tabline -Plug 'vim-airline/vim-airline' -Plug 'vim-airline/vim-airline-themes' -" undo tree visualizer -Plug 'mbbill/undotree' -" preview colours in source code -Plug 'ap/vim-css-color' -" kitty config filetype -Plug 'fladson/vim-kitty' -" }}} heresy " - -" colour theme of $CURRENT_YEAR -Plug 'rose-pine/neovim' - -" prose, note taking {{{ " - -" Personal wiki -Plug 'vimwiki/vimwiki' -" centers the writing -Plug 'junegunn/goyo.vim' -" highlights the current paragraph -Plug 'junegunn/limelight.vim' -" thesaurus query & replacement -Plug 'ron89/thesaurus_query.vim' -" change ASCII text to Turkish text -Plug 'yigitsever/turkish-deasciifier.vim' -" }}} prose, note taking " - -" movement, editing {{{ " - -" text alignment \w :Tab -Plug 'godlygeek/tabular' -" move selections up and down with alt+[j,k] -Plug 'matze/vim-move' -" surround text objects; sa, sr and sd -Plug 'machakann/vim-sandwich' -" provide additional text objects -Plug 'wellle/targets.vim' -" indentation level text object, ia, ii -Plug 'michaeljsmith/vim-indent-object' -" visual feedback for substitute holy shit this is amazing -Plug 'markonm/traces.vim' -" see the contents of registers on "/ -Plug 'junegunn/vim-peekaboo' -" use k to highlight multiple words -Plug 'lfv89/vim-interestingwords' -" swap delimited items using g>, g< -Plug 'machakann/vim-swap' -" jump to location by 2 characters, ` -Plug 'justinmk/vim-sneak' -" reopen files at your last edit position -Plug 'farmergreg/vim-lastplace' -" flash cursor on jump -Plug 'DanilaMihailov/beacon.nvim' -" ascii drawing plugin -Plug 'vim-scripts/DrawIt' - -" }}} movement, editing " - -" vim-easyclip suite {{{ " - -" splits delete into cut and delete -Plug 'svermeulen/vim-cutlass' -" change text with yank -Plug 'svermeulen/vim-subversive' -" yank history -Plug 'svermeulen/vim-yoink' - -" }}} vim-easyclip suite " - -" tpope {{{ " - -" enable repeating supported plugin maps with '.' -Plug 'tpope/vim-repeat' -" pairs of handy bracket mappings -Plug 'tpope/vim-unimpaired' -" git wrapper -Plug 'tpope/vim-fugitive' -" increment dates, times & more -Plug 'tpope/vim-speeddating' -" search, substitute and abbreviate -Plug 'tpope/vim-abolish' -" provides ga, show unicode stuff of char under cursor -Plug 'tpope/vim-characterize' -" comment helper -Plug 'tpope/vim-commentary' -" asynchronous build and test dispatcher -Plug 'tpope/vim-dispatch' -" }}} tpope " - -" fancy start screen -Plug 'mhinz/vim-startify' -" asks to be placed last, sure -Plug 'ryanoasis/vim-devicons' -call plug#end() - -"}}} - -"{{{Auto Commands -" Remove any trailing whitespace that is in the file -autocmd BufRead,BufWrite * if ! &bin | silent! %s/\s\+$//ge | endif - -" Close vim if the only window left open is a quickfix window -autocmd WinEnter * if winnr("$") == 1 && &buftype == "quickfix" | q | endif -" winnr("$") how many windows left? - -" Resize all windows proportionally when the terminal is resized -" let terminal resize scale the internal windows -autocmd VimResized * :wincmd = - -" Set spell for prose -autocmd FileType markdown,tex setlocal spell - -" Dispatch.vim plugin to use cargo run for rust projects -autocmd FileType rust let b:dispatch = 'cargo run' - -" these files are formatted not with textwidth but into sentences -autocmd FileType vimwiki,latex,tex setlocal formatprg=/home/yigit/.local/bin/sentences - -" runs a script that cleans out tex build files whenever I close out of a .tex file. -autocmd VimLeave *.tex !texclear % -"}}} - -" Functions {{{ - -function! CreateNote() - py3 import uuid - exe "e! " . fnameescape("~/nextcloud/personal_wiki/text/box/" . py3eval('str(uuid.uuid4())[:6]') . ".wiki") - let l:text="= up =\n\n= down =\n\n= keywords =\n\n" - put =l:text - norm gg -endfunction - -function! CreatePaper(citekey) - exe "e! " . fnameescape("~/nextcloud/personal_wiki/text/papers/" . a:citekey . ".wiki") - - let l:timestap="%date " . strftime("%F") - let l:text="= Came From =\n\n= Takeaways =\n\n= Might Go To =\n\n" - - put! =l:timestap - put =l:text -endfunction - -function! CreateReference(citekey) - exe "e! " . fnameescape("~/nextcloud/personal_wiki/text/reference/" . a:citekey . ".wiki") - - let l:timestap="%date " . strftime("%F") - let l:text="= Literature Notes =\n\n= Citation =\n\n" - - put! =l:timestap - put =l:text -endfunction - -" }}} Function " - -"{{{Settings - -" fix the Target STRING not available -let g:clipboard = { - \ 'name': 'xsel_override', - \ 'copy': { - \ '+': 'xsel --input --clipboard', - \ '*': 'xsel --input --primary', - \ }, - \ 'paste': { - \ '+': 'xsel --output --clipboard', - \ '*': 'xsel --output --primary', - \ }, - \ 'cache_enabled': 1, - \ } - -" Use deoplete. -let g:deoplete#enable_at_startup = 1 -let g:deoplete#sources#biblatex#bibfile = '~/.local/share/vim_biblatex.bib' - -" interact with system clipboard -set clipboard+=unnamedplus - -" required for yoink/cutlass/subversive interaction -let g:yoinkIncludeDeleteOperations = 1 - -" Tab stuff -set autoindent - -" :h tabstop, 2. point -" Use appropriate number of spaces to insert a -set expandtab -set shiftwidth=4 -set softtabstop=4 -set tabstop=8 - -" Use english for spellchecking, but don't spellcheck by default -set spell spelllang=en_gb -set nospell - -" Tab completion, zsh style -set wildmode=full -set wildignore=*.o,*.obj,*.class,*.aux,*.lof,*.log,*.lot,*.fls,*.toc,*.fmt,*.fot,*.cb,*.cb2,.*.lb,.dvi,*.xdv,*.bbl,*.bcf,*.blg,*-blx.aux,*-blx.bib,*.run.xml,*.fdb_latexmk,*.synctex,*.synctex(busy),*.synctex.gz,*.synctex.gz(busy),*.pdfsync - -" Put one space while joining (not two) -set nojoinspaces - -" Keep n lines above/below cursor while scrolling -set scrolloff=4 -" line numbers -set number -" fold manually, when I place markers -set foldmethod=marker -" set terminal title -set title -" wrap using 'breakat' character -set linebreak -" new split panes will split to below and right -set splitbelow -set splitright -" highlight the current line, yoc undoes -set cursorline -" current line actual number, rest are relative -set relativenumber -" we are already using airline, don't clobber linter messages -set noshowmode -" jump to the matching bracket briefly -set showmatch -" move freely between buffers -set hidden - -" persistent undo -set undodir=~/.vim/undodir -set undofile - -" lower case searches ignore case, upper case searches do not -set ignorecase -set smartcase - -" https://stackoverflow.com/a/3445040/ -" switch case labels -set cinoptions=l1 - -" https://www.reddit.com/r/vim/comments/7bj837/favorite_console_tools_to_use_with_vim/ -if executable('rg') - set grepprg=rg\ --vimgrep\ --no-heading\ --smart-case -endif - -set diffopt=algorithm:patience - -let g:float_preview#docked = 0 -set completeopt = "menu" - -" }}} - -"{{{Look and Feel -set termguicolors -colorscheme rose-pine - -highlight HighlightedyankRegion cterm=reverse gui=reverse -let g:highlightedyank_highlight_duration = 200 -" }}} - -"{{{ Mappings - -" brute force deasciify everything -nnoremap tc TurkishDeasciifyForce() -xnoremap tc TurkishDeasciifyForce() -nnoremap tctc TurkishDeasciifyForce() .. '_' - -" use turkish-mode to selectively deasciify -nnoremap tr TurkishDeasciify() -xnoremap tr TurkishDeasciify() -nnoremap trtr TurkishDeasciify() .. '_' - -" ascii everything -nnoremap rt TurkishAsciify() -xnoremap rt TurkishAsciify() -nnoremap rtrt TurkishAsciify() .. '_' - -" https://stackoverflow.com/questions/4256697/vim-search-and-highlight-but-do-not-jump -nnoremap * :keepjumps normal! mi*`i -nnoremap # :keepjumps normal! mi#`i - -" Save file as sudo on files that require root permission -cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! - -" replace ex mode with gq -map Q gq - -" set formatprg to sentences, for prose -map \fp :set formatprg=~/.local/bin/sentences - -" Replace all is aliased to S. -nnoremap S :%s//g - -" use esc in :term as well -tnoremap - -" call CreatePaper on word below cursor -nnoremap np gewi[[/papers/Ea]]bb:call CreatePaper(expand('')) - -" link paper -nnoremap lp gewi[[/papers/Ea]] - -" call CreateReference on word below cursor -nnoremap nr :call CreateReference(expand('')) - -" create a new note -nnoremap nn :call CreateNote() - -" If you like "Y" to work from the cursor to the end of line (which is more -" logical, but not Vi-compatible) -map Y y$ - -" Open the TagBar Plugin -nnoremap :TagbarToggle -" Fix whole buffer via ALE -nmap (ale_fix) - -" vim-test bindings -nmap t :TestNearest -nmap t :TestFile -nmap t :TestSuite -nmap t :TestLast -nmap t :TestVisit - -" Edit vimrc \ev -nnoremap ev :tabnew:e ~/.config/nvim/init.vim -" jump to buffer -nnoremap b :ls:b - -" Up and down are more logical with g.. -nnoremap k gk -nnoremap j gj -inoremap gka -inoremap gja - -" Disable highlight when is pressed -nnoremap :noh -" Space used to toggle folds, now it's x (because x is d) -nnoremap "_x - -" checkmarks on vimwiki -nmap v VimwikiToggleListItem -" add/increase header level -nmap a VimwikiAddHeaderLevel - -" sneak using grave, s is for sandwich -nmap ` Sneak_s -nmap ` Sneak_S -nnoremap ' ` - -" separate cut and delete -nnoremap x d -xnoremap x d -nnoremap xx dd -nnoremap X D - -" use the special yoink paste -nmap p (YoinkPaste_p) -nmap P (YoinkPaste_P) - -" substitute from yank -nmap ys (SubversiveSubstitute) -nmap yss (SubversiveSubstituteLine) -nmap yS (SubversiveSubstituteToEndOfLine) - -" substitute over range -nmap s (SubversiveSubstituteRange) -xmap s (SubversiveSubstituteRange) -nmap ss (SubversiveSubstituteWordRange) - -" subvert over range -nmap s (SubversiveSubvertRange) -xmap s (SubversiveSubvertRange) -nmap ss (SubversiveSubvertWordRange) - -" iterate over yank list -nmap (YoinkPostPasteSwapBack) -nmap (YoinkPostPasteSwapForward) - -" change into pwd of current directory -nnoremap cd :cd %:p:h:pwd -inoremap fn =expand("%:t:r") -nnoremap fn :put! =expand('%:t:r') - -" press \g and start writing prose -map g :Goyo -"}}} - -"{{{Tagbar -let g:tagbar_autofocus = 1 -let g:tagbar_compact = 1 -let g:tagbar_sort = 0 -let g:tagbar_width = 25 -"}}} - -"{{{ Airline -let g:airline_powerline_fonts = 1 -let g:airline#extensions#tabline#formatter = 'unique_tail' -let g:airline#extensions#tabline#enabled = 1 -let g:airline_mode_map = {} -let g:airline_mode_map['ic'] = 'INSERT' - -if !exists('g:airline_symbols') - let g:airline_symbols = {} -endif - -let g:airline_left_sep = '' -let g:airline_left_alt_sep = '' -let g:airline_right_sep = '' -let g:airline_right_alt_sep = '' - -"}}} - -"{{{ Ale -let g:ale_sign_error = '✗' -let g:ale_sign_warning = '⚑' -let g:ale_lint_on_text_changed = 'insert' -let g:ale_lint_on_enter = 0 -let g:ale_pattern_options = {'\.wiki$': {'ale_enabled': 0}} -"}}} - -"{{{ Ledger -let g:ledger_maxwidth = 48 -let g:ledger_fillstring = ' ~' -"}}} - -"{{{ UltiSnips -set runtimepath+=~/.vim/my-snippets/ -let g:UltiSnipsEditSplit = "vertical" -let g:UltiSnipsSnippetsDir = $HOME.'/.vim/my-snippets/UltiSnips' - -" ctrl + l expands the snippet, c + j/k navigates placeholders -let g:UltiSnipsExpandTrigger = "" -let g:UltiSnipsEnableSnipMate = "1" -"}}} - -"{{{ vim-startify -function! StartifyEntryFormat() - return 'WebDevIconsGetFileTypeSymbol(absolute_path) ." ". entry_path' -endfunction - -let entry_format = "' ['. index .']'. repeat(' ', (3 - strlen(index)))" - -if exists('*WebDevIconsGetFileTypeSymbol') " support for vim-devicons - let entry_format .= ". WebDevIconsGetFileTypeSymbol(entry_path) .' '. entry_path" -else - let entry_format .= '. entry_path' -endif - -let g:ascii = [ - \' | ', - \'\ \ \ / -_) | _| _ \ ` \ -_)', - \' \_/\_/\___|_|\__|\___/_|_|_|\___|', - \ '', - \] - -let g:startify_custom_header = - \ 'map(g:ascii + startify#fortune#boxed(), "\" \".v:val")' - -"}}} - -"{{{ vimwiki -let g:vimwiki_list = [{'path': '/home/yigit/nextcloud/personal_wiki/text', - \ 'path_html': '/home/yigit/nextcloud/personal_wiki/html', - \ 'auto_generate_tags': 1, - \ 'automatic_nested_syntaxes': 1, - \ 'template_path': '/home/yigit/nextcloud/personal_wiki/templates', - \ 'template_default': 'default_template', - \ 'template_ext': '.html', - \ 'auto_export': 1, - \ 'auto_tags': 1}] -let g:vimwiki_global_ext = 0 -let g:vimwiki_hl_headers = 1 -"}}} - -" {{{ vimtex -let g:vimtex_view_method='zathura' -let g:vimtex_quickfix_mode=0 -" }}} - -" {{{ Gutentags -let g:gutentags_enabled = 1 -let g:gutentags_add_default_project_roots = 0 -let g:gutentags_project_root = ['Makefile', '.git'] -let g:gutentags_exclude_filetypes = ['gitcommit', 'gitconfig', 'gitrebase', 'gitsendemail', 'git'] -let g:gutentags_generate_on_new = 1 -let g:gutentags_generate_on_missing = 1 -let g:gutentags_generate_on_write = 1 -let g:gutentags_generate_on_empty_buffer = 0 -let g:gutentags_ctags_exclude = [ -\ '*.git', '*.svn', '*.hg', -\ 'cache', 'build', 'dist', 'bin', 'node_modules', 'bower_components', -\ '*-lock.json', '*.lock', -\ '*.min.*', -\ '*.bak', -\ '*.zip', -\ '*.pyc', -\ '*.class', -\ '*.sln', -\ '*.csproj', '*.csproj.user', -\ '*.tmp', -\ '*.cache', -\ '*.vscode', -\ '*.pdb', -\ '*.exe', '*.dll', '*.bin', -\ '*.mp3', '*.ogg', '*.flac', -\ '*.swp', '*.swo', -\ '.DS_Store', '*.plist', -\ '*.bmp', '*.gif', '*.ico', '*.jpg', '*.png', '*.svg', -\ '*.rar', '*.zip', '*.tar', '*.tar.gz', '*.tar.xz', '*.tar.bz2', -\ '*.pdf', '*.doc', '*.docx', '*.ppt', '*.pptx', '*.xls', -\] -" }}} - -" vim-slime {{{ -let g:slime_target = "tmux" -let g:slime_paste_file = "$HOME/.slime_paste" -let g:slime_default_config = {"socket_name": get(split($TMUX, ","), 0), "target_pane": "{last}"} -" }}} Slime - -" devicons {{{ " -let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {} " needed -let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['wiki'] = '📔' -" }}} devicons " - -" beacon {{{ " -let g:beacon_size = 100 -let g:beacon_shrink = 0 -highlight Beacon guibg=red ctermbg=15 -" }}} beacon " - -" thesaurus_query {{{ " -let g:tq_enabled_backends = ["mthesaur_txt"] -let g:tq_truncation_on_relavance = 0 -" }}} thesaurus_query " - -" fzf.vim {{{ " -" Insert mode completion -imap (fzf-complete-word) -imap (fzf-complete-path) -imap (fzf-complete-line) -" }}} fzf.vim " - -- cgit v1.2.3-70-g09d2