commit d51fcb1cc23b918aa68c46c53c32363dbc99f75d Author: Alexey Norets Date: Sat Sep 27 19:04:28 2025 +0300 First commit diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..7e3e397 --- /dev/null +++ b/.vimrc @@ -0,0 +1,132 @@ +""" Install plugin manager if not installed yet +let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' +if empty(glob(data_dir . '/autoload/plug.vim')) + silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' + autocmd VimEnter * PlugInstall --sync | source $MYVIMRC +endif +""" + +""" It's for manpage in vim. `:Man 3 printf` +runtime! ftplugin/man.vim +""" + +""" Save position in file. +autocmd BufReadPost * silent! normal! g`"zv +""" + +""" Plugin manager +call plug#begin() +" List your plugins here +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' +Plug 'tpope/vim-commentary' +Plug 'vimwiki/vimwiki' +Plug 'machakann/vim-highlightedyank' +Plug 'unblevable/quick-scope' +call plug#end() +""" +" let g:vimwiki_list = [{'path': '/Users/norets/Library/Mobile Documents/iCloud~md~obsidian/Documents/Main/', +" \ 'syntax': 'markdown', 'ext': 'md'}] +let g:vimwiki_list = [{'path': '/Users/norets/Library/Mobile Documents/iCloud~com~logseq~logseq/Documents/logseqnotes/pages', + \ 'syntax': 'markdown', 'ext': 'md'}] + + +""" quick-scope settings: +let g:qs_highlight_on_keys = ['f', 'F', 't', 'T'] + +""" Remaping +let mapleader = " " +" FZF +nnoremap pf :Files +nnoremap bb :Buffers +nnoremap pg :GFiles +nnoremap ps :RG +" end_fzf +nnoremap z :noh +nnoremap bk :bdelete +vnoremap y "+y +nnoremap y "+y +" inoremap jk +" inoremap kj +nnoremap s :%s/\<\>//gI +vnoremap J :m '>+1gv=gv +vnoremap K :m '<-2gv=gv +nnoremap zz +nnoremap zz +nnoremap n nzzzv +nnoremap N Nzzzv +nnoremap vsl :set wrap! +nnoremap :cnext +nnoremap :cprev +""" + +syntax on +filetype plugin indent on +set cursorlineopt=number +set cul +set tabstop=4 +set shiftwidth=4 +set expandtab +set nowrap +" set guifont=Iosevka\ 20 +set guioptions-=m +set guioptions-=T +set noesckeys +set relativenumber +set number +set ignorecase +set smartcase +set incsearch +set cinoptions=l1 +set modeline +set keymap=russian-jcukenwin +set iminsert=0 +set imsearch=0 +set autoindent +set autochdir +set hlsearch +set ruler +set termguicolors +" colorscheme habamax +colorscheme jimbo + + +"" Cursor changer for `insert mode` +let &t_SI = "\e[6 q" +let &t_EI = "\e[2 q" + +" reset the cursor on start (for older versions of vim, usually not required) +augroup myCmds +au! +autocmd VimEnter * silent !echo -ne "\e[2 q" +augroup END +"" End Cursor changer + +map gf :e + +set laststatus=1 +set statusline=%4r +set statusline+=[ +set statusline+=%n +set statusline+=]\ +set statusline+=%F " Path to the file +set statusline+=%4m +set statusline+=%= " Switch to the right side +set statusline+=%y\ " Filetype of the file +set statusline+=%l,%c%V\ %P " Current line +" set statusline+=/ " Separator +" set statusline+=%L " Total lines + + +" autocmd FileType c setlocal makeprg=cc\ +" augroup Linting +" autocmd! +" autocmd FileType c compiler gcc +" autocmd BufWritePost *.c silent make! | silent redraw! +" autocmd QuickFixCmdPost [^l]* cwindow +" augroup END +" augroup project +" autocmd! +" autocmd BufRead,BufNewFile *.h,*.c set filetype=c +" augroup END + diff --git a/jimbo.vim b/jimbo.vim new file mode 100644 index 0000000..4df8446 --- /dev/null +++ b/jimbo.vim @@ -0,0 +1,252 @@ +" Jimbo (my personal theme) Theme for Vim +" +" templated from and somewhat inspired by: +" https://github.com/dr-sooch/gruber-darker-vim +" which was adapted from an Emacs theme: +" https://github.com/rexim/gruber-darker-theme +" +" some of it could be written better but idc, it works :) +" +" -------------------------------------------- + +" setup and options for italics, bold, transparent, gitgutter +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="jimbo" + +let g:jimbo_transparent = get(g:, 'jimbo_transparent', 0) + +let g:jimbo_italic = get(g:, 'jimbo_italic', 0) +let s:italic = "NONE" +if g:jimbo_italic == 1 + let s:italic="italic" +endif + +let g:jimbo_bold = get(g:, 'jimbo_bold', 0) +let s:bold = "NONE" +if g:jimbo_bold == 1 + let s:bold = "bold" +endif + +let g:jimbo_gitgutter = get(g:, 'jimbo_gitgutter', 1) + +" palette +let s:jimboFG= ['#e4e4ef', '255'] +let s:jimboFG1= ['#f4f4ff', '255'] +let s:jimboFG2= ['#f5f5ff', '255'] +let s:jimboFG3= ['#65737e', '255'] +let s:jimboWhite= ['#ffffff', '255'] " done +let s:jimboBlack= ['#000000', '0'] " done +let s:jimboBG= ['#181818', '0'] " done +let s:jimboBG1= ['#282828', '0'] " done +let s:jimboBG2= ['#33242c', '0'] " done +let s:jimboBG3= ['#453d41', '0'] " done +let s:jimboLightRed= ['#c73c3f', '255'] +let s:jimboRed= ['#f43841', '255'] +let s:jimboNiagara= ['#96a6c8', '255'] " done +let s:jimboQuartz= ['#95a99f', '255'] +let s:jimboYellow= ['#ffdd33', '255'] +" let s:jimboGreen= ['#02bf51', '255'] " can't decide +let s:jimboGreen= ['#73c936', '255'] " can't decide +" let s:jimboMain= ['#ffdd33', '255'] +" let s:jimboMain= ['#c73c3f', '255'] +let s:jimboMain= ['#c94245', '255'] " done? +let s:jimboBrown= ['#cc8c3c', '255'] " done +let s:jimboPurple= ['#978ad1', '255'] " done +let s:jimboPink= ['#d6bddb', '255'] " done +let s:jimboLightBlue= ['#0087d7', '255'] +let s:jimboBlue= ['#0000d7', '255'] +let s:jimboGold= ['#d7af00', '255'] +let s:jimboDiffAdd= ['#003b00', '255'] +let s:jimboDiffCha= ['#2c2c2c', '255'] +let s:jimboDiffDel= ['#3b0000', '255'] +let s:none= ['NONE', 'NONE'] + +" highlight function +function! hi(group, fg, bg, attr, attrsp) + " fg, bg, attr, attrsp + if !empty(a:fg) + exec "hi " . a:group . " guifg=" . a:fg[0] + exec "hi " . a:group . " ctermfg=" . a:fg[1] + endif + if !empty(a:bg) + exec "hi " . a:group . " guibg=" . a:bg[0] + exec "hi " . a:group . " ctermbg=" . a:bg[1] + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr + exec "hi " . a:group . " cterm=" . a:attr + endif + if !empty(a:attrsp) + exec "hi " . a:group . " guisp=" . a:attrsp[0] + endif +endfunction + +" call :hi(group, fg, bg, gui, guisp) +call hi('Bold', '', '', 'bold', '') +call hi('Debug', s:jimboFG2, '', '', '') +call hi('Directory', s:jimboLightBlue, '', '', '') +call hi('ErrorMsg', s:jimboWhite, s:jimboRed, '', '') +call hi('Exception', s:jimboBrown, '', '', '') +call hi('FoldColumn', s:jimboBrown, s:jimboBG, '', '') +call hi('Folded', s:jimboBrown, s:jimboBG1, s:italic, '') +call hi('IncSearch', s:jimboBlack, s:jimboFG2, 'NONE', '') +call hi('Italic', '', '', s:italic, '') + +call hi('Macro', s:jimboFG, '', '', '') +call hi('MatchParen', s:jimboBG2, s:jimboMain, '', '') +call hi('ModeMsg', s:jimboFG2, '', '', '') +call hi('MoreMsg', s:jimboFG2, '', '', '') +call hi('Question', s:jimboNiagara, '', '', '') +call hi('Search', s:jimboBlack, s:jimboMain, '', '') +call hi('SpecialKey', s:jimboFG2, '', '', '') +call hi('TooLong', s:jimboFG2, '', '', '') +call hi('Underlined', s:jimboPurple, '', '', '') +call hi('Visual', '', s:jimboBG3, '', '') +call hi('VisualNOS', s:jimboRed, '', '', '') +call hi('WarningMsg', s:jimboRed, '', '', '') +call hi('WildMenu', s:jimboBlack, s:jimboMain, '', '') +call hi('Title', s:jimboQuartz, '', '', '') +call hi('Conceal', s:jimboFG, s:jimboBG, '', '') +call hi('Cursor', s:jimboBG, s:jimboFG, '', '') +call hi('NonText', s:jimboFG2, '', '', '') +call hi('Normal', s:jimboFG, s:jimboBG, '', '') +call hi('EndOfBuffer', s:jimboFG, s:jimboBG, '', '') +" call hi('LineNr', s:jimboFG, s:jimboBG, '', '') +call hi('SignColumn', s:none, s:none, '', '') +call hi('VertSplit', s:jimboFG2, s:jimboBG1, '', '') +call hi('ColorColumn', '', s:jimboBG2, '', '') +call hi('CursorColumn', '', s:jimboBG2, '', '') +" call hi('CursorLine', , s:jimboBG2, 'NONE', '') +call hi('CursorLineNr', s:jimboYellow, s:jimboBG, 'NONE', '') +call hi('LineNR', s:jimboBG3, s:jimboBG, '', '') +call hi('PMenu', s:jimboFG, s:jimboBG1, '', '') +call hi('PMenuSel', s:jimboFG, s:jimboBG2, '', '') +call hi('PmenuSbar', '', s:jimboBG, '', '') +call hi('PmenuThumb', '', s:jimboBG, '', '') +call hi('helpExample', s:jimboMain, '', '', '') +call hi('helpCommand', s:jimboMain, '', '', '') + +" gitgutter sign column and line highlighting +if g:jimbo_gitgutter == 1 + call hi('GitGutterAdd', s:jimboGreen, '', '', '') + call hi('GitGutterChange', s:jimboWhite, '', '', '') + call hi('GitGutterDelete', s:jimboRed, '', '', '') + call hi('GitGutterAddLine', '', s:jimboDiffAdd, '', '') + call hi('GitGutterChangeLine', '', s:jimboDiffCha, '', '') + call hi('GitGutterChangeDeleteLine','', s:jimboDiffDel, '', '') + call hi('GitGutterDeleteLine', '', s:jimboDiffDel, '', '') +endif + +" standard syntax highlighting +call hi('Boolean', s:jimboQuartz, '', '', '') +call hi('Character', s:jimboGreen, '', '', '') +call hi('Comment', s:jimboBrown, '', s:italic, '') +" call hi('Conditional', s:jimboMain, '', '', '') +call hi('Conditional', s:jimboYellow, '', s:bold, '') +call hi('PreCondit', s:jimboQuartz, '', s:bold, '') +call hi('Constant', s:jimboYellow, '', '', '') +call hi('cConstant', s:jimboYellow, '', '', '') +" call hi('Define', s:jimboMain, '', '', '') +call hi('Define', s:jimboFG, '', '', '') +call hi('cDefine', s:jimboQuartz, '', '', '') +call hi('Delimiter', s:jimboFG, '', '', '') +call hi('Float', s:jimboQuartz, '', '', '') +call hi('cFunction', s:jimboNiagara, '', '', '') +call hi('cErrInBracket', s:jimboNiagara, s:none, '', '') +call hi('Identifier', s:jimboNiagara, '', s:bold, '') +" call hi('Include', s:jimboMain, '', '', '') +call hi('Include', s:jimboQuartz, '', '', '') +call hi('Keyword', s:jimboMain, '', '', '') +call hi('Label', s:jimboYellow, '', '', '') +call hi('Number', s:jimboQuartz, '', '', '') +call hi('Operator', s:jimboQuartz, '', '', '') +call hi('PreProc', s:jimboFG1, '', '', '') +" call hi('cJCParamType', s:jimboYellow, '', '', '') +" call hi('cJCFunc', s:jimboLightBlue, '', '', '') +call hi('Repeat', s:jimboMain, '', '', '') +call hi('Special', s:jimboQuartz, '', '', '') +call hi('SpecialChar', s:jimboGreen, '', '', '') +call hi('Statement', s:jimboYellow, '', '', '') +call hi('cCppSkip', s:jimboQuartz, '', '', '') +call hi('cPreCondit', s:jimboQuartz, '', '', '') +call hi('cPreConditMatch', s:jimboQuartz, '', '', '') +call hi('cStatement', s:jimboYellow, '', '', '') +call hi('StorageClass', s:jimboYellow, '', '', '') +call hi('String', s:jimboGreen, '', '', '') +call hi('Structure', s:jimboYellow, '', '', '') +call hi('Todo', s:jimboBG, s:jimboMain, '', '') +" call hi('Type', s:jimboPink, '', '', '') +call hi('Type', s:jimboQuartz, '', '', '') +call hi('ParamType', s:jimboYellow, '', '', '') +call hi('Typedef', s:jimboYellow, '', '', '') +call hi('cTypedef', s:jimboYellow, '', '', '') + +call hi('SpellBad', '', '', 'underline', '') +call hi('SpellLocal', '', '', 'underline', '') +call hi('SpellCap', '', '', 'underline', '') +call hi('SpellRare', '', '', 'underline', '') + +" markdown +call hi('markdownCode', s:jimboGreen, '', '', '') +call hi('markdownCodeBlock', s:jimboGreen, '', '', '') +call hi('markdownHeadingDelimiter', s:jimboNiagara, '', '', '') +call hi('markdownItalic', s:jimboPurple, '', s:italic, '') +call hi('markdownBold', s:jimboMain, '', s:bold, '') +call hi('markdownCodeDelimiter', s:jimboBrown, '', s:italic, '') +call hi('markdownError', s:jimboFG, s:jimboBG1, '', '') + +call hi('ALEErrorSign', s:jimboRed, s:jimboBG2, s:bold, '') +call hi('ALEWarningSign', s:jimboMain, s:jimboBG2, s:bold, '') +call hi('ALEInfoSign', s:jimboGreen, s:jimboBG2, s:bold, '') + +call hi('NERDTreeExecFile', s:jimboFG, '', '', '') +call hi('NERDTreeDirSlash', s:jimboNiagara, '', '', '') +call hi('NERDTreeOpenable', s:jimboNiagara, '', '', '') +call hi('NERDTreeFile', '', s:none, '', '') +call hi('NERDTreeFlags', s:jimboNiagara, '', '', '') + +call hi('DirvishPathTail', s:jimboYellow, '', '', '') +call hi('DirvishArg', s:jimboWhite, s:jimboRed, '', '') + + +let g:terminal_color_0= s:jimboBG1[0] +let g:terminal_color_8= s:jimboBG1[0] + +let g:terminal_color_1= s:jimboLightRed[0] +let g:terminal_color_9= s:jimboLightRed[0] + +let g:terminal_color_2= s:jimboGreen[0] +let g:terminal_color_10= s:jimboGreen[0] + +let g:terminal_color_3= s:jimboMain[0] +let g:terminal_color_11= s:jimboMain[0] + +let g:terminal_color_4= s:jimboNiagara[0] +let g:terminal_color_12= s:jimboNiagara[0] + +let g:terminal_color_5= s:jimboPurple[0] +let g:terminal_color_13= s:jimboPurple[0] + +let g:terminal_color_6= s:jimboNiagara[0] +let g:terminal_color_14= s:jimboNiagara[0] + +let g:terminal_color_7= s:jimboFG[0] +let g:terminal_color_15= s:jimboFG[0] + +let g:terminal_color_background=s:jimboBG1[0] +let g:terminal_color_foreground=s:jimboWhite[0] + +if g:jimbo_transparent == 1 + hi Normal guibg=NONE ctermbg=NONE + hi NormalFloat guibg=NONE ctermbg=NONE + hi NormalNC guibg=NONE ctermbg=NONE + hi LineNr guibg=NONE ctermbg=NONE + hi SignColumn guibg=NONE ctermbg=NONE + hi FoldColumn guibg=NONE ctermbg=NONE + hi EndOfBuffer guibg=NONE ctermbg=NONE + hi CursorLineNr guibg=NONE cterm=NONE +endif