-" use our new vim dir primarily
+""" vim dir in xdg config
let x = ($XDG_CONFIG_HOME??($HOME.'/.config')).'/vim'
execute 'set runtimepath='.x.','.&runtimepath.','.x.'/after'
execute 'set packpath='.x.','.&packpath.','.x.'/after'
+""" vim-only defaults
if !has('nvim')
- " neovim doesn't have defaults to load explicitly
+ " neovim defaults are already set
source $VIMRUNTIME/defaults.vim
- " neovim does this stuff already
+ " packages
packadd matchit
packadd editorconfig
+ " options
+ set hlsearch
set autoindent
endif
-" define and create a centralized dir to keep transient state files in
+""" dir for state files in xdg state
let x = ($XDG_STATE_HOME??($HOME.'/.local/state')).'/vim'
if !isdirectory(x)
call mkdir(x, 'p', 0700)
endif
+" NOTE: backup files in vim state dir for both vim and neovim
let y = x.'/backup'
if !isdirectory(y)
call mkdir(y, 'p', 0700)
execute 'set backupdir='.y.'//'
set backup backupcopy=yes
-
" NOTE: neovim uses ShaDa (SHAred DAta) format for viminfo and swap, and uses a
" different version for undo files, so these types of files when created
" by vim cannot be used with neovim, and the 'viminfofile', 'directory',
unlet x
unlet y
-" options
+
+""" options
autocmd VimEnter,WinNew * set number
autocmd VimEnter,WinNew * set relativenumber
autocmd InsertEnter * set norelativenumber
autocmd VimEnter,WinNew * set colorcolumn=80
autocmd VimEnter,WinNew * set cursorline
-set hlsearch
autocmd VimEnter,WinNew * set list
set listchars=tab:├─,extends:»,precedes:«,space:·,trail:∙,nbsp:■
-" styles
+""" styles
highlight ColorColumn term=NONE ctermbg=0
highlight WhiteSpaceMol ctermfg=Black
highlight WhiteSpaceBol ctermfg=DarkBlue
autocmd VimEnter,WinNew * 2match WhiteSpaceBol /\(^ \+\)\|\( \+$\)/
-" indent
+""" indent
autocmd FileType python set softtabstop=4 shiftwidth=4 expandtab
autocmd FileType markdown set softtabstop=4 shiftwidth=4 expandtab
autocmd FileType javascript set softtabstop=2 shiftwidth=2 expandtab
autocmd FileType html set softtabstop=2 shiftwidth=2 expandtab
let g:EditorConfig_enable_for_new_buf = 1
-" syntax
+""" syntax
autocmd FileType todo set colorcolumn=0
+
+""" mappings
+"" use more accessible escapes, as C-n and C-o are shadowed by some terminals
+if has('nvim')
+ tnoremap <C-\>n <C-\><C-N>
+ tnoremap <C-\>o <C-\><C-O>
+endif
+
+"" move windows any time
+if has('nvim')
+ " terminal
+ tnoremap <A-h> <C-\><C-N><C-w>h
+ tnoremap <A-j> <C-\><C-N><C-w>j
+ tnoremap <A-k> <C-\><C-N><C-w>k
+ tnoremap <A-l> <C-\><C-N><C-w>l
+endif
+" insert
+inoremap <A-h> <C-\><C-N><C-w>h
+inoremap <A-j> <C-\><C-N><C-w>j
+inoremap <A-k> <C-\><C-N><C-w>k
+inoremap <A-l> <C-\><C-N><C-w>l
+" normal
+nnoremap <A-h> <C-w>h
+nnoremap <A-j> <C-w>j
+nnoremap <A-k> <C-w>k
+nnoremap <A-l> <C-w>l