87 lines
3.4 KiB
VimL
87 lines
3.4 KiB
VimL
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
|
||
set viminfo+='1000,n$XDG_DATA_HOME/vim/viminfo
|
||
set runtimepath=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
|
||
|
||
|
||
" Install vim-plug
|
||
if empty(glob('$XDG_DATA_HOME/vim/autoload/plug.vim'))
|
||
silent !curl -fLo $XDG_DATA_HOME/vim/autoload/plug.vim --create-dirs
|
||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
|
||
endif
|
||
|
||
" Specify a directory for plugins
|
||
" Install plugins
|
||
call plug#begin('$XDG_DATA_HOME/vim/plugged')
|
||
|
||
Plug 'elzr/vim-json'
|
||
Plug 'arcticicestudio/nord-vim'
|
||
|
||
" Initialize plugin system
|
||
call plug#end()
|
||
|
||
set nocompatible " Vim defaults rather than vi ones. Keep at top.
|
||
filetype plugin indent on " Enable filetype-specific settings.
|
||
syntax on " Enable syntax highlighting.
|
||
set backspace=2 " Make the backspace behave as most applications.
|
||
set autoindent " Use current indent for new lines.
|
||
set display=lastline " Show as much of the line as will fit.
|
||
set wildmenu " Better tab completion in the commandline.
|
||
set wildmode=list:longest " List all matches and complete to the longest match.
|
||
set showcmd " Show (partial) command in bottom-right.
|
||
set expandtab " Use spaces instead of tabs for indentation.
|
||
set smarttab " Backspace removes 'shiftwidth' worth of spaces.
|
||
set number " Show line numbers.
|
||
set laststatus=2 " Always show the statusline.
|
||
set ruler " Show the ruler in the statusline.
|
||
set textwidth=80 " Wrap at n characters.
|
||
set incsearch " Jump to search match while typing.
|
||
set hlsearch " Highlight the last used search pattern.
|
||
set nrformats-=octal " Remove octal support from 'nrformats'.
|
||
set tabstop=2 " Size of a Tab character.
|
||
set shiftwidth=2 " Use same value as 'tabstop'.
|
||
set softtabstop=2 " Use same value as 'shiftwidth'.
|
||
set encoding=utf-8 " Set encoding
|
||
color nord " Use Nord color scheme
|
||
set list listchars=tab:»⤍·,trail:·,eol:¤,nbsp:˽ " Show invisible chars
|
||
" set colorcolumn=80 " Highlight the 80th collumn
|
||
set wrap linebreak nolist " Softwrap long lines at window border, don't break words
|
||
set showbreak= " Intend softwrapped lines with unbreakable space
|
||
|
||
" Highlight the line the cursor is on in markdown files
|
||
autocmd FileType markdown set cursorline
|
||
|
||
" Go to the last cursor location when opening a file.
|
||
augroup jump
|
||
autocmd BufReadPost *
|
||
\ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
|
||
\| exe 'normal! g`"'
|
||
\| endif
|
||
augroup end
|
||
|
||
" Clean trailing whitespace.
|
||
fun! s:trim_whitespace()
|
||
let l:save = winsaveview()
|
||
keeppatterns %s/\s\+$//e
|
||
call winrestview(l:save)
|
||
endfun
|
||
command! TrimWhitespace call s:trim_whitespace()
|
||
|
||
" Highlight characters behind the 80 chars margin
|
||
" :au BufWinEnter * let w:m2=matchadd('ColumnMargin', '\%>80v.\+', -1)
|
||
|
||
" Treat all .md files as markdown
|
||
autocmd BufNewFile,BufRead *.md set filetype=markdown
|
||
|
||
" make uses real tabs
|
||
au FileType make set noexpandtab
|
||
|
||
" add json syntax highlighting
|
||
au BufNewFile,BufRead *.json set ft=javascript
|
||
|
||
" make Python follow PEP8 ( http://www.python.org/dev/peps/pep-0008/ )
|
||
au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79
|