"-------------------------------------------------------------------------- " General settings "-------------------------------------------------------------------------- set expandtab set shiftwidth=4 set tabstop=4 set hidden set signcolumn=yes:2 set relativenumber set number set termguicolors set undofile set spell set title set ignorecase set smartcase set wildmode=longest:full,full set nowrap set list set mouse=a set scrolloff=8 set sidescrolloff=8 set nojoinspaces set splitright set clipboard=unnamedplus set confirm set exrc set backup set backupdir=~/.local/share/nvim/backup// set updatetime=300 " Reduce time for highlighting other references set redrawtime=10000 " Allow more time for loading syntax on large files set cc=80 set cursorline "-------------------------------------------------------------------------- " Key maps "-------------------------------------------------------------------------- let mapleader = "\" nmap ve :edit ~/.config/nvim/init.vim nmap vc :edit ~/.config/nvim/coc-settings.json nmap vr :source ~/.config/nvim/init.vim nmap k :nohlsearch nmap Q :bufdo bdelete " Allow gf to open non-existent files map gf :edit " Reselect visual selection after indenting vnoremap < >gv " Maintain the cursor position when yanking a visual selection " http://ddrscott.github.io/blog/2016/yank-without-jank/ vnoremap y myy`y vnoremap Y myY`y " When text is wrapped, move by terminal rows, not lines, unless a count is provided noremap j (v:count == 0 ? 'gj' : 'j') noremap k (v:count == 0 ? 'gk' : 'k') " Paste replace visual selection without copying it vnoremap p "_dP " Make Y behave like the other capitals nnoremap Y y$ " Keep it centered nnoremap n nzzzv nnoremap N Nzzzv nnoremap J mzJ`z " Open the current file in the default program nmap x :!xdg-open % " Quicky escape to normal mode imap jj " Easy insertion of a trailing ; or , from insert mode imap ;; A; imap ,, A, cmap w!! %!sudo tee > /dev/null % "-------------------------------------------------------------------------- " Plugins "-------------------------------------------------------------------------- " Automatically install vim-plug let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' if empty(glob(data_dir . '/autoload/plug.vim')) silent execute '!curl -fLo '.data_dir.'/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(data_dir . '/plugins') source ~/.config/nvim/plugins/airline.vim " source ~/.config/nvim/plugins/arduino.vim " source ~/.config/nvim/plugins/coc.vim source ~/.config/nvim/plugins/catppuccin.vim source ~/.config/nvim/plugins/commentary.vim source ~/.config/nvim/plugins/context-commentstring.vim source ~/.config/nvim/plugins/dispatch.vim " source ~/.config/nvim/plugins/gruvbox.vim source ~/.config/nvim/plugins/editorconfig.vim source ~/.config/nvim/plugins/eunuch.vim source ~/.config/nvim/plugins/exchange.vim source ~/.config/nvim/plugins/firenvim.vim source ~/.config/nvim/plugins/floaterm.vim source ~/.config/nvim/plugins/fugitive.vim source ~/.config/nvim/plugins/fzf.vim source ~/.config/nvim/plugins/heritage.vim source ~/.config/nvim/plugins/lastplace.vim source ~/.config/nvim/plugins/lion.vim source ~/.config/nvim/plugins/markdown-preview.vim source ~/.config/nvim/plugins/nerdtree.vim source ~/.config/nvim/plugins/pasta.vim source ~/.config/nvim/plugins/peekaboo.vim source ~/.config/nvim/plugins/phpactor.vim source ~/.config/nvim/plugins/polyglot.vim source ~/.config/nvim/plugins/projectionist.vim source ~/.config/nvim/plugins/quickscope.vim source ~/.config/nvim/plugins/repeat.vim source ~/.config/nvim/plugins/rooter.vim source ~/.config/nvim/plugins/sayonara.vim source ~/.config/nvim/plugins/sensible.vim source ~/.config/nvim/plugins/smooth-scroll.vim source ~/.config/nvim/plugins/splitjoin.vim source ~/.config/nvim/plugins/surround.vim source ~/.config/nvim/plugins/targets.vim source ~/.config/nvim/plugins/textobj-xmlattr.vim source ~/.config/nvim/plugins/tmux-navigator.vim source ~/.config/nvim/plugins/unimpaired.vim source ~/.config/nvim/plugins/vim-test.vim source ~/.config/nvim/plugins/visual-multi.vim source ~/.config/nvim/plugins/visual-star-search.vim source ~/.config/nvim/plugins/which-key.vim call plug#end() doautocmd User PlugLoaded colorscheme catppuccin "-------------------------------------------------------------------------- " Miscellaneous "-------------------------------------------------------------------------- augroup FileTypeOverrides autocmd! " Use '//' instead of '/* */' comments autocmd FileType php setlocal commentstring=//%s autocmd TermOpen * setlocal nospell augroup END