system/nix/progs/nvim/config.vim

125 lines
3.6 KiB
VimL
Raw Normal View History

2022-06-23 10:45:58 +03:00
" Basic settings {{{
filetype off
" Leaders
let g:mapleader = ','
let g:maplocalleader = '-'
" Better Unix support
set viewoptions=folds,options,cursor,unix,slash
set encoding=utf-8
" True color support
set termguicolors
" Theme (required plugin 'material-vim')
2022-06-23 14:10:16 +03:00
"let g:material_theme_style = 'default' | 'palenight' | 'ocean' | 'lighter' |
" 'darker' | 'default-community' | 'palenight-community' | 'ocean-community' |
" 'lighter-community' | 'darker-community'
let g:material_theme_style = 'default'
2022-06-23 10:45:58 +03:00
let g:lightline = { 'colorscheme': 'material_vim' }
colorscheme material
" Other options
syntax on
set backspace=2
set laststatus=2
set noshowmode
" Tabs as spaces
set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2
" Clear search highlighting
nnoremap <C-z> :nohlsearch<CR>
" Fixes broken cursor on Linux
set guicursor=
" General editor options
set hidden " Hide files when leaving them.
set number " Show line numbers.
set numberwidth=1 " Minimum line number column width.
set cmdheight=2 " Number of screen lines to use for the commandline.
set textwidth=0 " Lines length limit (0 if no limit).
set linebreak " Don't cut lines in the middle of a work.
set showmatch " Show matching parenthesis.
set matchtime=2 " Time during which the matching parenthesis is shown.
set formatoptions=jtcrq " Sensible default line auto cutting and formatting.
set listchars=tab:▸\ ,eol" Invisible characters representation when :set list.
set clipboard=unnamedplus " Copy/Past to/from clipboard
set cursorline " Highlight line cursor is currently on
set completeopt+=noinsert " Select the first item of popup menu automatically without inserting it
" Search
set incsearch " Incremental search.
set ignorecase " Case insensitive.
set smartcase " Case insensitive if no uppercase letter in pattern, case sensitive otherwise
" Set up a line limiter for each lang
au BufNewFile,BufRead *.nix set colorcolumn=101
au BufNewFile,BufRead *.vim set colorcolumn=101
au BufNewFile,BufRead *.ts,*.tsx set colorcolumn=101
au BufNewFile,BufRead *.js,*.jsx set colorcolumn=101
au BufNewFile,BufRead *.rs set colorcolumn=101
au BufNewFile,BufRead *.json set colorcolumn=81
au BufNewFile,BufRead *.yml,*.yaml set colorcolumn=81
au BufNewFile,BufRead *.md set colorcolumn=81
" TODO: add limiter for haskell
2022-06-23 10:45:58 +03:00
" Spell check for markdown files
au BufNewFile,BufRead *.md set spell
" Enable fast navigation between windows
nnoremap <C-h> <C-W>h
nnoremap <C-l> <C-W>l
nnoremap <C-j> <C-W>j
nnoremap <C-k> <C-W>k
2022-06-23 10:45:58 +03:00
" Disable arrow keys and page up / down
noremap <Up> <nop>
noremap <Down> <nop>
noremap <Left> <nop>
noremap <Right> <nop>
inoremap <Up> <nop>
inoremap <Down> <nop>
inoremap <Left> <nop>
inoremap <Right> <nop>
vnoremap <Up> <nop>
vnoremap <Down> <nop>
vnoremap <Left> <nop>
vnoremap <Right> <nop>
noremap <PageUp> <nop>
inoremap <PageUp> <nop>
vnoremap <PageUp> <nop>
noremap <PageDown> <nop>
inoremap <PageDown> <nop>
vnoremap <PageDown> <nop>
" Disable mouse / touchpad (only in vim)
2022-06-23 13:41:42 +03:00
set mouse=
2022-06-23 10:45:58 +03:00
inoremap <ScrollWheelUp> <nop>
inoremap <S-ScrollWheelUp> <nop>
inoremap <C-ScrollWheelUp> <nop>
inoremap <ScrollWheelDown> <nop>
inoremap <S-ScrollWheelDown> <nop>
inoremap <C-ScrollWheelDown> <nop>
inoremap <ScrollWheelLeft> <nop>
inoremap <S-ScrollWheelLeft> <nop>
inoremap <C-ScrollWheelLeft> <nop>
inoremap <ScrollWheelRight> <nop>
inoremap <S-ScrollWheelRight> <nop>
inoremap <C-ScrollWheelRight> <nop>
" Incremental substitutin
set inccommand=split
" Misc
nnoremap <leader>sv :source $MYVIMRC<CR>
cabbrev bsp belowright split
cabbrev rvsp belowright vsplit