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'
|
2022-06-23 15:24:15 +03:00
|
|
|
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
|
|
|
|
|
2022-06-23 15:25:27 +03:00
|
|
|
" 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
|
|
|
|
|
2022-06-23 14:48:54 +03:00
|
|
|
" 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
|
|
|
|
|
2022-06-23 14:48:54 +03:00
|
|
|
" Misc
|
|
|
|
nnoremap <leader>sv :source $MYVIMRC<CR>
|
|
|
|
|
|
|
|
cabbrev bsp belowright split
|
|
|
|
cabbrev rvsp belowright vsplit
|
|
|
|
|