123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- " Sensible.vim
- if exists('g:loaded_sensible') || &compatible
- else
- let g:loaded_sensible = 1
- if has('autocmd')
- filetype plugin indent on
- endif
- if has('syntax') && !exists('g:syntax_on')
- syntax enable
- endif
- " Use :help 'option' to see the documentation for the given option.
- set autoindent
- set backspace=indent,eol,start
- set complete-=i
- set smarttab
- set nrformats-=octal
- set ttimeout
- set ttimeoutlen=100
- set incsearch
- " Use <C-L> to clear the highlighting of :set hlsearch.
- if maparg('<C-L>', 'n') ==# ''
- nnoremap <silent> <C-L> :nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
- endif
- set laststatus=2
- set ruler
- set wildmenu
- if !&scrolloff
- set scrolloff=1
- endif
- if !&sidescrolloff
- set sidescrolloff=5
- endif
- set display+=lastline
- if &encoding ==# 'latin1' && has('gui_running')
- set encoding=utf-8
- endif
- if &listchars ==# 'eol:$'
- set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+
- endif
- if v:version > 703 || v:version == 703 && has("patch541")
- set formatoptions+=j " Delete comment character when joining commented lines
- endif
- if has('path_extra')
- setglobal tags-=./tags tags-=./tags; tags^=./tags;
- endif
- if &shell =~# 'fish$' && (v:version < 704 || v:version == 704 && !has('patch276'))
- set shell=/bin/bash
- endif
- set autoread
- if &history < 1000
- set history=1000
- endif
- if &tabpagemax < 50
- set tabpagemax=50
- endif
- if !empty(&viminfo)
- set viminfo^=!
- endif
- set sessionoptions-=options
- " Allow color schemes to do bright colors without forcing bold.
- if &t_Co == 8 && $TERM !~# '^linux\|^Eterm'
- set t_Co=16
- endif
- " Load matchit.vim, but only if the user hasn't installed a newer version.
- if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
- runtime! macros/matchit.vim
- endif
- inoremap <C-U> <C-G>u<C-U>
- endif
- " change terminal title
- set title
- " xdg-ish settings
- set undodir=~/.cache/vim/undo,.
- set backupdir=~/.cache/vim/backup,.
- set directory=~/.cache/vim/swap//,.
- " default indentation
- set shiftwidth=2
- set tabstop=4
- set expandtab
- " permanent undo history
- set undofile
- " allow switching buffers
- set hidden
- " always scroll
- set scrolloff=99
- " show line numbers
- set number
- set relativenumber
- " set wordwrap indent
- set nowrap
- set linebreak
- if exists("&breakindent")
- set breakindent
- set breakindentopt=shift:2,sbr
- endif
- " show whitespace
- set list
- " make a new copy of the file for backup
- " setting to no or auto messes with filewatchers
- set backupcopy=yes
- " disable modelines
- set nomodeline
- " ------ key bindings ------
- " ; as :
- nnoremap ; :
- vnoremap ; :
- " allow <ESC> via jj in insert mode
- inoremap jj <ESC>
- " fix j/k with wraps
- nnoremap j gj
- nnoremap k gk
- vnoremap j gj
- vnoremap k gk
- augroup formatting
- au!
- " strip trailing whitespace
- autocmd BufWritePre * :%s/\s\+$//e
- autocmd FileType markdown :set tw=80
- augroup end
- if filereadable(expand('~/.vimrc.local'))
- source ~/.vimrc.local
- endif
- highlight StatusLine cterm=NONE ctermbg=8
- highlight StatusLineNC cterm=NONE ctermbg=0
- highlight StatusLineModeInsert ctermbg=14 ctermfg=0
- highlight StatusLineModeVisual ctermbg=3 ctermfg=0
- highlight StatusLineModeNormal ctermbg=11 ctermfg=0
- function GetMode()
- let m = mode()
- " echom m
- if m ==# 'i'
- return '%#StatusLineModeInsert# I '
- elseif m =~# '\(v\|V\|\)'
- return '%#StatusLineModeVisual# V '
- else
- return '%#StatusLineModeNormal# N '
- endif
- endfunction
- function StatusLine()
- let line=''
- let line.=GetMode()
- let line.='%*%< %f %h%m%r'
- let line.='%='
- " let line.='%-14.(%l,%c%V%) %P'
- let line.=' %y '
- let line.=' %{&fenc}[%{&ff}]'
- let line.=' %3p%% %7(%l/%L%): %3(%c%V%) '
- return line
- endfunction
- set statusline=%!StatusLine()
|