" 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') "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' 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 :nohlsearch " 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 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 set listchars=tab:→\ ,trail:~,nbsp:␣,eol:¬ " Invisible characters representation when :set list. " 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 aug line_limiter au! au BufNewFile,BufRead *.nix setlocal colorcolumn=101 au BufNewFile,BufRead *.vim setlocal colorcolumn=101 au BufNewFile,BufRead *.ts,*.tsx setlocal colorcolumn=101 au BufNewFile,BufRead *.js,*.jsx setlocal colorcolumn=101 au BufNewFile,BufRead *.rs setlocal colorcolumn=101 au BufNewFile,BufRead *.json setlocal colorcolumn=81 au BufNewFile,BufRead *.yml,*.yaml setlocal colorcolumn=81 au BufNewFile,BufRead *.md setlocal colorcolumn=81 au BufNewFile,BufRead *.html setlocal colorcolumn=81 " TODO: add limiter for haskell aug END " Spell check for markdown files aug spell_check au! au BufNewFile,BufRead *.md setlocal spell aug END " Set up folding aug folding au! au BufNewFile,BufRead *.js,*.jsx syntax on | setlocal foldmethod=syntax au BufNewFile,BufRead *.ts,*.tsx syntax on | setlocal foldmethod=syntax aug END " Enable fast navigation between windows nnoremap h nnoremap l nnoremap j nnoremap k " Disable the annoying and useless ex-mode nnoremap Q nnoremap gQ " Disable arrow keys noremap noremap noremap noremap vnoremap vnoremap vnoremap vnoremap "... instead of insert mode for rus lang "inoremap "inoremap "inoremap "inoremap " Disable page up / down noremap noremap inoremap inoremap vnoremap vnoremap " Disable mouse / touchpad (only in vim) set mouse= inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap " Incremental substitutin set inccommand=split " Misc nnoremap sv :source $MYVIMRC cabbrev bsp belowright split cabbrev rvsp belowright vsplit