From fe658d22073bd2caeb093a27f6fe7613c0df6bf1 Mon Sep 17 00:00:00 2001 From: Daniel Sissom Date: Tue, 22 Oct 2019 15:42:20 -0500 Subject: [PATCH] Cleaned up and commented vimrc (shouldn't change functionality). --- vim/vim/spell/en.utf-8.add | 2 + vim/vim/spell/en.utf-8.add.spl | Bin 1602 -> 1634 bytes vim/vimrc | 241 ++++++++++++++++++++------------- 3 files changed, 152 insertions(+), 91 deletions(-) diff --git a/vim/vim/spell/en.utf-8.add b/vim/vim/spell/en.utf-8.add index 75987ee..a99ba3e 100644 --- a/vim/vim/spell/en.utf-8.add +++ b/vim/vim/spell/en.utf-8.add @@ -117,3 +117,5 @@ discretization cryptographic Starfleet impactful +customizations +filetype diff --git a/vim/vim/spell/en.utf-8.add.spl b/vim/vim/spell/en.utf-8.add.spl index f32ba45b5fc6610e576bb855c22084f8a45513c4..1c5a9af1209a286e97d7c8efb79eb690d46dfdc8 100644 GIT binary patch literal 1634 zcmXX`%Z}Vc6s=o!cQ))m{6J{6gp^HYk!3W16fy#Y1d3)`E?0LKZI?~i-9tBvMB*1_ zJ7POVenjc>zdyNg|)hA~g` z;doy9O`q~){a&&JneiG)GRU2D_-|#4Z;v<0Y>gPRo@4`ehRaDK5n&N&^qgQ%NSJgr z>*|E$C}$gDrP*yMku+p09_g^WPD4p?;FK;6cd(sjCMu#X^?sxqDIcdG2@FUJPO5%$9 zE38YZU5EqfIxx;`?DVX!d`qgdYBOTHQ6YQyXNeY-PYIv*12AMQp7ca;;^6Syc7pRn zI7vEtBtxs2_wiJn)^e!F}ZK0y7|qoy&-#-qg2rRi7r<9q`TI<-iK-uJRj77a~O* z@t!MG`pdyNLD6UzGQ`*`wlr&g)>uT{co{8pWz54=xX=?l{Dzbnx+**>{Y&i$)f0g~ z>0ltQNkFe%eVZ)cDP13WWM=>@!?8mW!BGNoGgM6&N}q3A#AN(a!<@C!Cwt|TWqIan zpAJVP7lXOXx|9=C4+Ln|Nj?(od-INf?LD0HgxUfSDC?`&lnCb~vvtnrU z#9D53)I1U&R0=9^*0?Y?;VmsO?;RpWtayTeohOPAgq!N+P?7vgKiD|IPbHpFgN>nJ zJ4UV_`@;!U;Wvjx+|P#-OQ}Vcy$VP^W#2QpUItU@V4KnIXw~Vy=9Ka}aOe(7Un?h| zl(P#wxVw5lWwvVUey%ZL`O#1=gI=48QKuAoR$1%RUh^JdCMVur1rVn9+<$YG#%a;` zII%;lTP^lXCS#OmwaD5La;Yl1X|R6ut*8igOicZhv&5qH)7f^Ejr{X?(XDs|vkaWy zxGF>v9_{9gk0aA;uiQ8I+TY8xkY2-HRts`&T|$XY)|l8qM}$yixiiLmvH0rM>+jyk iEBP9?tdVcwF`t~}C;3tTCgA=V*|gpk+vh(Z&zO(@u{B=+ literal 1602 zcmXX`J&znk5bf&OfrJDskzTS|3vrPHLUaO4wk3=#fo#&Ap1$2?XL^S2*|m2A#19~I zda?-pCoV;#{t5hq6A~%BSAAN|s;53)SG{^QFP}Xxa~Ot4{~5E|KX9Gz!*&;kF->zW z%i(zb$X|~s7wh+uCCGxuNRmlj%Ybt)Tl|lBk}TGUF`FXSaA&xjbP^F3kw(u6_Jo9@ zZ;QU2kR0V~Lu@p=uMkN?w&IZv%h$X)t8H4jZ5;4Y(V`l?^|L$@`@#iU*gUt8^T%#9l9FV;n@a6zCX)Jp|*Iy+&jBrFW5Vd$Rfa-2R z&xH7b3~S{`+cDaBf}1bW2HXKO>$iZ;_>nJfBbz-bM1avD3YND!{=X}VH&uS%>u6mM zD;MGfFbA5M0{F|Z@jdxbC^zGdS?l!hFA^;h-z5CKpKx(j#H4M&iEiO}H3*uBaFS^b z#MOgl)xq|xSu1D65f7Z}Gn9~IuqdhyZI4TPgu!{0G;#l9g0n#51&J5XN zCdd$DFF3cX`B`HT_0-F3As%CHO6^@cxOsz=1>&i^Dcx=23@DL^`je_3c`l)P9o?_V zqCBPN!-(vR0_z6ski_CRXL&j`U6`uIUiFB{I8&%xs5%#W;gnUm^edkZMc)>cRO~aQFfwYRt9iwb1v9zU_9B2V{h0l`G-)nv=VRf7h->fmOeSNL zr@hNM5#q~Zo~yn2lxpC#Xy@J#P#!OKpk(B)`!Cs=-&m%JSzWp&M3Not^%;MTEOWH- zdxw9!t(!t>4d-a@$hUo-05QlzZ0Drw!7`=Y8EB~e=E<|~Udj{s7N1c_6CU%)S$>cg UdMaq@M`Y9bQ?-5mJ@SnCALq+4djJ3c diff --git a/vim/vimrc b/vim/vimrc index ad46972..858c7ea 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -1,18 +1,41 @@ -" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just -" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime -" you can find below. If you wish to change any of those settings, you should -" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten -" everytime an upgrade of the vim packages is performed. It is recommended to -" make changes after sourcing debian.vim since it alters the value of the -" 'compatible' option. - -" Uncomment the next line to make Vim more Vi-compatible -" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous -" options, so any other options should be set AFTER setting 'compatible'. -"set compatible - -" Vim5 and later versions support syntax highlighting. Uncommenting the -" following enables syntax highlighting by default. +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" .vimrc +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" User-specified ~/.vimrc, compatible with vim on GNU/Linux and Apple OS X +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" Functionality setup +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +" Source a global configuration file if available +if filereadable("/etc/vim/vimrc.local") + source /etc/vim/vimrc.local +endif + +" Uncomment the following to have Vim jump to the last position when reopening +" a file +if has("autocmd") + au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif +endif + +" Uncomment the following to have Vim load indentation rules and plugins +" according to the detected filetype. +if has("autocmd") + filetype plugin indent on +endif + + + +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" Syntax highlighting +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + if has("syntax") set t_Co=256 syntax on @@ -32,46 +55,66 @@ endif " turn on this option as well set background=dark -" Uncomment the following to have Vim jump to the last position when -" reopening a file -if has("autocmd") - au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif -endif -" Uncomment the following to have Vim load indentation rules and plugins -" according to the detected filetype. -if has("autocmd") - filetype plugin indent on -endif -" The following are commented out as they cause vim to behave a lot -" differently from regular Vi. They are highly recommended though. -set showcmd " Show (partial) command in status line. -set showmatch " Show matching brackets. -set ignorecase " Do case insensitive matching -set smartcase " Do smart case matching -"set incsearch " Incremental search -"set autowrite " Automatically save before commands like :next and :make -"set hidden " Hide buffers when they are abandoned -set mouse=a " Enable mouse usage (all modes) -"set nohlsearch " Turn off search highlighting -set hlsearch " Turn on search highlighting -"set expandtab " Turn tabs to spaces -set shiftwidth=4 " Auto-indent amount when using cindent, <<, >>, etc. -set softtabstop=4 " How many spaces represent a tab -set tabstop=4 " Real tab size -set autoindent " Indent level of new line set by previous line -"set smartindent " Attempt to intelligently guess level of indent for new line -set cindent " Attempt to intelligently guess level of indent for new line -set cinkeys-=0# " Don't un-indent comments -set indentkeys-=0# " Don't un-indent comments -set nf=octal,hex,alpha " additional ctrl-a increments -set spell spelllang=en_us " Set spell check language -set scrolloff=5 " Add visible lines beyond cursor at top or bottom of window -set linebreak " Soft wrap whole words together -set breakindent " Indent linebreaks to match -set showbreak=\ \ \ ⇲ " Visual linebreak indicator -set updatetime=100 " Make some plugins snappier +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" General options selection +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +set showcmd " Show (partial) command in status line. +set showmatch " Show matching brackets. +set ignorecase " Do case insensitive matching +set smartcase " Do smart case matching +set mouse=a " Enable mouse usage (all modes) +set hlsearch " Turn on search highlighting +set shiftwidth=4 " Auto-indent amount when using cindent, <<, >>, etc. +set softtabstop=4 " How many spaces represent a tab +set tabstop=4 " Real tab size +set autoindent " Indent level of new line set by previous line +set cindent " Attempt to intelligently guess level of indent for new line +set cinkeys-=0# " Don't un-indent comments +set indentkeys-=0# " Don't un-indent comments +set nf=octal,hex,alpha " additional ctrl-a increments +set spell spelllang=en_us " Set spell check language +set scrolloff=5 " Add visible lines beyond cursor at top or bottom of window +set linebreak " Soft wrap whole words together +set breakindent " Indent linebreaks to match +set showbreak=\ \ \ ⇲ " Visual linebreak indicator +set updatetime=100 " Make some plugins snappier +set backspace=indent,eol,start " Fix OS X backspace behavior +set ruler " Fix OS X missing ruler + + + +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" Filetype-specific options +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +autocmd FileType plaintex,tex,latex syntax spell toplevel +autocmd FileType plaintex,tex,latex set tw=80 +autocmd FileType tex,latex let g:tex_flavor = 'latex' +autocmd FileType pug,jade set tw=80 +autocmd FileType text set tw=80 nocindent + +autocmd BufNewFile,BufRead *.cu set filetype=c +autocmd BufNewFile,BufRead *.tp set filetype=taskpaper + +aug python + " to override ftype/python.vim + autocmd FileType python setlocal ts=4 sts=4 sw=4 noexpandtab +aug end + +syntax spell toplevel + + + + +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" Key mapping customizations +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + " Turn off search highlighting with Enter nnoremap :nohlsearch @@ -93,40 +136,28 @@ inoremap " Allow saving files with sudo after starting vim cmap w!! w !sudo tee > /dev/null % -autocmd FileType plaintex,tex,latex syntax spell toplevel -autocmd FileType plaintex,tex,latex set tw=80 -autocmd FileType pug,jade set tw=80 -autocmd FileType text set tw=80 nocindent - -set backspace=indent,eol,start -set ruler - -au BufNewFile,BufRead *.cu set filetype=c -au BufNewFile,BufRead *.tp set filetype=taskpaper -aug python - " to override ftype/python.vim - au FileType python setlocal ts=4 sts=4 sw=4 noexpandtab -aug end -" Source a global configuration file if available -if filereadable("/etc/vim/vimrc.local") - source /etc/vim/vimrc.local -endif +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" Plugin helper functions +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -syntax spell toplevel -let g:tex_flavor = 'latex' +" Build script when installing/updating YouCompleteMe function! BuildYCM(info) " info is a dictionary with 3 fields " - name: name of the plugin " - status: 'installed', 'updated', or 'unchanged' " - force: set on PlugInstall! or PlugUpdate! if a:info.status == 'installed' || a:info.force + " YCM dependencies for --all option: + " gcc, make, cmake, python3, clang, mono, go, node.js, npm, rust, jdk8 !./install.py --all endif endfunction + +" Pick a more convenient spot for the latency from loading YCM let g:YouCompleteMeLazyLoaded = 0 function! LazyLoadingYMC() if g:YouCompleteMeLazyLoaded == 0 @@ -135,27 +166,62 @@ function! LazyLoadingYMC() endif endfunction autocmd BufRead * call timer_start(1, {id->execute('call LazyLoadingYMC()')} ) -"autocmd BufWinEnter * call timer_start(1, {id->execute('call LazyLoadingYMC()')} ) -"autocmd InsertEnter * call LazyLoadingYMC() -"autocmd CursorHold * call LazyLoadingYMC() -"autocmd CursorHoldI * call LazyLoadingYMC() +" (also try BufWinEnter, InsertEnter, or CursorHold and CursorHoldI events) + + +" Enable vimtex completions for YCM +if !exists('g:ycm_semantic_triggers') + let g:ycm_semantic_triggers = {} +endif +autocmd VimEnter * let g:ycm_semantic_triggers.tex=g:vimtex#re#youcompleteme + + + +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" Plugin setup with vim-plug +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +" Use with :PlugInstall and :PlugUpdate + +" Set custom plugin directory call plug#begin('~/.vim/vim-plug') -Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'ycm-core/YouCompleteMe', { 'do': function('BuildYCM'), 'on': [] } -Plug 'lervag/vimtex' +Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'dense-analysis/ale' -Plug 'godlygeek/tabular' Plug 'airblade/vim-gitgutter' +Plug 'godlygeek/tabular' Plug 'tpope/vim-surround' Plug 'tpope/vim-unimpaired' Plug 'tpope/vim-speeddating' Plug 'tpope/vim-repeat' +Plug 'lervag/vimtex' call plug#end() -" press / instead of _ + + +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" Plugin options +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +" Close the YCM preview window automatically +let g:ycm_autoclose_preview_window_after_insertion = 1 +let g:ycm_autoclose_preview_window_after_completion = 1 + +" Start with ale linting disabled +let g:ale_enabled = 0 + + + +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" Plugin key mappings +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +" (optionally press / instead of _ for :NERDTreeToggle) nnoremap :NERDTreeToggle nnoremap :ALEToggle nmap [W (ale_first) @@ -166,14 +232,7 @@ nmap [e (ale_previous_wrap_error) nmap ]e (ale_next_wrap_error) -let g:ycm_autoclose_preview_window_after_insertion = 1 -let g:ycm_autoclose_preview_window_after_completion = 1 - -let g:ale_enabled = 0 - -" enable vimtex completions for YCM -if !exists('g:ycm_semantic_triggers') - let g:ycm_semantic_triggers = {} -endif -autocmd VimEnter * let g:ycm_semantic_triggers.tex=g:vimtex#re#youcompleteme +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +" End +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~