(WIP): Update Neovim config

For now, only appearance-related configuration has been pushed
This commit is contained in:
elenapan 2025-07-04 09:36:41 +03:00
parent 78db0a9fab
commit 45a34b9a33
6 changed files with 433 additions and 656 deletions

View file

@ -1,47 +0,0 @@
" =============================================================================
" Filename: autoload/lightline/colorscheme/lena.vim
" Author: elenapan @ github
" =============================================================================
" Normal colors
let s:black = [ '#000000', 0 ]
let s:red = [ '#800000', 1 ]
let s:green = [ '#008000', 2 ]
let s:yellow = [ '#808000', 3 ]
let s:blue = [ '#000080', 4 ]
let s:magenta = [ '#800080', 5 ]
let s:cyan = [ '#008080', 6 ]
let s:white = [ '#ffffff', 7 ]
" Bold / Brighter colors
let s:black2 = [ '#808080', 8 ]
let s:red2 = [ '#ff0000', 9 ]
let s:green2 = [ '#00ff00', 10 ]
let s:yellow2 = [ '#ffff00', 11 ]
let s:blue2 = [ '#0000ff', 12 ]
let s:magenta2 = [ '#ff00ff', 13 ]
let s:cyan2 = [ '#00ffff', 14 ]
let s:white2 = [ '#ffffff', 15 ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:cyan2, s:black ], [ s:cyan, s:black ] ]
let s:p.normal.right = [ [ s:cyan2, s:black ], [ s:cyan, s:black ] ]
let s:p.insert.left = [ [ s:red2, s:black ], [ s:red, s:black ] ]
let s:p.insert.right = [ [ s:red2, s:black ], [ s:red, s:black ] ]
let s:p.visual.left = [ [ s:magenta2, s:black ], [ s:magenta, s:black ] ]
let s:p.visual.right = [ [ s:magenta2, s:black ], [ s:magenta, s:black ] ]
let s:p.replace.left = [ [ s:yellow2, s:black ], [ s:yellow, s:black ] ]
let s:p.replace.right = [ [ s:yellow2, s:black ], [ s:yellow, s:black ] ]
let s:p.inactive.left = [ [ s:black2, s:black ], [ s:black2, s:black ] ]
let s:p.inactive.right = [ [ s:black2, s:black ], [ s:black2, s:black ] ]
let s:p.normal.middle = [ [ s:white, s:black ] ]
let s:p.normal.error = [ [ s:white, s:red ] ]
let s:p.normal.warning = [ [ s:black, s:yellow ] ]
let s:p.inactive.middle = [ [ s:black2, s:black ] ]
let s:p.tabline.left = [ [ s:blue, s:black ] ]
let s:p.tabline.tabsel = [ [ s:red, s:black ] ]
let s:p.tabline.middle = [ [ s:black, s:black ] ]
let s:p.tabline.right = [ [ s:black, s:black ] ]
let g:lightline#colorscheme#lena#palette = lightline#colorscheme#flatten(s:p)

View file

@ -1,5 +1,4 @@
" lena.vim - Vim color scheme for 16-color terminals, heavily based on noctu
" elenapan @ github
" lena.vim - Vim color scheme based on noctu
" ------------------------------------------------------------------
" Scheme setup {{{
@ -14,48 +13,52 @@ let g:colors_name = "lena"
"}}}
" Vim UI {{{
hi Normal ctermfg=7
hi Cursor ctermfg=7 ctermbg=1
hi CursorLine ctermbg=0 cterm=NONE
hi MatchParen ctermfg=7 ctermbg=NONE cterm=underline
hi Pmenu ctermfg=15 ctermbg=0
hi PmenuThumb ctermbg=7
hi PmenuSBar ctermbg=8
hi PmenuSel ctermfg=0 ctermbg=4
hi ColorColumn ctermbg=0
hi SpellBad ctermfg=1 ctermbg=NONE cterm=underline
hi SpellCap ctermfg=12 ctermbg=NONE cterm=underline
hi SpellRare ctermfg=11 ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=13 ctermbg=NONE cterm=underline
hi NonText ctermfg=8
hi LineNr ctermfg=8 ctermbg=NONE cterm=bold
hi CursorLineNr ctermfg=14 ctermbg=NONE cterm=bold
hi Visual ctermfg=0 ctermbg=5
hi IncSearch ctermfg=0 ctermbg=13 cterm=NONE
hi Search ctermfg=0 ctermbg=14
hi StatusLine ctermfg=5 ctermbg=0 cterm=NONE
hi StatusLineNC ctermfg=8 ctermbg=0 cterm=bold
hi VertSplit ctermfg=13 ctermbg=NONE cterm=bold
hi TabLine ctermfg=8 ctermbg=0 cterm=NONE
hi TabLineSel ctermfg=7 ctermbg=0
hi Folded ctermfg=4 ctermbg=0 cterm=bold,italic
hi Conceal ctermfg=6 ctermbg=NONE
hi Directory ctermfg=10 ctermbg=NONE cterm=NONE
hi Title ctermfg=11 ctermbg=NONE cterm=bold
hi ErrorMsg ctermfg=9 ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=0 ctermbg=2
hi DiffChange ctermfg=0 ctermbg=3
hi DiffDelete ctermfg=0 ctermbg=1
hi DiffText ctermfg=0 ctermbg=11 cterm=bold
hi User1 ctermfg=1 ctermbg=0
hi User2 ctermfg=2 ctermbg=0
hi User3 ctermfg=4 ctermbg=0
hi User4 ctermfg=3 ctermbg=0
hi User5 ctermfg=5 ctermbg=0
hi User6 ctermfg=6 ctermbg=0
hi User7 ctermfg=7 ctermbg=0
hi User8 ctermfg=8 ctermbg=0
hi User9 ctermfg=15 ctermbg=5
hi Normal guifg=#f4f3ee guibg=#101319
hi Cursor guifg=#f4f3ee guibg=#E34F4F
hi CursorLine guibg=#171b24 gui=none
hi MatchParen guifg=#f4f3ee guibg=#101319 gui=underline
hi Pmenu guifg=#DDDBCF guibg=#171b24
hi PmenuThumb guibg=#f4f3ee
hi PmenuSBar guibg=#3A435A
" For some reason, after an update bg and fg on this one are inverted
hi PmenuSel guibg=#171b24 guifg=#956dca
hi ColorColumn guibg=#171b24
hi SpellBad guifg=#E34F4F guibg=none gui=underline
hi SpellCap guifg=#56B7C8 guibg=none gui=underline
hi SpellRare guifg=#5679E3 guibg=none gui=underline
hi SpellLocal guifg=#885AC4 guibg=none gui=underline
hi NonText guifg=#3A435A
hi LineNr guifg=#3A435A guibg=#101319 gui=bold
hi CursorLineNr guifg=#5679E3 guibg=#171b24 gui=bold
hi Visual guifg=#171b24 guibg=#956dca
hi IncSearch guifg=#171b24 guibg=#885AC4 gui=none
hi Search guifg=#171b24 guibg=#DE642B
hi WinSeparator guifg=#171b24 guibg=#101319 gui=bold
hi EndOfBuffer guifg=#3A435A guibg=none gui=bold
hi Folded guifg=#DE642B guibg=#101319 gui=bold
hi Conceal guifg=#DE642B guibg=#101319
hi Directory guifg=#3E66E0 guibg=#101319 gui=none
hi Title guifg=#5679E3 guibg=#101319 gui=bold
hi ErrorMsg guifg=#DE2B2B guibg=#101319 gui=bold
hi DiffAdd guifg=#171b24 guibg=#69bfce
hi DiffChange guifg=#171b24 guibg=#5599E2
hi DiffDelete guifg=#171b24 guibg=#E34F4F
hi DiffText guifg=#171b24 guibg=#5679E3 gui=bold
hi User1 guifg=#E34F4F guibg=#171b24
hi User2 guifg=#3F8CDE guibg=#171b24
hi User3 guifg=#5599E2 guibg=#171b24
hi User4 guifg=#69bfce guibg=#171b24
hi User5 guifg=#956dca guibg=#171b24
hi User6 guifg=#DE642B guibg=#171b24
hi User7 guifg=#f4f3ee guibg=#171b24
hi User8 guifg=#3A435A guibg=#171b24
hi User9 guifg=#DE2B2B guibg=#171b24
hi User10 guifg=#3E66E0 guibg=#171b24
hi User11 guifg=#5679E3 guibg=#171b24
hi User12 guifg=#56B7C8 guibg=#171b24
hi User13 guifg=#885AC4 guibg=#171b24
hi User14 guifg=#DE642B guibg=#171b24
hi User15 guifg=#DDDBCF guibg=#171b24
hi! link CursorColumn CursorLine
hi! link SignColumn LineNr
hi! link WildMenu Visual
@ -64,53 +67,57 @@ hi! link WarningMsg ErrorMsg
hi! link MoreMsg Title
hi! link Question MoreMsg
hi! link ModeMsg MoreMsg
hi! link TabLineFill StatusLineNC
hi! link SpecialKey NonText
"}}}
" Generic syntax {{{
hi Delimiter ctermfg=7
hi Comment ctermfg=8 cterm=bold
hi Underlined ctermfg=2 cterm=underline
hi Type ctermfg=2
hi String ctermfg=1 cterm=bold
hi Keyword ctermfg=4
hi Todo ctermfg=11 ctermbg=NONE cterm=bold,underline
hi Urgent ctermfg=1 ctermbg=NONE cterm=bold,underline
hi Done ctermfg=4 ctermbg=NONE cterm=bold,underline
hi Function ctermfg=2
hi Identifier ctermfg=7 cterm=NONE
hi Statement ctermfg=4 cterm=bold
hi Constant ctermfg=13
hi Number ctermfg=10
hi Boolean ctermfg=2
hi Special ctermfg=13
hi Ignore ctermfg=0
hi PreProc ctermfg=8 cterm=bold
hi Operator ctermfg=5 cterm=bold
" hi! link Operator Delimiter
hi Delimiter guifg=#f4f3ee
hi Comment guifg=#3A435A gui=bold
hi Underlined guifg=#3F8CDE gui=underline
hi Type guifg=#3F8CDE
hi String guifg=#5679E3 gui=bold
hi Keyword guifg=#3F8CDE
hi Todo guifg=#5679E3 guibg=#101319 gui=bold,underline
hi Urgent guifg=#E34F4F guibg=#101319 gui=bold,underline
hi Done guifg=#69bfce guibg=#101319 gui=bold,underline
hi Function guifg=#DE642B gui=bold
" hi Function guifg=#DE642B gui=italic
hi Identifier guifg=#f4f3ee gui=none
hi Statement guifg=#3F8CDE gui=bold
hi Constant guifg=#885AC4
hi Number guifg=#3E66E0 gui=bold
hi Boolean guifg=#69bfce
hi Special guifg=#885AC4
hi Ignore guifg=#171b24
hi PreProc guifg=#DE642B gui=bold
hi Operator guifg=#956dca gui=bold
hi Define guifg=#3F8CDE gui=none
hi! link Error ErrorMsg
" Extra TODO
hi Conditional guifg=#5599E2 gui=bold
hi Exception guifg=#5599E2 gui=none
"}}}
" HTML {{{
hi htmlTagName ctermfg=4
hi htmlTag ctermfg=4
hi htmlArg ctermfg=12
hi htmlH1 cterm=bold
hi htmlBold cterm=bold
hi htmlItalic cterm=underline
hi htmlUnderline cterm=underline
hi htmlBoldItalic cterm=bold,underline
hi htmlBoldUnderline cterm=bold,underline
hi htmlUnderlineItalic cterm=underline
hi htmlBoldUnderlineItalic cterm=bold,underline
hi htmlTagName guifg=#3F8CDE
hi htmlTag guifg=#3F8CDE
hi htmlArg guifg=#3E66E0
hi htmlH1 gui=bold
hi htmlBold gui=bold
hi htmlItalic gui=underline
hi htmlUnderline gui=underline
hi htmlBoldItalic gui=bold,underline
hi htmlBoldUnderline gui=bold,underline
hi htmlUnderlineItalic gui=underline
hi htmlBoldUnderlineItalic gui=bold,underline
hi! link htmlLink Underlined
hi! link htmlEndTag htmlTag
"}}}
" XML {{{
hi xmlTagName ctermfg=2
hi xmlTag ctermfg=10
hi xmlTagName guifg=#69bfce
hi xmlTag guifg=#56B7C8
hi! link xmlString xmlTagName
hi! link xmlAttrib xmlTag
hi! link xmlEndTag xmlTag
@ -123,45 +130,49 @@ hi! link javaScriptBraces Delimiter
"}}}
" PHP {{{
hi phpSpecialFunction ctermfg=5
hi phpIdentifier ctermfg=11
hi phpParent ctermfg=8
hi phpSpecialFunction guifg=#956dca
hi phpIdentifier guifg=#5679E3
hi phpParent guifg=#3A435A
hi! link phpVarSelector phpIdentifier
hi! link phpHereDoc String
hi! link phpDefine Statement
"}}}
" Lua {{{
hi luaIfThen guifg=#3F8CDE gui=bold
hi luaCond guifg=#3F8CDE gui=bold
"}}}
" Markdown {{{
hi markdownHeadingRule ctermfg=3
hi markdownHeadingRule guifg=#5599E2
hi! link markdownHeadingDelimiter markdownHeadingRule
hi! link markdownLinkDelimiter Delimiter
hi! link markdownURLDelimiter Delimiter
hi! link markdownCodeDelimiter NonText
hi markdownLinkDelimiter ctermfg=15 ctermbg=NONE cterm=NONE
hi markdownLinkDelimiter guifg=#DDDBCF guibg=#101319 gui=none
hi! link markdownLinkTextDelimiter markdownLinkDelimiter
hi markdownLinkText ctermfg=2 ctermbg=NONE cterm=bold,underline
hi markdownLinkText guifg=#3F8CDE guibg=#101319 gui=bold,underline
hi! link markdownUrl markdownLinkText
hi! link markdownUrlTitleDelimiter markdownLinkText
hi! link markdownAutomaticLink markdownLinkText
hi! link markdownIdDeclaration markdownLinkText
hi markdownCode ctermfg=4 ctermbg=NONE cterm=NONE
hi markdownCode guifg=#69bfce guibg=#101319 gui=none
hi! link markdownCodeBlock String
hi! link markdownCodeBlock markdownCode
hi! link markdownCodeDelimiter markdownCode
hi markdownBold ctermfg=5 ctermbg=NONE cterm=bold
hi markdownItalic ctermfg=5 ctermbg=NONE cterm=italic
hi markdownBlockquote ctermfg=15 ctermbg=NONE cterm=italic,bold
hi markdownRule ctermfg=15 ctermbg=NONE cterm=italic,bold
hi markdownBold guifg=#956dca guibg=#101319 gui=bold
hi markdownItalic guifg=#956dca guibg=#101319 gui=italic
hi markdownBlockquote guifg=#DDDBCF guibg=#101319 gui=italic,bold
hi markdownRule guifg=#DDDBCF guibg=#101319 gui=italic,bold
hi markdownH1 ctermfg=3 ctermbg=NONE cterm=bold
hi markdownH2 ctermfg=3 ctermbg=NONE cterm=bold
hi markdownH3 ctermfg=2 ctermbg=NONE cterm=bold
hi markdownH4 ctermfg=2 ctermbg=NONE cterm=bold
hi markdownH5 ctermfg=2 ctermbg=NONE cterm=NONE
hi markdownH6 ctermfg=2 ctermbg=NONE cterm=NONE
hi markdownH1 guifg=#5599E2 guibg=#101319 gui=bold
hi markdownH2 guifg=#5599E2 guibg=#101319 gui=bold
hi markdownH3 guifg=#3F8CDE guibg=#101319 gui=bold
hi markdownH4 guifg=#3F8CDE guibg=#101319 gui=bold
hi markdownH5 guifg=#3F8CDE guibg=#101319 gui=none
hi markdownH6 guifg=#3F8CDE guibg=#101319 gui=none
hi markdownListMarker ctermfg=6 ctermbg=NONE cterm=bold
hi markdownOrderedListMarker ctermfg=3 ctermbg=NONE cterm=bold
hi markdownListMarker guifg=#DE642B guibg=#101319 gui=bold
hi markdownOrderedListMarker guifg=#5599E2 guibg=#101319 gui=bold
"}}}
" Ruby {{{
@ -173,11 +184,11 @@ hi! link rubyStringDelimiter rubyString
"}}}
" Git {{{
hi gitCommitBranch ctermfg=3
hi gitCommitSelectedType ctermfg=12
hi gitCommitSelectedFile ctermfg=4
hi gitCommitUnmergedType ctermfg=9
hi gitCommitUnmergedFile ctermfg=1
hi gitCommitBranch guifg=#5599E2
hi gitCommitSelectedType guifg=#3E66E0
hi gitCommitSelectedFile guifg=#3F8CDE
hi gitCommitUnmergedType guifg=#DE2B2B
hi gitCommitUnmergedFile guifg=#E34F4F
hi! link gitCommitFile Directory
hi! link gitCommitUntrackedFile gitCommitUnmergedFile
hi! link gitCommitDiscardedType gitCommitUnmergedType
@ -191,7 +202,7 @@ hi! link vimHiAttrib Constant
"}}}
" LESS {{{
hi lessVariable ctermfg=11
hi lessVariable guifg=#5679E3
hi! link lessVariableValue Normal
"}}}
@ -207,7 +218,7 @@ hi! link VimwikiBoldChar markdownBold
hi! link VimwikiItalicChar markdownItalic
hi! link VimwikiBoldCharT VimwikiBoldChar
hi! link VimwikiItalicCharT VimwikiItalicChar
hi VimwikiBoldItalicChar ctermfg=6 ctermbg=NONE cterm=italic,bold
hi VimwikiBoldItalicChar guifg=#DE642B guibg=#101319 gui=italic,bold
hi! link VimwikiItalicBoldChar VimwikiBoldItalicChar
hi! link VimwikiBoldItalicCharT VimwikiBoldItalicChar
hi! link VimwikiItalicBoldCharT VimwikiBoldItalicChar
@ -238,50 +249,51 @@ hi! link helpURL Underlined
"}}}
" CtrlP {{{
hi CtrlPMatch ctermfg=1 cterm=bold
hi CtrlPLinePre ctermfg=6 cterm=bold
hi CtrlPMatch guifg=#E34F4F gui=bold
hi CtrlPLinePre guifg=#DE642B gui=bold
"}}}
" Mustache {{{
hi mustacheSection ctermfg=14 cterm=bold
hi mustacheMarker ctermfg=6
hi mustacheVariable ctermfg=14
hi mustacheVariableUnescape ctermfg=9
hi mustachePartial ctermfg=13
hi mustacheSection guifg=#DE642B gui=bold
hi mustacheMarker guifg=#DE642B
hi mustacheVariable guifg=#DE642B
hi mustacheVariableUnescape guifg=#DE2B2B
hi mustachePartial guifg=#885AC4
"}}}
" Shell {{{
hi shDerefSimple ctermfg=11
hi shDerefSimple guifg=#5679E3
hi shDo guifg=#5599E2
hi! link shDerefVar shDerefSimple
"}}}
" Syntastic {{{
hi SyntasticWarningSign ctermfg=3 ctermbg=NONE
hi SyntasticErrorSign ctermfg=1 ctermbg=NONE
hi SyntasticStyleWarningSign ctermfg=4 ctermbg=NONE
hi SyntasticStyleErrorSign ctermfg=2 ctermbg=NONE
hi SyntasticWarningSign guifg=#5599E2 guibg=#101319
hi SyntasticErrorSign guifg=#E34F4F guibg=#101319
hi SyntasticStyleWarningSign guifg=#69bfce guibg=#101319
hi SyntasticStyleErrorSign guifg=#3F8CDE guibg=#101319
"}}}
" Netrw {{{
hi netrwExe ctermfg=9
hi netrwClassify ctermfg=8 cterm=bold
hi netrwExe guifg=#DE2B2B
hi netrwClassify guifg=#3A435A gui=bold
"}}}
" Ledger {{{
hi ledgerAccount ctermfg=11
hi ledgerAccount guifg=#5679E3
hi! link ledgerMetadata Comment
hi! link ledgerTransactionStatus Statement
"}}}
" Diff {{{
hi diffAdded ctermfg=4
hi diffRemoved ctermfg=1
hi diffAdded guifg=#3F8CDE
hi diffRemoved guifg=#E34F4F
hi! link diffFile PreProc
hi! link diffLine Title
"}}}
" Plug {{{
hi plugSha ctermfg=3
hi plugSha guifg=#5599E2
"}}}
" Blade {{{
@ -290,5 +302,146 @@ hi! link bladeParen phpParent
hi! link bladeEchoDelim PreProc
"}}}
" Solidity {{{
hi! link solStorageType Keyword
hi! link solFuncStorageType Keyword
hi! link solStorageConst Keyword
hi! link solParens Normal
hi! link solComma Normal
hi! link solMapping Define
hi! link solEnum Define
hi! link solStruct Define
hi! link solNumber Number
hi! link solString String
hi! link solString String
hi! link solOperator Operator
hi! link solDestructure Keyword
hi! link solFunction Define
hi! link solConstructor Define
hi! link solFuncName Function
hi! link solFuncModifier Keyword
hi! link solFuncModCustom Keyword
hi! link solFuncCall Function
hi! link solFuncReturn Special
hi! link solModifier Define
hi! link solModifierName Function
hi! link solModifierInsert Function
hi! link solContract Define
hi! link solContractName Function
hi! link solInheritor Keyword
hi! link solLibUsing Special
hi! link solLibName Type
hi! link solEvent Define
hi! link solEventName Function
hi! link solEventParamMod Keyword
hi! link solEmitEvent Special
hi! link solConstant Constant
hi! link solReserved Error
hi! link solPragma PreProc
hi! link solAssemblyBlock PreProc
hi! link solAssemblyName Special
hi! link solAssemblyOperator Operator
hi! link solAssemblyLet Keyword
hi! link solAssemblyMethod Special
hi! link solAssemblyConst Constant
hi! link solAssemblyCond Conditional
hi! link solMethod Special
hi! link solRepeat Repeat
hi! link solLabel Label
hi! link solException Exception
hi! link solValueType Type
hi! link solTypeCast Type
hi! link solIf Keyword
hi! link solElse Keyword
hi! link solLoop Keyword
hi! link solTodo Todo
hi! link solComment Comment
hi! link solNatspecTag SpecialComment
hi! link solNatspecBlock Comment
hi! link solNatspecParam Define
" }}}
" FZF {{{
hi FzfMain guifg=#f4f3ee guibg=#171b24
hi FzfMargin guifg=#f4f3ee guibg=#171b24
hi FzfHighlight guifg=#E34F4F guibg=#E34F4F
hi FzfBorder guifg=#DE642B guibg=#101319
hi FzfBgPlus guibg=#171b24 gui=none
hi FzfBorderFloating guibg=#171b24 guifg=#E34F4F
"}}}
" Statusline {{{
hi StatusLine guifg=#171b24 guibg=none gui=bold
hi StatusLineNC guifg=#171b24 guibg=none gui=bold
hi StatusLineAccent guibg=#171b24 guifg=#f4f3ee
hi StatusLineNormalAccent guibg=#171b24 guifg=#5679E3
hi StatusLineInsertAccent guibg=#171b24 guifg=#E34F4F
hi StatusLineVisualAccent guibg=#171b24 guifg=#956dca
hi StatusLineReplaceAccent guibg=#171b24 guifg=#e37e4f
hi StatusLineCmdLineAccent guibg=#171b24 guifg=#69bfce
" }}}
" Tabline {{{
hi TabLine guifg=#3A435A guibg=none gui=none
hi TabLineSel guifg=#f4f3ee guibg=none
hi TabLineFill guifg=#E34F4F guibg=none gui=none
hi CustomTablineBubbleEdge guibg=none guifg=#171b24
hi CustomTablineBubbleIndex guibg=#171b24 guifg=#69bfce gui=bold
hi CustomTablineBubbleIndexSel guibg=#171b24 guifg=#956dca gui=bold
hi CustomTablineBubbleLabel guibg=#171b24 guifg=#3A435A gui=bold
hi CustomTablineBubbleLabelSel guibg=#171b24 guifg=#f4f3ee gui=bold
hi CustomTablineBubbleLabelSelModified guibg=#171b24 guifg=#f4f3ee gui=bold,undercurl guisp=#5599E2
hi CustomTablineBubbleDirectory guibg=#171b24 guifg=#5679E3 gui=bold
hi CustomTablineBubbleFiletype guibg=#171b24 guifg=#e37e4f gui=bold
hi CustomTablineBubbleGit guibg=#171b24 guifg=#E34F4F gui=bold
hi CustomTablineBubbleSeparator guibg=#171b24 guifg=#3A435A gui=bold
hi CustomTablineBubbleLine guibg=#171b24 guifg=#E34F4F gui=bold
hi CustomTablineBubbleColumn guibg=#171b24 guifg=#69bfce gui=bold
hi CustomTablineBubblePercentage guibg=#171b24 guifg=#5679E3 gui=bold
hi CustomTablineBubbleTotalLines guibg=#171b24 guifg=#956dca gui=bold
" }}}
" Vim Sneak {{{
hi Sneak guifg=#171b24 gui=bold guibg=#5679E3
hi SneakScope guifg=#171b24 gui=bold guibg=#DE642B
hi SneakLabel guifg=#171b24 gui=bold guibg=#5679E3
"}}}
" GitGutter {{{
hi GitGutterAdd guifg=#56B7C8 guibg=#101319 gui=bold
hi GitGutterChange guifg=#3E66E0 guibg=#101319 gui=bold
hi GitGutterDelete guifg=#DE2B2B guibg=#101319 gui=bold
hi GitGutterChangeDelete guifg=#5679E3 guibg=#101319 gui=bold
hi GitGutterAddLine guifg=#56B7C8 guibg=#101319 gui=bold
hi GitGutterChangeLine guifg=#3E66E0 guibg=#101319 gui=bold
hi GitGutterDeleteLine guifg=#DE2B2B guibg=#101319 gui=bold
hi GitGutterChangeDeleteLine guifg=#5679E3 guibg=#101319 gui=bold
highlight link diffAdded DiffAdd
highlight link diffChanged DiffChange
highlight link diffRemoved DiffDelete
"}}}
" highlightedyank
" highlight HighlightedyankRegion gui=reverse gui=reverse
highlight HighlightedyankRegion guibg=#3F8CDE guifg=#171b24 gui=none
" Mini
hi MiniIndentscopeSymbol guifg=#956dca guibg=none gui=none
" Org
hi @org.headline.level1 guibg=none guifg=#3F8CDE gui=bold
hi @org.headline.level2 guibg=none guifg=#DE642B gui=bold
hi @org.headline.level3 guibg=none guifg=#DE2B2B gui=bold
hi @org.headline.level4 guibg=none guifg=#3E66E0 gui=bold
hi @org.headline.level5 guibg=none guifg=#56B7C8 gui=bold
hi @org.headline.level6 guibg=none guifg=#885AC4 gui=bold
hi @org.headline.level7 guibg=none guifg=#3F8CDE gui=bold
hi @org.headline.level8 guibg=none guifg=#DE642B gui=bold
" Nvim-cmp
hi FloatBorder guibg=none guifg=#5599E2 gui=bold
" vim: fdm=marker:sw=2:sts=2:et

