Advertisement
Guest User

.vimrc

a guest
Jan 29th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 11.39 KB | None | 0 0
  1. let mapleader =","
  2.  
  3. call plug#begin('~/.config/nvim/plugged')
  4. Plug 'tpope/vim-surround'
  5. Plug 'scrooloose/nerdtree'
  6. Plug 'junegunn/goyo.vim'
  7. Plug 'PotatoesMaster/i3-vim-syntax'
  8. Plug 'jreybert/vimagit'
  9. Plug 'LukeSmithxyz/vimling'
  10. Plug 'vimwiki/vimwiki'
  11. Plug 'tpope/vim-commentary'
  12. Plug 'itchyny/lightline.vim'
  13. Plug 'mengelbrecht/lightline-bufferline'
  14. Plug 'leafgarland/typescript-vim'
  15. Plug 'ctrlpvim/ctrlp.vim'
  16. call plug#end()
  17.  
  18. set bg=light
  19. set mouse=a
  20. set nohlsearch
  21. set clipboard=unnamedplus
  22. " Some basics:
  23.     set nocompatible
  24.     filetype plugin on
  25.     syntax on
  26.     set encoding=utf-8
  27.     set number relativenumber
  28. " Enable autocompletion:
  29.     set wildmode=longest,list,full
  30. " Disables automatic commenting on newline:
  31.     autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
  32.  
  33. " Goyo plugin makes text more readable when writing prose:
  34.     map <leader>f :Goyo \| set linebreak<CR>
  35.  
  36. " Spell-check set to <leader>o, 'o' for 'orthography':
  37.     map <leader>o :setlocal spell! spelllang=en_us<CR>
  38.  
  39. " Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
  40.     set splitbelow splitright
  41.  
  42. " Nerd tree
  43.     map <C-n> :NERDTreeToggle<CR>
  44.     autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
  45.  
  46. " Shortcutting split navigation, saving a keypress:
  47.     map <C-h> <C-w>h
  48.     map <C-j> <C-w>j
  49.     map <C-k> <C-w>k
  50.     map <C-l> <C-w>l
  51.  
  52. " Check file in shellcheck:
  53.     map <leader>s :!clear && shellcheck %<CR>
  54.  
  55. " Open my bibliography file in split
  56.     map <leader>b :vsp<space>$BIB<CR>
  57.     map <leader>r :vsp<space>$REFER<CR>
  58.  
  59. " Replace all is aliased to S.
  60.     nnoremap S :%s//g<Left><Left>
  61.  
  62. " Compile document, be it groff/LaTeX/markdown/etc.
  63.     map <leader>c :w! \| !compiler <c-r>%<CR>
  64.  
  65. " Open corresponding .pdf/.html or preview
  66.     map <leader>p :!opout <c-r>%<CR><CR>
  67.  
  68. " Runs a script that cleans out tex build files whenever I close out of a .tex file.
  69.     autocmd VimLeave *.tex !texclear %
  70.  
  71. " Ensure files are read as what I want:
  72.     let g:vimwiki_ext2syntax = {'.Rmd': 'markdown', '.rmd': 'markdown','.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'}
  73.     let g:vimwiki_list = [{'path': '~/vimwiki', 'syntax': 'markdown', 'ext': '.md'}]
  74.     autocmd BufRead,BufNewFile /tmp/calcurse*,~/.calcurse/notes/* set filetype=markdown
  75.     autocmd BufRead,BufNewFile *.ms,*.me,*.mom,*.man set filetype=groff
  76.     autocmd BufRead,BufNewFile *.tex set filetype=tex
  77.  
  78. " Copy selected text to system clipboard (requires gvim/nvim/vim-x11 installed):
  79.     vnoremap <C-c> "+y
  80.     map <C-p> "+P
  81.  
  82. " Enable Goyo by default for mutt writting
  83.     " Goyo's width will be the line limit in mutt.
  84.     autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80
  85.     autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo
  86.  
  87. " Automatically deletes all trailing whitespace on save.
  88.     autocmd BufWritePre * %s/\s\+$//e
  89.  
  90. " When shortcut files are updated, renew bash and ranger configs with new material:
  91.     autocmd BufWritePost ~/.bmdirs,~/.bmfiles !shortcuts
  92.  
  93. " Run xrdb whenever Xdefaults or Xresources are updated.
  94.     autocmd BufWritePost ~/.Xresources,~/.Xdefaults !xrdb %
  95.  
  96. " Navigating with guides
  97.     inoremap <leader><leader> <Esc>/<++><Enter>"_c4l
  98.     vnoremap <leader><leader> <Esc>/<++><Enter>"_c4l
  99.     map <leader><leader> <Esc>/<++><Enter>"_c4l
  100.  
  101. """LATEX
  102.     " Word count:
  103.     autocmd FileType tex map <leader><leader>o :w !detex \| wc -w<CR>
  104.     " Code snippets
  105.     autocmd FileType tex inoremap ,fr \begin{frame}<Enter>\frametitle{}<Enter><Enter><++><Enter><Enter>\end{frame}<Enter><Enter><++><Esc>6kf}i
  106.     autocmd FileType tex inoremap ,fi \begin{fitch}<Enter><Enter>\end{fitch}<Enter><Enter><++><Esc>3kA
  107.     autocmd FileType tex inoremap ,exe \begin{exe}<Enter>\ex<Space><Enter>\end{exe}<Enter><Enter><++><Esc>3kA
  108.     autocmd FileType tex inoremap ,em \emph{}<++><Esc>T{i
  109.     autocmd FileType tex inoremap ,bf \textbf{}<++><Esc>T{i
  110.     autocmd FileType tex vnoremap , <ESC>`<i\{<ESC>`>2la}<ESC>?\\{<Enter>a
  111.     autocmd FileType tex inoremap ,it \textit{}<++><Esc>T{i
  112.     autocmd FileType tex inoremap ,ct \textcite{}<++><Esc>T{i
  113.     autocmd FileType tex inoremap ,cp \parencite{}<++><Esc>T{i
  114.     autocmd FileType tex inoremap ,glos {\gll<Space><++><Space>\\<Enter><++><Space>\\<Enter>\trans{``<++>''}}<Esc>2k2bcw
  115.     autocmd FileType tex inoremap ,x \begin{xlist}<Enter>\ex<Space><Enter>\end{xlist}<Esc>kA<Space>
  116.     autocmd FileType tex inoremap ,ol \begin{enumerate}<Enter><Enter>\end{enumerate}<Enter><Enter><++><Esc>3kA\item<Space>
  117.     autocmd FileType tex inoremap ,ul \begin{itemize}<Enter><Enter>\end{itemize}<Enter><Enter><++><Esc>3kA\item<Space>
  118.     autocmd FileType tex inoremap ,li <Enter>\item<Space>
  119.     autocmd FileType tex inoremap ,ref \ref{}<Space><++><Esc>T{i
  120.     autocmd FileType tex inoremap ,tab \begin{tabular}<Enter><++><Enter>\end{tabular}<Enter><Enter><++><Esc>4kA{}<Esc>i
  121.     autocmd FileType tex inoremap ,ot \begin{tableau}<Enter>\inp{<++>}<Tab>\const{<++>}<Tab><++><Enter><++><Enter>\end{tableau}<Enter><Enter><++><Esc>5kA{}<Esc>i
  122.     autocmd FileType tex inoremap ,can \cand{}<Tab><++><Esc>T{i
  123.     autocmd FileType tex inoremap ,con \const{}<Tab><++><Esc>T{i
  124.     autocmd FileType tex inoremap ,v \vio{}<Tab><++><Esc>T{i
  125.     autocmd FileType tex inoremap ,a \href{}{<++>}<Space><++><Esc>2T{i
  126.     autocmd FileType tex inoremap ,sc \textsc{}<Space><++><Esc>T{i
  127.     autocmd FileType tex inoremap ,chap \chapter{}<Enter><Enter><++><Esc>2kf}i
  128.     autocmd FileType tex inoremap ,sec \section{}<Enter><Enter><++><Esc>2kf}i
  129.     autocmd FileType tex inoremap ,ssec \subsection{}<Enter><Enter><++><Esc>2kf}i
  130.     autocmd FileType tex inoremap ,sssec \subsubsection{}<Enter><Enter><++><Esc>2kf}i
  131.     autocmd FileType tex inoremap ,st <Esc>F{i*<Esc>f}i
  132.     autocmd FileType tex inoremap ,beg \begin{DELRN}<Enter><++><Enter>\end{DELRN}<Enter><Enter><++><Esc>4k0fR:MultipleCursorsFind<Space>DELRN<Enter>c
  133.     autocmd FileType tex inoremap ,up <Esc>/usepackage<Enter>o\usepackage{}<Esc>i
  134.     autocmd FileType tex nnoremap ,up /usepackage<Enter>o\usepackage{}<Esc>i
  135.     autocmd FileType tex inoremap ,tt \texttt{}<Space><++><Esc>T{i
  136.     autocmd FileType tex inoremap ,bt {\blindtext}
  137.     autocmd FileType tex inoremap ,nu $\varnothing$
  138.     autocmd FileType tex inoremap ,col \begin{columns}[T]<Enter>\begin{column}{.5\textwidth}<Enter><Enter>\end{column}<Enter>\begin{column}{.5\textwidth}<Enter><++><Enter>\end{column}<Enter>\end{columns}<Esc>5kA
  139.     autocmd FileType tex inoremap ,rn (\ref{})<++><Esc>F}i
  140.  
  141. """HTML
  142.     autocmd FileType html inoremap ,b <b></b><Space><++><Esc>FbT>i
  143.     autocmd FileType html inoremap ,it <em></em><Space><++><Esc>FeT>i
  144.     autocmd FileType html inoremap ,1 <h1></h1><Enter><Enter><++><Esc>2kf<i
  145.     autocmd FileType html inoremap ,2 <h2></h2><Enter><Enter><++><Esc>2kf<i
  146.     autocmd FileType html inoremap ,3 <h3></h3><Enter><Enter><++><Esc>2kf<i
  147.     autocmd FileType html inoremap ,p <p></p><Enter><Enter><++><Esc>02kf>a
  148.     autocmd FileType html inoremap ,a <a<Space>href=""><++></a><Space><++><Esc>14hi
  149.     autocmd FileType html inoremap ,e <a<Space>target="_blank"<Space>href=""><++></a><Space><++><Esc>14hi
  150.     autocmd FileType html inoremap ,ul <ul><Enter><li></li><Enter></ul><Enter><Enter><++><Esc>03kf<i
  151.     autocmd FileType html inoremap ,li <Esc>o<li></li><Esc>F>a
  152.     autocmd FileType html inoremap ,ol <ol><Enter><li></li><Enter></ol><Enter><Enter><++><Esc>03kf<i
  153.     autocmd FileType html inoremap ,im <img src="" alt="<++>"><++><esc>Fcf"a
  154.     autocmd FileType html inoremap ,td <td></td><++><Esc>Fdcit
  155.     autocmd FileType html inoremap ,tr <tr></tr><Enter><++><Esc>kf<i
  156.     autocmd FileType html inoremap ,th <th></th><++><Esc>Fhcit
  157.     autocmd FileType html inoremap ,tab <table><Enter></table><Esc>O
  158.     autocmd FileType html inoremap ,gr <font color="green"></font><Esc>F>a
  159.     autocmd FileType html inoremap ,rd <font color="red"></font><Esc>F>a
  160.     autocmd FileType html inoremap ,yl <font color="yellow"></font><Esc>F>a
  161.     autocmd FileType html inoremap ,dt <dt></dt><Enter><dd><++></dd><Enter><++><esc>2kcit
  162.     autocmd FileType html inoremap ,dl <dl><Enter><Enter></dl><enter><enter><++><esc>3kcc
  163.     autocmd FileType html inoremap &<space> &amp;<space>
  164.     autocmd FileType html inoremap á &aacute;
  165.     autocmd FileType html inoremap é &eacute;
  166.     autocmd FileType html inoremap í &iacute;
  167.     autocmd FileType html inoremap ó &oacute;
  168.     autocmd FileType html inoremap ú &uacute;
  169.     autocmd FileType html inoremap ä &auml;
  170.     autocmd FileType html inoremap ë &euml;
  171.     autocmd FileType html inoremap ï &iuml;
  172.     autocmd FileType html inoremap ö &ouml;
  173.     autocmd FileType html inoremap ü &uuml;
  174.     autocmd FileType html inoremap ã &atilde;
  175.     autocmd FileType html inoremap ẽ &etilde;
  176.     autocmd FileType html inoremap ĩ &itilde;
  177.     autocmd FileType html inoremap õ &otilde;
  178.     autocmd FileType html inoremap ũ &utilde;
  179.     autocmd FileType html inoremap ñ &ntilde;
  180.     autocmd FileType html inoremap à &agrave;
  181.     autocmd FileType html inoremap è &egrave;
  182.     autocmd FileType html inoremap ì &igrave;
  183.     autocmd FileType html inoremap ò &ograve;
  184.     autocmd FileType html inoremap ù &ugrave;
  185.  
  186.  
  187. """.bib
  188.     autocmd FileType bib inoremap ,a @article{<Enter>author<Space>=<Space>{<++>},<Enter>year<Space>=<Space>{<++>},<Enter>title<Space>=<Space>{<++>},<Enter>journal<Space>=<Space>{<++>},<Enter>volume<Space>=<Space>{<++>},<Enter>pages<Space>=<Space>{<++>},<Enter>}<Enter><++><Esc>8kA,<Esc>i
  189.     autocmd FileType bib inoremap ,b @book{<Enter>author<Space>=<Space>{<++>},<Enter>year<Space>=<Space>{<++>},<Enter>title<Space>=<Space>{<++>},<Enter>publisher<Space>=<Space>{<++>},<Enter>}<Enter><++><Esc>6kA,<Esc>i
  190.     autocmd FileType bib inoremap ,c @incollection{<Enter>author<Space>=<Space>{<++>},<Enter>title<Space>=<Space>{<++>},<Enter>booktitle<Space>=<Space>{<++>},<Enter>editor<Space>=<Space>{<++>},<Enter>year<Space>=<Space>{<++>},<Enter>publisher<Space>=<Space>{<++>},<Enter>}<Enter><++><Esc>8kA,<Esc>i
  191.  
  192. "MARKDOWN
  193.     autocmd Filetype markdown,rmd map <leader>w yiWi[<esc>Ea](<esc>pa)
  194.     autocmd Filetype markdown,rmd inoremap ,n ---<Enter><Enter>
  195.     autocmd Filetype markdown,rmd inoremap ,b ****<++><Esc>F*hi
  196.     autocmd Filetype markdown,rmd inoremap ,s ~~~~<++><Esc>F~hi
  197.     autocmd Filetype markdown,rmd inoremap ,e **<++><Esc>F*i
  198.     autocmd Filetype markdown,rmd inoremap ,h ====<Space><++><Esc>F=hi
  199.     autocmd Filetype markdown,rmd inoremap ,i ![](<++>)<++><Esc>F[a
  200.     autocmd Filetype markdown,rmd inoremap ,a [](<++>)<++><Esc>F[a
  201.     autocmd Filetype markdown,rmd inoremap ,1 #<Space><Enter><++><Esc>kA
  202.     autocmd Filetype markdown,rmd inoremap ,2 ##<Space><Enter><++><Esc>kA
  203.     autocmd Filetype markdown,rmd inoremap ,3 ###<Space><Enter><++><Esc>kA
  204.     autocmd Filetype markdown,rmd inoremap ,l --------<Enter>
  205.     autocmd Filetype rmd inoremap ,r ```{r}<CR>```<CR><CR><esc>2kO
  206.     autocmd Filetype rmd inoremap ,p ```{python}<CR>```<CR><CR><esc>2kO
  207.     autocmd Filetype rmd inoremap ,c ```<cr>```<cr><cr><esc>2kO
  208.  
  209. """.xml
  210.     autocmd FileType xml inoremap ,a <a href="<++>"><++></a><++><Esc>F"ci"
  211.     autocmd FileType txt,md set wrap
  212.     autocmd FileType txt,md set linebreak
  213.     autocmd FileType txt,md set formatoptions += t
  214.  
  215.  
  216. " Lightline
  217.     set laststatus=2
  218.     set showtabline=2
  219.     let g:lightline = {}
  220.     let g:lightline.tabline          = {'left': [['buffers']], 'right': [['close']]}
  221.     let g:lightline.component_expand = {'buffers': 'lightline#bufferline#buffers'}
  222.     let g:lightline.component_type   = {'buffers': 'tabsel'}
  223.  
  224. " tabs
  225.     set shiftwidth=4
  226.     set softtabstop=4
  227.     set tabstop=8
  228.     set expandtab
  229.     autocmd FileType js,html,sass,css
  230.     autocmd FileType js,html,sass,css set shiftwidth=2
  231.     autocmd FileType js,html,sass,css set softtabstop=2
  232.     autocmd FileType js,html,sass,css set tabstop=4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement