dotfiles/nvim/init.vim

114 lines
2.7 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
" colorscheme
set background=dark
colorscheme space_vim_theme
" 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