[vim] Basic config imrovements and base16 theme link

This commit is contained in:
lhark 2019-02-21 00:33:55 -05:00
parent 9d06963d6a
commit 56eab848f9
3 changed files with 132 additions and 36 deletions

1
vim/colors Symbolic link
View file

@ -0,0 +1 @@
../themes/base16-vim/colors

View file

@ -1 +0,0 @@
../../themes/base16-vim/colors/base16-default-dark.vim

166
vimrc
View file

@ -1,9 +1,38 @@
set autochdir
set nocompatible set nocompatible
" Allow backspacing over everything in insert mode. " Allow backspacing over everything in insert mode.
set backspace=indent,eol,start set backspace=indent,eol,start
set number set number
set relativenumber set relativenumber
"[Hide/show the white-space and more invisible symbols]"
set list
set listchars=nbsp,trail:-
"set listchars+=tab:│\ ,
set listchars+=tab:▸\ ,
set nojoinspaces
"[Indent & Tab/mode-line settings]"
set breakindent
set nopaste
set smarttab
set tabstop=4 " tabs size on screen "
set expandtab " <tab> inserts spaces "
set autoindent
set copyindent " copy existing tab/spaces mix on newline "
set smartindent " overruled by cindent "
set cinwords=except,finally,def,class,with,do,if,elif,else,for,while,try,switch
set cinoptions+=l1 " switch case label alignement, :h cinoptions-values "
set shiftwidth=4 " number of space to use on indent. Use tabstop if 0"
"set softtabstop=4
"[Matching chars]"
set showmatch
set matchpairs=\":\"
set matchpairs+=(:)
set matchpairs+={:}
set matchpairs+=[:]
"[TextWidth settings]"
set textwidth=0
"[Look for a single modeline in files]"
set modeline
set modelines=1
set history=200 " keep 200 lines of command line history set history=200 " keep 200 lines of command line history
set ruler " show the cursor position all the time set ruler " show the cursor position all the time
@ -20,6 +49,46 @@ set history=1000
set nowritebackup set nowritebackup
set undolevels=5000 set undolevels=5000
" Show @@@ in the last line if it is truncated.
set display=truncate
"[Splitting rules]"
set splitbelow
set splitright
set equalalways
" Show a few lines of context around the cursor.
set scrolloff=5
set autochdir
set autoread
set autowrite
"[Shared with OS clipboard]"
set clipboard=unnamed
"[For regular expressions turn magic on, use \v to get regex parent]"
set magic
"[Search settings]"
set hlsearch
set incsearch
set smartcase
set ignorecase
set wrapscan
"[When on, the ":substitute" flag 'g' is default on]"
set nogdefault
"[Kitty doesn't support background color erase]"
let &t_ut=''
let base16colorspace=256
set background=dark
colorscheme base16-default-dark
"[Fix background transparency]"
if has("autocmd")
autocmd ColorScheme * highlight Normal ctermbg=None
autocmd ColorScheme * highlight NonText ctermbg=None
endif
"[Define the leader key]" "[Define the leader key]"
let mapleader="," let mapleader=","
@ -55,21 +124,20 @@ map Q gq
"[Reflow current paragraph]" "[Reflow current paragraph]"
"[http://stevelosh.com/blog/2010/09/coming-home-to-vim/]" "[http://stevelosh.com/blog/2010/09/coming-home-to-vim/]"
nnoremap <leader>q gqip nnoremap <leader>q gqip
" http://stackoverflow.com/questions/1005/getting-root-permissions-on-a-file-inside-of-vi
cmap w!! w !sudo tee >/dev/null %
"[To disable the arrow keys]"
for prefix in ['i', 'n', 'v']
for key in ['<Up>', '<Down>', '<Left>', '<Right>']
execute prefix . "noremap " . key . " <Nop>"
endfor
endfor
" Show @@@ in the last line if it is truncated.
set display=truncate
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
let base16colorspace=256
colorscheme base16-default-dark
" Do incremental searching when it's possible to timeout. " Do incremental searching when it's possible to timeout.
if has('reltime') if has('reltime')
set incsearch set incsearch
endif endif
" LaTeX ftdetect " LaTeX ftdetect
@ -78,38 +146,66 @@ let g:tex_flavor = "latex"
" Switch syntax highlighting on when the terminal has colors or when using the " Switch syntax highlighting on when the terminal has colors or when using the
" GUI (which always has colors). " GUI (which always has colors).
if &t_Co > 2 || has("gui_running") if &t_Co > 2 || has("gui_running")
" Revert with ":syntax off". " Revert with ":syntax off".
syntax on syntax on
" I like highlighting strings inside C comments. " I like highlighting strings inside C comments.
" Revert with ":unlet c_comment_strings". " Revert with ":unlet c_comment_strings".
let c_comment_strings=1 let c_comment_strings=1
endif endif
"
"[Remove tabs and spaces at the end of lines]"
function! DeleteTrailingTWS()
if &ft =~ 'diff'
return
end
normal mb
silent %s/[ \t]*$//g
silent %s/\s\+$//ge
normal 'b
endfunction
"[Make the scripts executable]"
function! ChangeScriptMode()
if getline(1) =~ "#!"
if getline(1) =~ "bin/"
silent !chmod +x <afile>
endif
endif
endfunction
" Only do this part when compiled with support for autocommands. " Only do this part when compiled with support for autocommands.
if has("autocmd") if has("autocmd")
" Enable file type detection. " Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72, " Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc. " 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting. " Also load indent files, to automatically do language-dependent indenting.
" Revert with ":filetype off". " Revert with ":filetype off".
filetype plugin indent on filetype plugin indent on
" Put these in an autocmd group, so that you can revert them with: " Put these in an autocmd group, so that you can revert them with:
" ":augroup vimStartup | au! | augroup END" " ":augroup vimStartup | au! | augroup END"
augroup vimStartup augroup vimStartup
au! au!
" When editing a file, always jump to the last known cursor position. " When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid, when inside an event handler " Don't do it when the position is invalid, when inside an event handler
" (happens when dropping a file on gvim) and for a commit message (it's " (happens when dropping a file on gvim) and for a commit message (it's
" likely a different one than last time). " likely a different one than last time).
autocmd BufReadPost * autocmd BufReadPost *
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit' \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
\ | exe "normal! g`\"" \ | exe "normal! g`\""
\ | endif \ | endif
augroup END augroup END
"
"[Do not clean up trailing spaces in binary mode]"
if !&binary
autocmd BufWritePre * call DeleteTrailingTWS()
endif
if has("unix") || has("mac")
autocmd BufWritePost * call ChangeScriptMode()
endif
endif " has("autocmd") endif " has("autocmd")