. . .
at main 251 lines 5.9 kB view raw
1" This config is a subset of what's in my neovide init.vim; TODO should probably 2" consolidate & have that one source this one tbh 3 4" Plugins 5 6call plug#begin('~/.vim/plugged') 7 8" General 9Plug 'preservim/nerdtree' 10Plug 'scrooloose/nerdcommenter' 11Plug 'tmhedberg/SimpylFold' 12 13" Appearance 14Plug 'vim-airline/vim-airline' 15Plug 'vim-airline/vim-airline-themes' 16Plug 'bluz71/vim-nightfly-colors', { 'as': 'nightfly' } 17Plug 'junegunn/goyo.vim' 18Plug 'junegunn/limelight.vim' 19 20" Web 21Plug 'othree/html5.vim' 22Plug 'pangloss/vim-javascript' 23 24" Rust 25Plug 'rust-lang/rust.vim' 26 27call plug#end() 28 29let g:SimpylFold_docstring_preview=1 30 31let g:NERDTreeWinPos = 'right' 32let g:NERDTreeFileLines = 1 33let g:NERDTreeShowHidden = 1 34let g:NERDTreeMinimalUI = 1 35let g:NERDTreeShowBookmarks = 1 36let g:NERDTreeChDirMode = 2 37 38set nocompatible 39 40" theme / appearance 41colorscheme nightfly 42syntax on 43filetype on 44filetype plugin on 45filetype indent on 46set t_Co=256 47set guifont=Source\ Code\ Pro:h10 48set termguicolors 49set number 50set cursorline 51set signcolumn=yes 52 53" tabbing 54set shiftwidth=4 55set tabstop=4 56set softtabstop=4 57set smartindent 58set expandtab 59 60" make line breaks traversable 61set backspace=indent,eol,start 62set whichwrap+=<,>,h,l 63 64" use system clipboard 65set clipboard=unnamed 66set clipboard+=unnamedplus 67 68" nerd shit / &c 69set encoding=utf-8 70set backupdir=~/.vim/backup 71set directory=~/.vim/swap 72set updatetime=200 73set history=1000 74set backup 75set ruler " column / row number 76set showcmd 77set showmode 78set showmatch 79set hlsearch 80set incsearch 81set wildmenu 82set wildmode=list:longest 83set foldmethod=indent 84set foldlevel=99 85 86" Highlighting 87 88" highlight spaces at end of line (when not in insert mode) 89:highlight ExtraWhitespace ctermbg=red guibg=red 90:match ExtraWhitespace /\s\+\%#\@<!$/ 91:au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/ 92:au InsertLeave * match ExtraWhitespace /\s\+$/ 93 94" Keymapping 95 96let mapleader = "," 97 98" replace word 99nnoremap <leader>r lbdei 100 101" enter insert mode directly from visual mode 102vnoremap i <esc>i 103" copy from visual mode 104vnoremap <c-c> "+y 105 106" ctrl+f to find files 107nnoremap <c-f> :Files<cr> 108 109" alt+direction to move lines up/down 110nnoremap <silent><m-j> mz:m+<return>`z 111nnoremap <silent><m-k> mz:m-2<return>`z 112" & the same for multiple lines in visual mode 113" no idea how this works, took it from nori's dotfiles (https://nori.gay) 114vnoremap <silent><m-j> :m'>+<return>`<my`>mzgv`yo`z 115vnoremap <silent><m-k> :m'<-2<return>`>my`<mzgv`yo`z 116 117" same as above but for up/down instead of j/k 118nnoremap <silent><m-down> mz:m+<return>`z 119nnoremap <silent><m-up> mz:m-2<return>`z 120vnoremap <silent><m-down> :m'>+<return>`<my`>mzgv`yo`z 121vnoremap <silent><m-up> :m'<-2<return>`>my`<mzgv`yo`z 122 123" ctrl-z as undo, per my muscle memory 124nnoremap <c-z> u 125" +shift for redo 126nnoremap <c-s-z> <c-r> 127 128" undo current insert operation with ctrl-z 129inoremap <c-z> <esc>ui 130" & redo with ctrl-shift-z 131inoremap <c-s-z> <esc><c-r>i 132 133" paste in insert mode 134inoremap <c-v> <esc>:set paste<return>a<c-r>+<esc>:set nopaste<return>a 135" paste in normal mode 136nnoremap <c-v> :set paste<return>i<c-r>+<esc>:set nopaste<return> 137" jj to quickly exit insert 138inoremap jj <esc> 139 140" cycle through completion options 141inoremap <leader><tab> <c-n> 142inoremap <leader><s-tab> <c-p> 143 144" back to previous place 145nnoremap <leader>. `` 146 147" nerdtree - maybe make this a 2-key command instead of 3 148nnoremap <silent><leader>nt :NERDTreeToggle<return> 149 150" some niceties for editing this file 151nnoremap <leader>src :source ~/.vimrc<return> 152nnoremap <leader>erc :e ~/.vimrc<return> 153nnoremap <leader>plug :PlugInstall<return> 154 155" launch a terminal at cwd 156nnoremap <leader>tt :!alacritty &<return><return> 157 158" splits 159nnoremap <leader>hh :vsplit<return><c-w>l 160nnoremap <leader>vv :split<return><c-w> 161 162" folding 163nnoremap <space> za 164 165" insert lines above/below without entering insert mode 166nnoremap o o<esc> 167nnoremap O O<esc> 168 169" center the cursor when jumping between search results 170nnoremap n nzz 171nnoremap N Nzz 172 173" search for tab to clear search results 174nnoremap /<tab> :noh<return> 175 176" shift+direction to move between splits 177nnoremap <s-j> <c-w>j 178nnoremap <s-h> <c-w>h 179nnoremap <s-k> <c-w>k 180nnoremap <s-l> <c-w>l 181 182" ctrl+left/right to hop entire words at a time 183nnoremap <c-l> <c-right> 184nnoremap <c-h> <c-left> 185 186" ctrl+shift+right to hop to end of line 187nnoremap <c-s-l> $ 188nnoremap <c-s-right> $ 189 190" & similar for hopping to the start 191nnoremap <c-s-h> ^ 192nnoremap <c-s-left> ^ 193 194" maybe figure out how to make this terminal-mode only; makes ctrl-c work in 195" normal mode 196nnoremap <c-c> i<c-c><esc> 197 198" exit the terminal the same way as exiting insert mode 199tnoremap <esc> <C-\><C-n> 200tnoremap jj <C-\><C-n> 201 202" quick quit 203nnoremap <leader>q :q<return> 204" just close the whole damn editor 205nnoremap <leader><leader><leader>q :qa!<return> 206 207" ctrl-s to save, normal & insert modes 208nnoremap <C-s> :w<return> 209inoremap <c-s> <esc>:w<return>li 210 211" Goyo 212nnoremap <silent><leader>zen :Goyo<return> 213 214function! IntoZen() 215 setlocal linebreak 216 :Limelight 217 " navigate by actual position on screen instead of by row/column 218 nnoremap <buffer> j gj 219 nnoremap <buffer> k gk 220 nnoremap <buffer> $ g$ 221 nnoremap <buffer> ^ g^ 222 " undos break on punctuation 223 inoremap <buffer> . .<c-g>u 224 inoremap <buffer> ! !<c-g>u 225 inoremap <buffer> ? ?<c-g>u 226 inoremap <buffer> , ,<c-g>u 227 inoremap <buffer> ; ;<c-g>u 228 inoremap <buffer> : :<c-g>u 229endfunction 230 231function! ExitZen() 232 setlocal nolinebreak 233 :Limelight! 234 unmap <buffer> j 235 unmap <buffer> k 236 unmap <buffer> $ 237 unmap <buffer> ^ 238 iunmap <buffer> . 239 iunmap <buffer> ! 240 iunmap <buffer> ? 241 iunmap <buffer> , 242 iunmap <buffer> ; 243 iunmap <buffer> : 244endfunction 245 246autocmd! User GoyoEnter nested call IntoZen() 247autocmd! User GoyoLeave nested call ExitZen() 248 249" Without this line, search results get highlighted whenever I source the file 250:noh 251