13
config/nvim/init.lua Normal file
View file

@ -0,0 +1,13 @@
vim.g.mapleader = " "
vim.g.maplocalleader = " m"
vim.o.termguicolors = true
require('appearance')
-- Still cleaning these up, will upload in a few decades
-- require('plugins')
-- require('settings')
-- require('utils')
-- require('keybinds')
-- require('autocommands')
-- require('greek')

View file

@ -1,363 +0,0 @@
" ~~~ Plugins ~~~
" call plug#begin('~/.local/share/nvim/plugged')
" Plug 'shougo/deoplete.nvim'
" Plug 'ctrlpvim/ctrlp.vim'
" Plug 'itchyny/lightline.vim'
" Plug 'tpope/vim-commentary'
" Plug 'tpope/vim-surround'
" Plug 'lambdalisue/suda.vim'
" Plug 'jiangmiao/auto-pairs'
" Plug 'machakann/vim-highlightedyank'
" Plug 'vimwiki/vimwiki'
" Plug 'tpope/vim-markdown'
" Plug 'nelstrom/vim-markdown-folding'
" call plug#end()
" Highlight the line on which the cursor lives.
set nocursorline
" Always show at least one line above/below the cursor.
set scrolloff=1
" Always show at least one line left/right of the cursor.
set sidescrolloff=5
" Relative line numbers
set number relativenumber
" Highlight matching pairs of brackets. Use the '%' character to jump between them.
set matchpairs+=<:>
" Display different types of white spaces.
set list
set listchars=tab:\ ,trail:•,extends:#,nbsp:.
" Use system clipboard
set clipboard=unnamedplus
" Remove timeout for partially typed commands
set notimeout
" F keys
" Quick write session with F2
map <F2> :mksession! ~/.vim_session<cr>
" And load session with F3
map <F3> :source ~/.vim_session<cr>
" Fix indentation
map <F7> gg=G<C-o><C-o>
" Toggle auto change directory
map <F8> :set autochdir! autochdir?<CR>
" Toggle vertical line
set colorcolumn=
fun! ToggleCC()
if &cc == ''
" set cc=1,4,21
set cc=80
else
set cc=
endif
endfun
nnoremap <silent> <F9> :call ToggleCC()<CR>
" Beginning and end of line
imap <C-a> <home>
imap <C-e> <end>
cmap <C-a> <home>
cmap <C-e> <end>
" Control-S Save
nmap <C-S> :w<cr>
vmap <C-S> <esc>:w<cr>
imap <C-S> <esc>:w<cr>
" Save + back into insert
" imap <C-S> <esc>:w<cr>a
" Control-C Copy in visual mode
vmap <C-C> y
" Control-V Paste in insert and command mode
imap <C-V> <esc>pa
cmap <C-V> <C-r>0
" Window Movement
nmap <M-h> <C-w>h
nmap <M-j> <C-w>j
nmap <M-k> <C-w>k
nmap <M-l> <C-w>l
" Resizing
nmap <C-M-H> 2<C-w><
nmap <C-M-L> 2<C-w>>
nmap <C-M-K> <C-w>-
nmap <C-M-J> <C-w>+
" Insert mode movement
imap <M-h> <left>
imap <M-j> <down>
imap <M-k> <up>
imap <M-l> <right>
imap <M-f> <C-right>
imap <M-b> <C-left>
" Spacemacs-like keybinds
" Change <leader> bind from default \
" nnoremap <space> <nop>
" let mapleader=" "
" Make ci( work like quotes do
function! New_cib()
if search("(","bn") == line(".")
sil exe "normal! f)ci("
sil exe "normal! l"
startinsert
else
sil exe "normal! f(ci("
sil exe "normal! l"
startinsert
endif
endfunction
" And for curly brackets
function! New_ciB()
if search("{","bn") == line(".")
sil exe "normal! f}ci{"
sil exe "normal! l"
startinsert
else
sil exe "normal! f{ci{"
sil exe "normal! l"
startinsert
endif
endfunction
nnoremap ci( :call New_cib()<CR>
nnoremap cib :call New_cib()<CR>
nnoremap ci{ :call New_ciB()<CR>
nnoremap ciB :call New_ciB()<CR>
" Alt-m for creating a new line in insert mode
imap <M-m> <esc>o
" netrw configuration
let g:netrw_browse_split = 0
let g:netrw_altfile = 1
" Cycle windows
nmap <M-o> <C-W>w
vmap <M-o> <C-W>w
tmap <M-o> <esc><C-W>w
imap <M-o> <esc><C-W>w
" Command mode history
cmap <M-p> <up>
cmap <M-n> <down>
cmap <M-k> <up>
cmap <M-j> <down>
" Back to normal mode from insert
" inoremap jk <esc>
" inoremap JK <esc>
" Manually refresh file
nmap <F5> :e!<cr>
" Indentation
set smarttab
set expandtab
set tabstop=8
set softtabstop=4
set shiftwidth=4
"set smartindent
set autoindent
"set cindent
set nocompatible
filetype plugin indent on
" Write buffer through sudo (works on vim but not neovim)
" cnoreabbrev w!! w !sudo -S tee % >/dev/null
" Neovim: suda plugin
cnoreabbrev w!! w suda://%
" Allow switching between buffers without saving
set hidden
" Mouse support
set mouse=a
"Case insensitive searching
set ignorecase
"Will automatically switch to case sensitive if you use any capitals
set smartcase
" Auto toggle smart case of for ex commands
" Assumes 'set ignorecase smartcase'
augroup dynamic_smartcase
autocmd!
autocmd CmdLineEnter : set nosmartcase
autocmd CmdLineLeave : set smartcase
augroup END
" Substitute live preview
set inccommand=nosplit
" Markdown Folding
let g:markdown_fold_style = 'nested'
" Vimwiki
" let g:vimwiki_list = [{'path': '~/dox/vimwiki/', 'syntax': 'markdown', 'ext': '.md'}]
let g:vimwiki_global_ext=0
let g:vimwiki_table_mappings=0
let g:vimwiki_folding='expr'
nmap <leader>vv <Plug>VimwikiIndex
nmap <leader>vV <Plug>VimwikiTabIndex
nmap <leader>vs <Plug>VimwikiUISelect
nmap <leader>vi <Plug>VimwikiDiaryIndex
nmap <leader>vdd <Plug>VimwikiMakeDiaryNote
nmap <leader>vDD <Plug>VimwikiTabMakeDiaryNote
nmap <leader>vdy <Plug>VimwikiMakeYesterdayDiaryNote
nmap <leader>vdt <Plug>VimwikiMakeTomorrowDiaryNote
nmap <M-space> <Plug>VimwikiToggleListItem
" Highlighted yank (-1 for persistent)
let g:highlightedyank_highlight_duration = 400
" If lightline/airline is enabled, don't show mode under it
set noshowmode
" Shell
set shell=/bin/zsh
" Ctrlp
let g:ctrlp_switch_buffer = '0'
" Useful for large projects
let g:ctrlp_max_files=0
let g:ctrlp_max_depth=10
" So that it does not only index starting from current directory
let g:ctrlp_working_path_mode = ""
let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp'
" Use ag AKA the_silver_searcher for indexing. Faster!!!
" TIP: Use ~/.ignore to ignore directories/files
" set grepprg=ag\ --nogroup\ --nocolor
" let g:ctrlp_user_command = 'ag %s -l --hidden --nocolor -g ""'
""if executable('ag')
"" let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
""endif
let g:ctrlp_show_hidden =1
let g:ctrlp_clear_cache_on_exit = 0
" Lightline
" Get default from :h lightline
let g:lightline = {
\ 'colorscheme': 'lena',
\ }
let g:lightline.active = {
\ 'left': [ [ 'mode', 'paste', 'sep1' ],
\ [ 'readonly', 'filename', 'modified' ],
\ [ ] ],
\ 'right': [ [ 'lineinfo' ],
\ [ 'percent' ],
\ [ 'filetype' ] ]
\ }
let g:lightline.inactive = {
\ 'left': [ [ 'mode', 'paste', 'sep1' ],
\ [ 'readonly', 'filename', 'modified' ] ],
\ 'right': [ [ 'lineinfo' ],
\ [ 'percent' ],
\ [ 'filetype' ] ]
\ }
let g:lightline.tabline = {
\ 'left': [ [ 'tabs' ] ],
\ 'right': [ ] }
let g:lightline.tab = {
\ 'active': [ 'tabnum', 'filename', 'modified' ],
\ 'inactive': [ 'tabnum', 'filename', 'modified' ] }
let g:lightline.component = {
\ 'mode': '%{lightline#mode()}',
\ 'absolutepath': '%F',
\ 'relativepath': '%f',
\ 'filename': '%t',
\ 'modified': '%M',
\ 'bufnum': '%n',
\ 'paste': '%{&paste?"PASTE":""}',
\ 'readonly': '%R',
\ 'charvalue': '%b',
\ 'charvaluehex': '%B',
\ 'fileencoding': '%{&fenc!=#""?&fenc:&enc}',
\ 'fileformat': '%{&ff}',
\ 'filetype': '%{&ft!=#""?&ft:"no ft"}',
\ 'percent': '%3p%%',
\ 'percentwin': '%P',
\ 'spell': '%{&spell?&spelllang:""}',
\ 'lineinfo': '%3l:%-2v',
\ 'line': '%l',
\ 'column': '%c',
\ 'close': '%999X X ',
\ 'winnr': '%{winnr()}',
\ 'sep1': ''
\}
let g:lightline.mode_map = {
\ 'n' : 'N',
\ 'i' : 'I',
\ 'R' : 'R',
\ 'v' : 'V',
\ 'V' : 'L',
\ "\<C-v>": 'B',
\ 'c' : 'C',
\ 's' : 'S',
\ 'S' : 'S-LINE',
\ "\<C-s>": 'S-BLOCK',
\ 't': 'T',
\ }
let g:lightline.separator = {
\ 'left': '', 'right': ''
\}
let g:lightline.subseparator = {
\ 'left': '', 'right': ''
\}
let g:lightline.tabline_separator = g:lightline.separator
let g:lightline.tabline_subseparator = g:lightline.subseparator
let g:lightline.enable = {
\ 'statusline': 1,
\ 'tabline': 1
\ }
" deoplete
let g:deoplete#enable_at_startup = 1
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
" Clear search highlighting with Escape key
nnoremap <silent><esc> :noh<return><esc>
" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^linux\|^Eterm'
set t_Co=16
endif
set wildmenu
set encoding=utf8
scriptencoding utf-8
" Colorscheme
colorscheme lena
set fillchars=vert::
" Restore last cursor position and marks on open
au BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
\ | exe "normal! g`\""
\ | endif

View file

@ -0,0 +1,144 @@
-- Load colorscheme
vim.cmd [[colorscheme lena]]
-- Display different types of white spaces
vim.o.list = true
vim.o.listchars = 'tab:│ ,trail:•,extends:#,nbsp:.'
-- set listchars=tab:\ ,trail:•,extends:#,nbsp:.
-- Characters to fill the statuslines and vertical separators
vim.o.fillchars='stl:━,stlnc:━,vert:┃,vertleft:┫,vertright:┣,verthoriz:╋,horiz:━,horizup:┻,horizdown:┳,eob:⬝'
-- Only one statusline for all windows
vim.opt.laststatus = 3
-- Always show tabline, since statusline has no information
vim.o.showtabline = 2
local function LineInfo()
return table.concat {
"%#CustomTablineBubbleEdge#",
"%#CustomTablineBubbleLine# ",
"%2l", -- Space-padded line number
"%#CustomTablineBubbleSeparator# ✖ ",
"%#CustomTablineBubbleColumn#",
"%-2c", -- Space padded, right-aligned column number
" %#CustomTablineBubbleEdge#",
"%#CustomTablineBubblePercentage# ",
"%P", -- Space-padded line number
"%#CustomTablineBubbleSeparator# ● ",
"%#CustomTablineBubbleTotalLines#",
"%L",
" %#CustomTablineBubbleEdge# ",
}
end
function FiletypeAndDirectoryAndGit()
local full_path = vim.fn.expand('%:p:h'):gsub(vim.fn.expand('~'), '~')
local components = vim.split(full_path, '/')
-- Get the direct parent directory
local parent_dir = table.remove(components)
-- Truncate each component to a maximum of three characters
for i, component in ipairs(components) do
components[i] = string.sub(component, 1, 3)
end
-- Add the direct parent directory back to the components
table.insert(components, parent_dir)
-- Reconstruct the truncated path
local truncated_path = table.concat(components, '/')
local git_info = vim.b.gitsigns_status_dict
local git_info_or_end_bubble
if not git_info or git_info.head == "" then
git_info_or_end_bubble = " %#CustomTablineBubbleEdge#"
else
git_info_or_end_bubble = " %#CustomTablineBubbleEdge#%#CustomTablineBubbleGit# "..git_info.head.." %#CustomTablineBubbleEdge#"
end
return table.concat {
"%#CustomTablineBubbleEdge#",
"%#CustomTablineBubbleFiletype# ",
vim.bo.filetype == "" and "-" or vim.bo.filetype,
" %#CustomTablineBubbleEdge#",
"%#CustomTablineBubbleDirectory# ",
truncated_path,
git_info_or_end_bubble
}
end
function Tabs()
local selected_tabnr = vim.fn.tabpagenr()
local total_tabs = vim.fn.tabpagenr('$')
local tabs_string = ''
local i = 1
while i <= total_tabs do
local buflist = vim.fn.tabpagebuflist(i)
local winnr = vim.fn.tabpagewinnr(i)
local file = vim.fn.fnamemodify(vim.fn.bufname(buflist[winnr]), ':p:t')
if (file == '') then
file = '[No Name]'
end
local tab_bubble, hi_label, hi_index
if (i == selected_tabnr) then
hi_index = "%#CustomTablineBubbleIndexSel#"
if (vim.bo.modified) then
hi_label = "%#CustomTablineBubbleLabelSelModified#"
else
hi_label = "%#CustomTablineBubbleLabelSel#"
end
else
hi_index = "%#CustomTablineBubbleIndex#"
hi_label = "%#CustomTablineBubbleLabel#"
end
tab_bubble = table.concat {
"%"..i.."T", -- Start of clickable section for tab i
'%#CustomTablineBubbleEdge#',
hi_index..' '..i..' ',
'%#CustomTablineBubbleEdge#',
'%#CustomTablineBubbleEdge#',
hi_label..' '..file..' ',
'%#CustomTablineBubbleEdge#',
"%X", -- End of clickable section
' ',
}
tabs_string = tabs_string..tab_bubble
i = i + 1
end
return tabs_string
end
function CustomTabline()
return table.concat {
Tabs(),
"%=", -- Switch to right side
FiletypeAndDirectoryAndGit(),
" ",
LineInfo(),
}
end
-- Empty since all the info is in the tabline now
-- TODO Add LSP info in statusline at some point
function CustomStatusline()
return ""
end
-- Since some of the displayed information does not update automatically in the
-- tabline, but only the statusline, we need to use this autocmd to update it
-- on relevant events
vim.api.nvim_create_autocmd({'CursorMoved', 'BufEnter'}, {
callback = function()
vim.api.nvim_command('redrawtabline')
end,
})
vim.api.nvim_exec([[
set tabline=%!v:lua.CustomTabline()
set statusline=%!v:lua.CustomStatusline()
]], false)

View file

@ -1,123 +0,0 @@
" ====================================================================
" Make sure to:
" 1. source this file somewhere at the bottom of your config.
" 2. disable any statusline plugins, as they will override this.
" ====================================================================
" Do not show mode under the statusline since the statusline itself changes
" color depending on mode
set noshowmode
set laststatus=2
" ~~~~ Statusline configuration ~~~~
" ':help statusline' is your friend!
function! RedrawModeColors(mode) " {{{
" Normal mode
if a:mode == 'n'
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
hi MyStatuslineFilename ctermfg=4 cterm=none ctermbg=0
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=4
" Insert mode
elseif a:mode == 'i'
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
hi MyStatuslineFilename ctermfg=1 cterm=none ctermbg=0
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=1
" Replace mode
elseif a:mode == 'R'
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
hi MyStatuslineFilename ctermfg=3 cterm=none ctermbg=0
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=3
" Visual mode
elseif a:mode == 'v' || a:mode == 'V' || a:mode == '^V'
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
hi MyStatuslineFilename ctermfg=5 cterm=none ctermbg=0
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=5
" Command mode
elseif a:mode == 'c'
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
hi MyStatuslineFilename ctermfg=6 cterm=none ctermbg=0
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=6
" Terminal mode
elseif a:mode == 't'
hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE
hi MyStatuslineFilename ctermfg=1 cterm=none ctermbg=0
hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=1
endif
" Return empty string so as not to display anything in the statusline
return ''
endfunction
" }}}
function! SetModifiedSymbol(modified) " {{{
if a:modified == 1
hi MyStatuslineModifiedBody ctermbg=0 cterm=bold ctermfg=1
else
hi MyStatuslineModifiedBody ctermbg=0 cterm=bold ctermfg=8
endif
return '●'
endfunction
" }}}
function! SetFiletype(filetype) " {{{
if a:filetype == ''
return '-'
else
return a:filetype
endif
endfunction
" }}}
" Statusbar items
" ====================================================================
" This will not be displayed, but the function RedrawModeColors will be
" called every time the mode changes, thus updating the colors used for the
" components.
set statusline=%{RedrawModeColors(mode())}
" Left side items
" =======================
set statusline+=%#MyStatuslineAccent#
set statusline+=%#MyStatuslineAccentBody#\
" Filename
set statusline+=%#MyStatuslineFilename#\ %.20f
set statusline+=%#MyStatuslineSeparator#\
" Modified status
set statusline+=%#MyStatuslineModified#
set statusline+=%#MyStatuslineModifiedBody#%{SetModifiedSymbol(&modified)}
set statusline+=%#MyStatuslineModified#
" Right side items
" =======================
set statusline+=%=
" Line and Column
set statusline+=%#MyStatuslineLineCol#
set statusline+=%#MyStatuslineLineColBody#%2l
set statusline+=\/%#MyStatuslineLineColBody#%2c
set statusline+=%#MyStatuslineLineCol#
" Padding
set statusline+=\
" Current scroll percentage and total lines of the file
set statusline+=%#MyStatuslinePercentage#
set statusline+=%#MyStatuslinePercentageBody#%P
set statusline+=\/\%#MyStatuslinePercentageBody#%L
set statusline+=%#MyStatuslinePercentage#
" Padding
set statusline+=\
" Filetype
set statusline+=%#MyStatuslineFiletype#
set statusline+=%#MyStatuslineFiletypeBody#%{SetFiletype(&filetype)}
set statusline+=%#MyStatuslineFiletype#
" Setup the colors
hi StatusLine ctermfg=5 ctermbg=NONE cterm=NONE
hi StatusLineNC ctermfg=8 ctermbg=NONE cterm=bold
hi MyStatuslineSeparator ctermfg=0 cterm=NONE ctermbg=NONE
hi MyStatuslineModified ctermfg=0 cterm=NONE ctermbg=NONE
hi MyStatuslineFiletype ctermbg=NONE cterm=NONE ctermfg=0
hi MyStatuslineFiletypeBody ctermfg=5 cterm=italic ctermbg=0
hi MyStatuslinePercentage ctermfg=0 cterm=NONE ctermbg=NONE
hi MyStatuslinePercentageBody ctermbg=0 cterm=none ctermfg=6
hi MyStatuslineLineCol ctermfg=0 cterm=NONE ctermbg=NONE
hi MyStatuslineLineColBody ctermbg=0 cterm=none ctermfg=2