120 lines
2.9 KiB
VimL
Executable file
120 lines
2.9 KiB
VimL
Executable file
" vim:set ts=2 sw=2 et:
|
|
"
|
|
" This configuration depends on the following plugins:
|
|
" nerdtree: https://github.com/scrooloose/nerdtree
|
|
" vim-polygot: https://github.com/sheerun/vim-polyglot
|
|
" coc: https://github.com/neoclide/coc.nvim
|
|
|
|
" indent, load plugin and detect filetype depending on filetype
|
|
filetype indent plugin on
|
|
set autoindent
|
|
|
|
" fix different locale settings when ssh'ing
|
|
set encoding=utf-8
|
|
|
|
" replace vertical split pipe character with space
|
|
set fillchars="vert:\ |,fold:\ "
|
|
|
|
" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable
|
|
" delays and poor user experience.
|
|
set updatetime=300
|
|
|
|
set splitright
|
|
set splitbelow
|
|
|
|
set termguicolors
|
|
|
|
let current_time = strftime("%H")
|
|
|
|
" colorscheme based on time
|
|
if current_time > 11 && current_time < 17
|
|
colorscheme xcodelight
|
|
else
|
|
set background=dark
|
|
colorscheme space_vim_theme
|
|
endif
|
|
|
|
" syntax on
|
|
syntax on
|
|
|
|
" switch buffers without writing to file
|
|
set hidden
|
|
|
|
" file specific formatting
|
|
autocmd Filetype python,bash,sh,java,php,json setlocal tabstop=4 softtabstop=4 shiftwidth=4 expandtab autoindent fileformat=unix
|
|
autocmd Filetype css,scss,html,htmldjango,javascript,yaml setlocal tabstop=2 softtabstop=2 shiftwidth=2 expandtab autoindent
|
|
|
|
" open folds by default
|
|
autocmd Syntax * normal zR
|
|
|
|
" fold indents
|
|
set foldmethod=indent
|
|
|
|
" search down into subfolders
|
|
" provides tab-completion for all file-related tasks
|
|
set path+=**
|
|
|
|
" display all matching files when we tab complete
|
|
set wildmenu
|
|
|
|
" use normal backspace behavior
|
|
set backspace=2
|
|
|
|
" allow arrow keys to be used
|
|
set nocompatible
|
|
|
|
" Color trailing spaces with red color
|
|
highlight ExtraWhitespace ctermbg=green guibg=green
|
|
match ExtraWhitespace /\s\+$/
|
|
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
|
|
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
|
|
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
|
|
autocmd BufWinLeave * call clearmatches()
|
|
|
|
" line numbers
|
|
set number
|
|
|
|
" changes to current directory when creating new files
|
|
set autochdir
|
|
|
|
" higlhight search
|
|
set hls
|
|
|
|
" search as characters are entered
|
|
set incsearch
|
|
|
|
" line for linewrapping
|
|
set colorcolumn=80
|
|
|
|
" wrap text instead of being on one line
|
|
set lbr
|
|
|
|
" default Colors for CursorLine
|
|
set cursorline
|
|
highlight CursorLine cterm=NONE
|
|
|
|
" activate statusbar
|
|
set laststatus=2
|
|
set statusline=\ %F\ %m%r%w\ %=\ %{hostname()}\ \ \ %{strlen(&ft)?&ft:'none'}\ %{(&bomb?\",BOM\":\"\")}\ %{&ff}\ \ %l/%L\ \ %c\ %P
|
|
|
|
" tab autocompletion
|
|
function! Tab_Or_Complete()
|
|
if col('.')>1 && strpart( getline('.'), col('.')-2, 3 ) =~ '^\w'
|
|
return "\<C-N>"
|
|
else
|
|
return "\<Tab>"
|
|
endif
|
|
endfunction
|
|
|
|
" open nerdtree browser
|
|
map <silent> <C-E> :NERDTreeToggle <CR>
|
|
|
|
" tab for completion
|
|
inoremap <Tab> <C-R>=Tab_Or_Complete()<CR>
|
|
|
|
" set default coc environment path
|
|
let g:python3_host_prog = '~/.local/lib/coc/.venv/bin/python'
|
|
|
|
if filereadable(expand('~/.config/nvim/override.vim'))
|
|
source ~/.config/nvim/override.vim
|
|
endif
|