" must have stuff set nocompatible " use modern vim defaults filetype plugin indent on set autoindent syntax on " highlight syntax set number " display line numbers " disable arrow keys noremap noremap noremap noremap inoremap inoremap inoremap inoremap " set cursor shape to block in the normal and command mode, " in the insert mode change shape to vertical bar, and disable " blinking in all modes set guicursor=n-v-c:block set guicursor+=i-ci-ve:ver25 set guicursor+=r-cr:hor20 set guicursor+=o:hor50 set guicursor+=a:blinkon0 let &t_EI = "\e[2 q" " solid block let &t_SR = "\e[4 q" " underline shape let &t_SI = "\e[6 q" " vertical bar augroup cursor autocmd! autocmd VimEnter * silent execute '!echo -ne "\e[2 q"' | redraw! autocmd VimLeave * silent execute '!echo -ne "\e[2 q"' | redraw! augroup END " fix delay when sending escape sequences from insert mode set timeout set timeoutlen=1000 set ttimeout set ttimeoutlen=50 " set default tab width to 4 spaces set tabstop=4 " number of spaces that a tab counts for set shiftwidth=4 " number of spaces that are inserted during indent operations set softtabstop=4 " number of spaces that are inserted after pressing tab set expandtab " use spaces instead of tabs " persistent undo if has("persistent_undo") let target_path = expand('~/.local/state/vim/undo') " create the directory and any parent directories " if the location does not exist. call mkdir(target_path, "p", 0700) let &undodir=target_path set undofile endif " enable clipboard if has("clipboard") set clipboard=unnamedplus,unnamed endif " stuff related to editing html files let g:html_indent_autotags = "html,thead,tbody,tfoot" let g:html_indent_script1 = "auto" let g:html_indent_style1 = "auto"