diff --git a/config/nvim/colors/lena.vim b/config/nvim/colors/lena.vim new file mode 100644 index 0000000..c251482 --- /dev/null +++ b/config/nvim/colors/lena.vim @@ -0,0 +1,294 @@ +" lena.vim - Vim color scheme for 16-color terminals, heavily based on noctu +" elenapan @ github +" ------------------------------------------------------------------ + +" Scheme setup {{{ +set background=dark +hi! clear + +if exists("syntax_on") + syntax reset +endif + +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! link CursorColumn CursorLine +hi! link SignColumn LineNr +hi! link WildMenu Visual +hi! link FoldColumn SignColumn +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! link Error ErrorMsg + +"}}} +" 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! link htmlLink Underlined +hi! link htmlEndTag htmlTag + +"}}} +" XML {{{ +hi xmlTagName ctermfg=2 +hi xmlTag ctermfg=10 +hi! link xmlString xmlTagName +hi! link xmlAttrib xmlTag +hi! link xmlEndTag xmlTag +hi! link xmlEqual xmlTag + +"}}} +" JavaScript {{{ +hi! link javaScript Normal +hi! link javaScriptBraces Delimiter + +"}}} +" PHP {{{ +hi phpSpecialFunction ctermfg=5 +hi phpIdentifier ctermfg=11 +hi phpParent ctermfg=8 +hi! link phpVarSelector phpIdentifier +hi! link phpHereDoc String +hi! link phpDefine Statement + +"}}} +" Markdown {{{ +hi markdownHeadingRule ctermfg=3 +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! link markdownLinkTextDelimiter markdownLinkDelimiter +hi markdownLinkText ctermfg=2 ctermbg=NONE cterm=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! 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 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 markdownListMarker ctermfg=6 ctermbg=NONE cterm=bold +hi markdownOrderedListMarker ctermfg=3 ctermbg=NONE cterm=bold + +"}}} +" Ruby {{{ +hi! link rubyDefine Statement +hi! link rubyLocalVariableOrMethod Identifier +hi! link rubyConstant Constant +hi! link rubyInstanceVariable Number +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! link gitCommitFile Directory +hi! link gitCommitUntrackedFile gitCommitUnmergedFile +hi! link gitCommitDiscardedType gitCommitUnmergedType +hi! link gitCommitDiscardedFile gitCommitUnmergedFile + +"}}} +" Vim {{{ +hi! link vimSetSep Delimiter +hi! link vimContinue Delimiter +hi! link vimHiAttrib Constant + +"}}} +" LESS {{{ +hi lessVariable ctermfg=11 +hi! link lessVariableValue Normal + +"}}} +" NERDTree {{{ +hi! link NERDTreeHelp Comment +hi! link NERDTreeExecFile String + +"}}} +" Vimwiki {{{ +hi! link VimwikiBold markdownBold +hi! link VimwikiItalic markdownItalic +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! link VimwikiItalicBoldChar VimwikiBoldItalicChar +hi! link VimwikiBoldItalicCharT VimwikiBoldItalicChar +hi! link VimwikiItalicBoldCharT VimwikiBoldItalicChar +" VimwikiEqInChar xxx links to VimwikiMarkers +" VimwikiDelTextChar xxx links to VimwikiMarkers +" VimwikiEqInCharT xxx links to VimwikiMarkers +" VimwikiCodeCharT xxx links to VimwikiMarkers +" VimwikiDelTextCharT xxx links to VimwikiMarkers +hi! link VimwikiHeaderChar markdownHeadingDelimiter +hi! link VimwikiList markdownListMarker +hi! link VimwikiCode markdownCode +hi! link VimwikiCodeChar markdownCodeDelimiter +hi! link VimwikiHeader1 markdownH1 +hi! link VimwikiHeader2 markdownH2 +hi! link VimwikiHeader3 markdownH3 +hi! link VimwikiHeader4 markdownH4 +hi! link VimwikiHeader5 markdownH5 +hi! link VimwikiHeader6 markdownH6 + +"}}} +" Help {{{ +hi! link helpExample String +hi! link helpHeadline Title +hi! link helpSectionDelim Comment +hi! link helpHyperTextEntry Statement +hi! link helpHyperTextJump Underlined +hi! link helpURL Underlined + +"}}} +" CtrlP {{{ +hi CtrlPMatch ctermfg=1 cterm=bold +hi CtrlPLinePre ctermfg=6 cterm=bold + +"}}} +" Mustache {{{ +hi mustacheSection ctermfg=14 cterm=bold +hi mustacheMarker ctermfg=6 +hi mustacheVariable ctermfg=14 +hi mustacheVariableUnescape ctermfg=9 +hi mustachePartial ctermfg=13 + +"}}} +" Shell {{{ +hi shDerefSimple ctermfg=11 +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 + +"}}} +" Netrw {{{ +hi netrwExe ctermfg=9 +hi netrwClassify ctermfg=8 cterm=bold + +"}}} +" Ledger {{{ +hi ledgerAccount ctermfg=11 +hi! link ledgerMetadata Comment +hi! link ledgerTransactionStatus Statement + +"}}} +" Diff {{{ +hi diffAdded ctermfg=4 +hi diffRemoved ctermfg=1 +hi! link diffFile PreProc +hi! link diffLine Title + +"}}} +" Plug {{{ +hi plugSha ctermfg=3 + +"}}} +" Blade {{{ +hi! link bladeStructure PreProc +hi! link bladeParen phpParent +hi! link bladeEchoDelim PreProc + +"}}} + +" vim: fdm=marker:sw=2:sts=2:et diff --git a/config/nvim/init.vim b/config/nvim/init.vim new file mode 100644 index 0000000..1e9bf68 --- /dev/null +++ b/config/nvim/init.vim @@ -0,0 +1,363 @@ +" ~~~ 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 :mksession! ~/.vim_session +" And load session with F3 +map :source ~/.vim_session + +" Fix indentation +map gg=G +" Toggle auto change directory +map :set autochdir! autochdir? + +" Toggle vertical line +set colorcolumn= +fun! ToggleCC() + if &cc == '' + " set cc=1,4,21 + set cc=80 + else + set cc= + endif +endfun +nnoremap :call ToggleCC() + +" Beginning and end of line +imap +imap +cmap +cmap + +" Control-S Save +nmap :w +vmap :w +imap :w +" Save + back into insert +" imap :wa + +" Control-C Copy in visual mode +vmap y + +" Control-V Paste in insert and command mode +imap pa +cmap 0 + +" Window Movement +nmap h +nmap j +nmap k +nmap l + +" Resizing +nmap 2< +nmap 2> +nmap - +nmap + + +" Insert mode movement +imap +imap +imap +imap +imap +imap + +" Spacemacs-like keybinds +" Change bind from default \ +" nnoremap +" 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() +nnoremap cib :call New_cib() +nnoremap ci{ :call New_ciB() +nnoremap ciB :call New_ciB() + +" Alt-m for creating a new line in insert mode +imap o + +" netrw configuration +let g:netrw_browse_split = 0 +let g:netrw_altfile = 1 + +" Cycle windows +nmap w +vmap w +tmap w +imap w + +" Command mode history +cmap +cmap +cmap +cmap + +" Back to normal mode from insert +" inoremap jk +" inoremap JK + +" Manually refresh file +nmap :e! + +" 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 vv VimwikiIndex +nmap vV VimwikiTabIndex +nmap vs VimwikiUISelect +nmap vi VimwikiDiaryIndex +nmap vdd VimwikiMakeDiaryNote +nmap vDD VimwikiTabMakeDiaryNote +nmap vdy VimwikiMakeYesterdayDiaryNote +nmap vdt VimwikiMakeTomorrowDiaryNote +nmap 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', + \ "\": 'B', + \ 'c' : 'C', + \ 's' : 'S', + \ 'S' : 'S-LINE', + \ "\": '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 pumvisible() ? "\" : "\" + +" Clear search highlighting with Escape key +nnoremap :noh + +" 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