diff options
| author | Syndamia <kamen@syndamia.com> | 2023-02-24 22:39:05 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2023-02-24 22:39:05 +0200 |
| commit | 6ea45e425be52b92006e97e2caf315036542856d (patch) | |
| tree | 99e37b4a5963af7c99b35e705135b9457800aa82 /.vim/startup/settings.vim | |
| parent | 9020beac90c6779d831f0d73639c95a2dabacdb1 (diff) | |
| download | dotfiles-6ea45e425be52b92006e97e2caf315036542856d.tar dotfiles-6ea45e425be52b92006e97e2caf315036542856d.tar.gz dotfiles-6ea45e425be52b92006e97e2caf315036542856d.zip | |
[.vimrc] Huge overhaul, separating contents into different files
Diffstat (limited to '.vim/startup/settings.vim')
| -rw-r--r-- | .vim/startup/settings.vim | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/.vim/startup/settings.vim b/.vim/startup/settings.vim new file mode 100644 index 0000000..217b40f --- /dev/null +++ b/.vim/startup/settings.vim @@ -0,0 +1,73 @@ +" Color scheme {{{ + colorscheme gruvbox + let g:gruvbox_contrast_dark = 'hard' + set background=dark " Setting dark mode +" }}} + +" Character visuals {{{ + set list " Enabled customization of white space characters, so spaces, tabs, EOL, etc. (:h 'list') + + " Show tabs as a | with three spaces + " DO NOT remove the trailing space in the next line! + set listchars=tab:│\ ,extends:>,precedes:< + + autocmd BufReadPre,FileReadPre * call NoWrapOnLong() + function! NoWrapOnLong() + let maxline = system("wc -L " . bufname("%") . " | awk '{print $1}'") + if maxline > 840 + set nowrap + endif + endfunction +" }}} + +" Backspace and cursor {{{ + set cul " Highlight current cursor line + autocmd InsertEnter,InsertLeave * set cul! " Don't highlight current line, when in insert mode + set backspace=indent,eol,start " Better backspace functionality + + set number " Show line numbers to the left + set scrolloff=0 " Don't keep any screen lines above or below the cursor + set mouse=a " Mouse support + + set showmatch " Cursor jumps to matching opening bracket automatically + + let &t_SI = "\e[5 q" " thin cursor on insert mode + let &t_SR = "\e[4 q" " underline on replace mode + let &t_EI = "\e[1 q" " block on normal mode + " Don't move cursor one character back on esc key press + inoremap <silent> <Esc> <C-O>:stopinsert<CR> +" }}} + +" Indentation {{{ + set tabstop=4 " Show tabs as 4 wide + set shiftwidth=4 " Indent with 4 spaces + + autocmd BufRead,BufNewFile *.component.css set filetype=css + autocmd FileType css,ts setlocal ts=2 sw=2 sts=0 expandtab " Transform tabs in CSS and TS into 2 spaces + autocmd FileType lisp,scheme,haskell setlocal ts=2 sw=2 sts=0 expandtab +" }}} + +" Folding {{{ + filetype plugin indent on + syntax on " Syntax highlighting + autocmd FileType * set foldmethod=syntax " Syntax folding for all + autocmd FileType vim,text,sh,zsh,xdefaults setlocal foldmethod=marker " Overrides folding to marker for types + + set foldlevel=99 " Open all folds by default + autocmd FileType vim,sh,zsh,xdefaults setlocal foldlevel=0 " Close all folds by defualt on filetypes + + set foldtext=MyFoldText() " Custom text for a fold + function MyFoldText() + let line = substitute(getline(v:foldstart), "\t", repeat(" ", shiftwidth(0)), "") " Gets the first fold line and replace tabs with spaces (as many as shiftwidth is set to) + let linecount = v:foldend - v:foldstart " Calculates amount of folded lines + return line . repeat(" ", winwidth('%') - strlen(line) - 10 - strlen(linecount)) + \ . " " . linecount . " " " Shows our line, then a lot of spaces, and at the very end we have line number and arrows + endfunction +" }}} + +" Language mapping for (bulgarian) cyrillic characters to english +set langmap=АA,аa,БB,бb,ВW,вw,ГG,гg,ДD,дd,ЕE,еe,ЖV,жv,ЗZ,зz,ИI,иi,ЙJ,йj,КK,кk,ЛL,лl,МM,мm,НN,нn,ОO,оo,ПP,пp,РR,рr,СS,сs,ТT,тt,УU,уu,ФF,фf,ХH,хh,ЦC,цc,Ч~,ч`,Ш{,ш[,Щ},щ],ЪY,ъy,ЬX,ьx,Ю\|,ю\\,ЯQ,яq +set spelllang=en,bg_BG " Adds Bulgarian to spelling languages + +autocmd BufRead,BufNewFile * set tw=0 " Sets textwidth to 0 for all files (set with autocmd since just doing "set tw=0" can be overridden) +set signcolumn=number " Show signs and numbers on the same column |
