dotfiles/.config/vim/vim_nix

56 lines
2 KiB
Text

" vim: filetype=vim
" ==============================
" Linux Specific Configuration
" ==============================
" ----- Cleaning up
set undodir=$XDG_DATA_HOME/vim/undo
set directory=$XDG_DATA_HOME/vim/swap
set backupdir=$XDG_DATA_HOME/vim/backup
set viewdir=$XDG_DATA_HOME/vim/view
if !has('nvim')
set viminfo+='1000,n$XDG_DATA_HOME/vim/viminfo
else
set viminfo+='1000,n$XDG_DATA_HOME/nvim/nviminfo
endif
set runtimepath=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
let $MYVIMRC="$XDG_CONFIG_HOME/vim/vimrc"
" ----- Mutt
au BufRead /tmp/mutt-* set tw=72
" ----- Execute corresponding language
" python
if !has("nvim")
autocmd FileType python map <buffer> <F9> :w<CR>:!clear; python3 "%"<CR>
autocmd FileType python imap <buffer> <F9> <esc>:w<CR>:!clear; python3 "%"<CR>
else
autocmd FileType python map <buffer> <F9> :w<CR>:vs<CR>:ter python3 "%"<CR>
autocmd FileType python imap <buffer> <F9> <esc> :w<CR>:vs<CR>:ter python3 "%"<CR>
endif
" sh (either bash or zsh)
autocmd FileType sh map <buffer> <F9> :w<CR>:vs<CR>:ter sh "%"<CR>
autocmd FileType sh imap <buffer> <F9> <esc> :w<CR>:vs<CR>:ter sh "%"<CR>
" c (untested)
autocmd FileType c map <buffer> <F9> :w<CR>:vs<CR>:ter gcc "%" -o %< && ./"%" && read<CR>
autocmd FileType c imap <buffer> <F9> <esc> :w<CR>:vs<CR>:ter gcc "%" -o %< && ./"%" && read<CR>
" ----- Automatically Render PDF
autocmd FileType plaintex command! -nargs=0 Lw w !pdflatex % > /dev/null
autocmd FileType tex command! -nargs=0 Lw w !pdflatex % > /dev/null
" ----- Install plug (Plugin Manager)
if empty(glob('~/.config/vim/autoload/plug.vim'))
silent !curl -fLo ~/.config/vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
" - Lf Shortcut
" let g:lf_map_keys = 0
" map <C-n> :Lf<CR>
" - exit if only nerdtree left
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif