separate vim config from nvim config again and simplify it

Separating vim's config from neovim's config simplifies the deployment
of lua for neovim's configuration. At the same time, clean up current
neovim config by removing all outdated options and options with equal or
even better defaults. Furthermore, the 'old' vim configuration should be
kept as-is to ensure compability with older systems if needed.
This commit is contained in:
Thomas Preisner 2022-09-25 01:09:48 +02:00
parent 0819e4e95b
commit 07be5a4e7a
6 changed files with 328 additions and 36 deletions

View file

@ -1,9 +1,5 @@
" drop vi-compatibility
set nocompatible
" disable autocmd
set secure
" use utf8 only
set encoding=utf8
" file/directory matching
set wildmode=list:longest,full
@ -19,24 +15,6 @@ set history=1000
" increase count of possible undos
set undolevels=1000
" encrypt buffers when saved to files
if exists('+cryptmethod')
set cryptmethod=blowfish
endif
" enable fast terminal for tmux but not for ssh connection
if &term =~# '^screen' && !exists('SSH_CONNECTION')
set ttyfast
endif
" enable automatic file detection, plugin and indention support
if has('autocmd')
filetype plugin indent on
endif
" use utf8 encoding for all files and recognize latin1
set fileencodings=utf-8,latin1
" use unix line-endings and recognize dos endings
set fileformats=unix,dos
@ -114,7 +92,7 @@ set number
" show cursor position all the time
set ruler
" show tabs all the time
" show vim tabs all the time
set showtabline=2
" show currently typed command
@ -134,7 +112,6 @@ set updatetime=300
set timeoutlen=500
" copy paste between vim and everything else
" TODO: check whether the 'plus' suffix works with plain vim
set clipboard=unnamedplus
" Misc

View file

@ -44,18 +44,19 @@ link()
link pam_environment ~/.pam_environment
# application-specific config
if installed nvim || installed vim; then
echo "Setting up nvim:"
mkdir -p ~/.config
link config/nvim ~/.config/nvim
echo
fi
if installed vim; then
echo "Setting up vim:"
link vimrc ~/.vimrc
link vim ~/.vim
echo
fi
if installed nvim; then
echo "Setting up nvim:"
mkdir -p ~/.config
link config/nvim ~/.config/nvim
echo
fi

161
vim/colors/dichromatic.vim Normal file
View file

@ -0,0 +1,161 @@
" dichromatic.vim -- Vim color scheme.
" Author: Romain Lafourcade (romainlafourcade@gmail.com)
" Webpage: https://raw.githubusercontent.com/romainl/vim-dichromatic/master/colors/dichromatic.vim
" Description: A 'dark' colorscheme for color blind vimmers. But not only.
hi clear
if exists("syntax_on")
syntax reset
endif
let colors_name = "dichromatic"
if ($TERM =~ '256' || &t_Co >= 256) || has("gui_running")
hi Normal ctermbg=232 ctermfg=252 cterm=NONE guibg=#080808 guifg=#D0D0D0 gui=NONE
hi NonText ctermbg=NONE ctermfg=240 cterm=NONE guibg=NONE guifg=#585858 gui=NONE
hi Comment ctermbg=NONE ctermfg=244 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
hi Constant ctermbg=NONE ctermfg=168 cterm=NONE guibg=NONE guifg=#D75F87 gui=NONE
hi Error ctermbg=15 ctermfg=89 cterm=reverse guibg=#FFFFFF guifg=#87005F gui=reverse
hi Identifier ctermbg=NONE ctermfg=133 cterm=NONE guibg=NONE guifg=#AF5FAF gui=NONE
hi Ignore ctermbg=NONE ctermfg=NONE cterm=NONE guibg=NONE guifg=NONE gui=NONE
hi PreProc ctermbg=NONE ctermfg=186 cterm=NONE guibg=NONE guifg=#DFDF87 gui=NONE
hi Special ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#FFFFFF gui=NONE
hi Statement ctermbg=NONE ctermfg=133 cterm=NONE guibg=NONE guifg=#AF5FAF gui=NONE
hi String ctermbg=NONE ctermfg=142 cterm=NONE guibg=NONE guifg=#AFAF00 gui=NONE
hi Todo ctermbg=NONE ctermfg=NONE cterm=reverse guibg=NONE guifg=NONE gui=reverse
hi Type ctermbg=NONE ctermfg=116 cterm=NONE guibg=NONE guifg=#87D7D7 gui=NONE
hi Underlined ctermbg=NONE ctermfg=NONE cterm=underline guibg=NONE guifg=NONE gui=underline
hi Number ctermbg=NONE ctermfg=168 cterm=NONE guibg=NONE guifg=#D75F87 gui=NONE
hi StatusLine ctermbg=15 ctermfg=240 cterm=NONE guibg=#FFFFFF guifg=#585858 gui=NONE
hi StatusLineNC ctermbg=240 ctermfg=15 cterm=NONE guibg=#585858 guifg=#FFFFFF gui=NONE
hi VertSplit ctermbg=240 ctermfg=240 cterm=NONE guibg=#585858 guifg=#585858 gui=NONE
hi TabLine ctermbg=240 ctermfg=15 cterm=NONE guibg=#585858 guifg=#FFFFFF gui=NONE
hi TabLineFill ctermbg=240 ctermfg=240 cterm=NONE guibg=#585858 guifg=#585858 gui=NONE
hi TabLineSel ctermbg=15 ctermfg=240 cterm=NONE guibg=#FFFFFF guifg=#585858 gui=NONE
hi Title ctermbg=NONE ctermfg=72 cterm=NONE guibg=NONE guifg=#5FAF87 gui=NONE
hi LineNr ctermbg=NONE ctermfg=116 cterm=NONE guibg=NONE guifg=#87D7D7 gui=NONE
hi Cursor ctermbg=15 ctermfg=232 cterm=NONE guibg=#FFFFFF guifg=#080808 gui=NONE
hi CursorColumn ctermbg=89 ctermfg=NONE cterm=NONE guibg=#87005F guifg=NONE gui=NONE
hi CursorLine ctermbg=236 ctermfg=NONE cterm=NONE guibg=#303030 guifg=NONE gui=NONE
hi CursorLineNr ctermbg=236 ctermfg=NONE cterm=NONE guibg=#303030 guifg=NONE gui=NONE
hi helpLeadBlank ctermbg=NONE ctermfg=NONE cterm=NONE guibg=NONE guifg=NONE gui=NONE
hi helpNormal ctermbg=NONE ctermfg=NONE cterm=NONE guibg=NONE guifg=NONE gui=NONE
hi Visual ctermbg=116 ctermfg=232 cterm=NONE guibg=#87D7D7 guifg=#080808 gui=NONE
hi VisualNOS ctermbg=133 ctermfg=232 cterm=NONE guibg=#AF5FAF guifg=#080808 gui=NONE
hi Pmenu ctermbg=186 ctermfg=232 cterm=NONE guibg=#DFDF87 guifg=#080808 gui=NONE
hi PmenuSbar ctermbg=142 ctermfg=186 cterm=NONE guibg=#AFAF00 guifg=#DFDF87 gui=NONE
hi PmenuSel ctermbg=133 ctermfg=232 cterm=NONE guibg=#AF5FAF guifg=#080808 gui=NONE
hi PmenuThumb ctermbg=133 ctermfg=133 cterm=NONE guibg=#AF5FAF guifg=#AF5FAF gui=NONE
hi FoldColumn ctermbg=NONE ctermfg=72 cterm=NONE guibg=NONE guifg=#5FAF87 gui=NONE
hi Folded ctermbg=NONE ctermfg=248 cterm=NONE guibg=NONE guifg=#A8A8A8 gui=NONE
hi WildMenu ctermbg=53 ctermfg=15 cterm=NONE guibg=#00005F guifg=#FFFFFF gui=NONE
hi SpecialKey ctermbg=NONE ctermfg=186 cterm=NONE guibg=NONE guifg=#DFDF87 gui=NONE
hi DiffAdd ctermbg=232 ctermfg=111 cterm=reverse guibg=#080808 guifg=#87afff gui=reverse
hi DiffChange ctermbg=232 ctermfg=188 cterm=reverse guibg=#080808 guifg=#dfdfdf gui=reverse
hi DiffDelete ctermbg=232 ctermfg=222 cterm=reverse guibg=#080808 guifg=#ffdf87 gui=reverse
hi DiffText ctermbg=232 ctermfg=145 cterm=reverse guibg=#080808 guifg=#afafaf gui=reverse
hi IncSearch ctermbg=232 ctermfg=133 cterm=reverse guibg=#080808 guifg=#AF5FAF gui=reverse
hi Search ctermbg=186 ctermfg=232 cterm=NONE guibg=#DFDF87 guifg=#080808 gui=NONE
hi Directory ctermbg=NONE ctermfg=72 cterm=NONE guibg=NONE guifg=#5FAF87 gui=NONE
hi MatchParen ctermbg=240 ctermfg=186 cterm=NONE guibg=#585858 guifg=#DFDF87 gui=NONE
hi SpellBad ctermbg=89 ctermfg=232 cterm=NONE guibg=#87005F guifg=#080808 gui=NONE guisp=#87005F
hi SpellCap ctermbg=72 ctermfg=232 cterm=NONE guibg=#5FAF87 guifg=#080808 gui=NONE guisp=#5FAF87
hi SpellLocal ctermbg=142 ctermfg=232 cterm=NONE guibg=#AFAF00 guifg=#080808 gui=NONE guisp=#AFAF00
hi SpellRare ctermbg=133 ctermfg=232 cterm=NONE guibg=#AF5FAF guifg=#080808 gui=NONE guisp=#AF5FAF
hi ColorColumn ctermbg=133 ctermfg=NONE cterm=NONE guibg=#AF5FAF guifg=NONE gui=NONE
hi signColumn ctermbg=NONE ctermfg=186 cterm=NONE guibg=NONE guifg=#DFDF87 gui=NONE
hi ErrorMsg ctermbg=89 ctermfg=15 cterm=NONE guibg=#87005F guifg=#FFFFFF gui=NONE
hi ModeMsg ctermbg=142 ctermfg=232 cterm=NONE guibg=#AFAF00 guifg=#080808 gui=NONE
hi MoreMsg ctermbg=NONE ctermfg=142 cterm=NONE guibg=NONE guifg=#AFAF00 gui=NONE
hi Question ctermbg=NONE ctermfg=72 cterm=NONE guibg=NONE guifg=#5FAF87 gui=NONE
hi WarningMsg ctermbg=168 ctermfg=232 cterm=NONE guibg=#D75F87 guifg=#080808 gui=NONE
hi QuickFixLine ctermbg=15 ctermfg=240 cterm=NONE guibg=#FFFFFF guifg=#585858 gui=NONE
elseif &t_Co == 8 || $TERM !~# '^linux' || &t_Co == 16
set t_Co=16
hi Normal ctermbg=black ctermfg=grey cterm=NONE
hi NonText ctermbg=NONE ctermfg=darkgrey cterm=NONE
hi Comment ctermbg=NONE ctermfg=darkgrey cterm=NONE
hi Constant ctermbg=NONE ctermfg=red cterm=NONE
hi Error ctermbg=white ctermfg=darkmagenta cterm=reverse
hi Identifier ctermbg=NONE ctermfg=darkred cterm=NONE
hi Ignore ctermbg=NONE ctermfg=NONE cterm=NONE
hi PreProc ctermbg=NONE ctermfg=yellow cterm=NONE
hi Special ctermbg=NONE ctermfg=white cterm=NONE
hi Statement ctermbg=NONE ctermfg=darkred cterm=NONE
hi String ctermbg=NONE ctermfg=darkyellow cterm=NONE
hi Todo ctermbg=NONE ctermfg=NONE cterm=reverse
hi Type ctermbg=NONE ctermfg=cyan cterm=NONE
hi Underlined ctermbg=NONE ctermfg=NONE cterm=underline
hi Number ctermbg=NONE ctermfg=red cterm=NONE
hi StatusLine ctermbg=white ctermfg=darkgrey cterm=NONE
hi StatusLineNC ctermbg=darkgrey ctermfg=white cterm=NONE
hi VertSplit ctermbg=darkgrey ctermfg=darkgrey cterm=NONE
hi TabLine ctermbg=darkgrey ctermfg=white cterm=NONE
hi TabLineFill ctermbg=darkgrey ctermfg=darkgrey cterm=NONE
hi TabLineSel ctermbg=white ctermfg=darkgrey cterm=NONE
hi Title ctermbg=NONE ctermfg=green cterm=NONE
hi LineNr ctermbg=NONE ctermfg=cyan cterm=NONE
hi Cursor ctermbg=white ctermfg=black cterm=NONE
hi CursorColumn ctermbg=darkmagenta ctermfg=NONE cterm=NONE
hi CursorLine ctermbg=black ctermfg=NONE cterm=NONE
hi CursorLineNr ctermbg=black ctermfg=NONE cterm=NONE
hi helpLeadBlank ctermbg=NONE ctermfg=NONE cterm=NONE
hi helpNormal ctermbg=NONE ctermfg=NONE cterm=NONE
hi Visual ctermbg=cyan ctermfg=black cterm=NONE
hi VisualNOS ctermbg=darkred ctermfg=black cterm=NONE
hi Pmenu ctermbg=yellow ctermfg=black cterm=NONE
hi PmenuSbar ctermbg=darkyellow ctermfg=yellow cterm=NONE
hi PmenuSel ctermbg=darkred ctermfg=black cterm=NONE
hi PmenuThumb ctermbg=darkred ctermfg=darkred cterm=NONE
hi FoldColumn ctermbg=NONE ctermfg=green cterm=NONE
hi Folded ctermbg=NONE ctermfg=grey cterm=NONE
hi WildMenu ctermbg=darkblue ctermfg=white cterm=NONE
hi SpecialKey ctermbg=NONE ctermfg=yellow cterm=NONE
hi DiffAdd ctermbg=black ctermfg=blue cterm=reverse
hi DiffChange ctermbg=black ctermfg=grey cterm=reverse
hi DiffDelete ctermbg=black ctermfg=yellow cterm=reverse
hi DiffText ctermbg=black ctermfg=darkgray cterm=reverse
hi IncSearch ctermbg=black ctermfg=darkred cterm=reverse
hi Search ctermbg=yellow ctermfg=black cterm=NONE
hi Directory ctermbg=NONE ctermfg=green cterm=NONE
hi MatchParen ctermbg=darkgrey ctermfg=yellow cterm=NONE
hi SpellBad ctermbg=darkmagenta ctermfg=black cterm=NONE
hi SpellCap ctermbg=green ctermfg=black cterm=NONE
hi SpellLocal ctermbg=darkyellow ctermfg=black cterm=NONE
hi SpellRare ctermbg=darkred ctermfg=black cterm=NONE
hi ColorColumn ctermbg=darkred ctermfg=NONE cterm=NONE
hi signColumn ctermbg=NONE ctermfg=yellow cterm=NONE
hi ErrorMsg ctermbg=darkmagenta ctermfg=white cterm=NONE
hi ModeMsg ctermbg=darkyellow ctermfg=black cterm=NONE
hi MoreMsg ctermbg=NONE ctermfg=darkyellow cterm=NONE
hi Question ctermbg=NONE ctermfg=green cterm=NONE
hi WarningMsg ctermbg=red ctermfg=black cterm=NONE
hi QuickFixLine ctermbg=white ctermfg=darkgrey cterm=NONE
endif
hi link StatusLineTerm StatusLine
hi link StatusLineTermNC StatusLineNC
let g:terminal_ansi_colors = [
\ '#080808',
\ '#AF5FAF',
\ '#008700',
\ '#AFAF00',
\ '#00005F',
\ '#87005F',
\ '#87D7D7',
\ '#D0D0D0',
\ '#808080',
\ '#D75F87',
\ '#5FAF87',
\ '#DFDF87',
\ '#87D7D7',
\ '#D75F87',
\ '#87D7D7',
\ '#FFFFFF',
\ ]
" Generated with RNB (https://gist.github.com/romainl/5cd2f4ec222805f49eca)

139
vim/general.vim Normal file
View file

@ -0,0 +1,139 @@
" drop vi-compatibility
set nocompatible
" disable autocmd
set secure
" use utf8 only
set encoding=utf8
" file/directory matching
set wildmode=list:longest,full
" ignore case when completing
if exists('+wildignorecase')
set wildignorecase
endif
" ignorelist
set wildignore=*.o,*.d,*.so,*.class,*.aux,*.log,*.out,*.toc,*.pdf,*.pyc
" increase command history
set history=1000
" increase count of possible undos
set undolevels=1000
" encrypt buffers when saved to files
if exists('+cryptmethod')
set cryptmethod=blowfish
endif
" enable fast terminal for tmux but not for ssh connection
if &term =~# '^screen' && !exists('SSH_CONNECTION')
set ttyfast
endif
" enable automatic file detection, plugin and indention support
if has('autocmd')
filetype plugin indent on
endif
" use utf8 encoding for all files and recognize latin1
set fileencodings=utf-8,latin1
" use unix line-endings and recognize dos endings
set fileformats=unix,dos
" tabs
set tabstop=4
set shiftwidth=4
set autoindent
set smartindent
set smarttab
" allow backspacing over autoindent and line breaks
set backspace=indent,eol,start
" already display matches while searching
set incsearch
" only check for case if the searched word contains a capital
set ignorecase
set smartcase
" highlight all matches. use <C-L> to remove the highlights
set hlsearch
" treat hyphenated words as a single word
set iskeyword+=-
" syntax folding
if has('folding')
set foldmethod=syntax
" only use folding when there is enough space
" if &columns > 80
" set foldcolumn=2
" endif
set foldlevel=99
" dont open fold for block movements
set foldopen-=block
endif
" allow buffers with changes to be hidden
set hidden
" correct splitting
if has('vertsplit')
set splitright
set splitbelow
endif
" Visual
" set text color for dark terminal background
set background=dark
" activate syntax highlighting
if has('syntax')
syntax enable
endif
" set colorscheme
colorscheme dichromatic
" display line at which the current is positioned
if exists('+cursorline')
set cursorline
" remove line and make the line bold instead
highlight CursorLine term=bold cterm=bold
highlight CursorLineNR term=bold cterm=bold ctermbg=darkgrey
endif
" display warning column at 81 and 121
let &colorcolumn="81,121"
highlight ColorColumn ctermbg=235 guibg=#2d2d2d
" display line numbers
set number
" show cursor position all the time
set ruler
" show vim tabs all the time
set showtabline=2
" show currently typed command
set showcmd
" define characters to display when using 'set list'
set listchars=tab:→\ ,trail:∙,eol,extends:,precedes:,nbsp:␣
" increase completion performance and reduce time until timeout
set updatetime=300
set timeoutlen=500
" copy paste between vim and everything else
set clipboard=unnamedplus
" Misc
set mouse=n
" remove windows ^M when the encoding gets messed up
noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm
" add convenience command for force-saving read-only files
cmap w!! w !sudo tee %

16
vim/keybindings.vim Normal file
View file

@ -0,0 +1,16 @@
" allow easier pane switching
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
" allow easier pane resizing
nnoremap <M-J> :resize -2<CR>
nnoremap <M-K> :resize +2<CR>
nnoremap <M-L> :vertical resize -2<CR>
nnoremap <M-H> :vertical resize +2<CR>
" use TAB to switch to next buffers
nnoremap <TAB> :bnext<CR>
" use Shift-TAB to switch to previous buffers
nnoremap <S-TAB> :bprevious<CR>

6
vimrc
View file

@ -1,4 +1,2 @@
" use existing nvim configuration for vim
set runtimepath^=~/.config/nvim runtimepath+=~/.config/nvim/after
let &packpath = &runtimepath
source ~/.config/nvim/init.vim
source $HOME/.vim/general.vim
source $HOME/.vim/keybindings.vim