70 lines
2.2 KiB
VimL
70 lines
2.2 KiB
VimL
" Sane vim defaults for ArchLabs
|
|
|
|
" Arch defaults
|
|
runtime! archlinux.vim
|
|
|
|
set modeline " enable vim modelines
|
|
set clipboard^=unnamedplus " system clipboard (requires +clipboard)
|
|
set number " enable line numbers
|
|
set confirm " ask confirmation for some things, like save before quit, etc.
|
|
set wildmenu " Tab completion menu when using command mode
|
|
set expandtab " Tab key inserts spaces not tabs
|
|
set softtabstop=4 " spaces to enter for each tab
|
|
set shiftwidth=4 " amount of spaces for indentation
|
|
set shortmess+=aAcIws " Hide or shorten certain messages
|
|
|
|
" enable mouse.. sgr is better but not every term supports it
|
|
set mouse=a
|
|
if has('mouse_sgr')
|
|
set ttymouse=sgr
|
|
endif
|
|
|
|
" syntax highlighting with true colors in the terminal
|
|
syntax enable
|
|
if has('termguicolors') && $DISPLAY !=? ''
|
|
set termguicolors
|
|
" fix true colours in some terminals
|
|
if !has('nvim') && !($TERM =~? 'xterm' || &term =~? 'xterm')
|
|
let $TERM = 'xterm-256color'
|
|
let &term = 'xterm-256color'
|
|
endif
|
|
endif
|
|
|
|
" change cursor shape for different modes
|
|
if !has('nvim') && exists('$TMUX')
|
|
let &t_SI = "\<Esc>Ptmux;\<Esc>\e[5 q\<Esc>\\"
|
|
let &t_SR = "\<Esc>Ptmux;\<Esc>\e[4 q\<Esc>\\"
|
|
let &t_EI = "\<Esc>Ptmux;\<Esc>\e[2 q\<Esc>\\"
|
|
elseif !has('nvim')
|
|
let &t_SI = "\e[6 q"
|
|
let &t_SR = "\e[4 q"
|
|
let &t_EI = "\e[2 q"
|
|
endif
|
|
|
|
" paste while in insert mode
|
|
inoremap <silent><C-v> <Esc>:set paste<CR>a<C-r>+<Esc>:set nopaste<CR>a
|
|
|
|
" alt defaults
|
|
nnoremap 0 ^
|
|
nnoremap Y y$
|
|
nnoremap n nzzzv
|
|
nnoremap N Nzzzv
|
|
nnoremap <Tab> ==j
|
|
|
|
" j = gj :: k = gk while preserving numbered jumps ie. 12j or 30k
|
|
nnoremap <buffer><silent><expr>j v:count ? 'j' : 'gj'
|
|
nnoremap <buffer><silent><expr>k v:count ? 'k' : 'gk'
|
|
|
|
" Reload changes if file changed outside of vim requires autoread
|
|
augroup load_changed_file
|
|
autocmd!
|
|
autocmd FocusGained,BufEnter * if mode() !=? 'c' | checktime | endif
|
|
autocmd FileChangedShellPost * echo "Changes loaded from file"
|
|
augroup END
|
|
|
|
" when quitting a file, save the cursor position
|
|
augroup save_cursor_position
|
|
autocmd!
|
|
autocmd BufReadPost * call setpos(".", getpos("'\""))
|
|
augroup END
|