diff options
author | Timmy Keller <tjk@tjkeller.xyz> | 2021-07-07 15:21:45 -0500 |
---|---|---|
committer | Timmy Keller <tjk@tjkeller.xyz> | 2021-07-07 15:21:45 -0500 |
commit | 3764b268dbeaa95a8d4b2da8d4433eab75ad8478 (patch) | |
tree | 7c0db4481dfa7c4369f3db355056703cbe442072 /nvim/init.vim | |
download | dotconfig-3764b268dbeaa95a8d4b2da8d4433eab75ad8478.tar.xz dotconfig-3764b268dbeaa95a8d4b2da8d4433eab75ad8478.zip |
dotfiles
Diffstat (limited to 'nvim/init.vim')
-rwxr-xr-x | nvim/init.vim | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/nvim/init.vim b/nvim/init.vim new file mode 100755 index 0000000..5cdb9b7 --- /dev/null +++ b/nvim/init.vim @@ -0,0 +1,88 @@ +" Manage plugins using vim-plug +if ! filereadable(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim"')) + echo "Downloading junegunn/vim-plug to manage plugins..." + silent !mkdir -p ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/ + silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim + autocmd VimEnter * PlugInstall +endif + +call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"')) +Plug 'chrisbra/Colorizer' +Plug 'junegunn/goyo.vim' +Plug 'jiangmiao/auto-pairs' +call plug#end() + +" Basic options +syntax on " Enable syntax highlighting +set number relativenumber " Enable relative line numbers +set linebreak " Word wrap +set wildmode=longest,list,full " Enable file auto-complete +set splitbelow splitright " Open splits on bottom/right instead of top/left +set hlsearch " Highlight search hits +set ignorecase " Case-insensitive search... +set smartcase " ...Unless the search term is capital +set autoindent " Keeps indentation on new lines +set mouse=a " Because sometimes it's just easier to use the mouse +set autochdir " Always change directory to current file +set cursorline " Highlight current line + +" Keybindings + " Set leader-key to comma +let mapleader ="," + " Invoke goyo with comma-m +map <leader>m :Goyo<CR> + " Invoke spellcheck mode with comma-o +map <leader>l :setlocal spell! spelllang=en_us<CR> + " Invoke spellcheck mode with comma-o +map <leader>c :set cursorcolumn!<CR> + " Send cursor to top or bottom currently visible line with ctrl-jk +" map <C-j> :call cursor(line('w$'),col('.'))<CR> +" map <C-k> :call cursor(line('w0'),col('.'))<CR> +map <C-j> <C-d> +map <C-k> <C-u> +map <C-h> 0 +map <C-l> $ + " Faster split navigation (alt-hjlk, as opposed to ctrl-w + hjlk) +map <A-h> <C-w>h +map <A-j> <C-w>j +map <A-k> <C-w>k +map <A-l> <C-w>l + +" Colorscheme for root and normal users (since vimrc is just symlinked to the root user's home) +if ($HOME) == '/root' + colorscheme zellner +else + set bg=dark + let g:gruvbox_contrast_dark = 'hard' + colorscheme gruvbox-timmy +endif + +" Behavior's exclusive to either the tty or a terminal emulator in a graphical environment +if empty($DISPLAY) + " Then clear the tty screen after exiting vim + autocmd VimLeave * :!clear +else + " Change the terminal emulator's window title and class name to vim + autocmd BufEnter * :set title + autocmd VimEnter * :silent exec "!~/Scripts/st/settitle Vim" + autocmd VimLeave * :silent exec "!~/Scripts/st/settitle st" + let &titleold="st" +endif + +" Set the cursor on a per-mode basis +let &t_SI.="\<Esc>[6 q" " Insert mode +let &t_SR.="\<Esc>[4 q" " Replace mode +let &t_EI.="\<Esc>[2 q" " Normal mode +let &t_ti.="\<Esc>[2 q" " Cursor on startup + +" Automatically deletes all trailing whitespace and newlines at end of file on save +autocmd BufWritePre * let ccc=col('.') " Set current cursor column +autocmd BufWritePre * let ccl=line('.') " Set current cursor line +autocmd BufWritePre * %s/\s\+$//e " \/ +autocmd BufWritePre * %s/\n\+\%$//e " Remove white space +autocmd BufWritePre *.[ch] %s/\%$/\r/e " /\ +autocmd BufWritePre * call cursor(ccl,ccc) " Move cursor to previous position + +" Get rid of the pointless .viminfo files that clutter the home directory +let skip_defaults_vim=1 +set viminfo="" |