summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Sima <bsima@groq.com>2022-03-09 09:28:28 -0800
committerBen Sima <bsima@groq.com>2022-03-09 09:28:39 -0800
commit3f1e56299d0d571057c047631caae7c34a0ff1e0 (patch)
tree02bc0d0f51815293c6d07c8534fdc3f8f83f69d9
parent0f6fe9c10e8866ff7f33735223541cebcbd4f318 (diff)
add vim-fugitive and disable color theme for vimdiff usage
-rw-r--r--lib/common.nix3
-rw-r--r--lib/vimrc318
2 files changed, 163 insertions, 158 deletions
diff --git a/lib/common.nix b/lib/common.nix
index a87ebb5..aafb1dc 100644
--- a/lib/common.nix
+++ b/lib/common.nix
@@ -115,6 +115,8 @@ in
pull.rebase = "true";
commit.template = "${./git-commit-template}";
commit.verbose = "true";
+ mergetool.fugitive.cmd = ''vim -f -c "Gvdiffsplit!" "$MERGED"'';
+ merge.tool = "fugitive";
sendemail = {
#smtpuser = "ben@bsima.me";
#smtpserverport = 587;
@@ -229,6 +231,7 @@ in
plugins = with pkgs.vimPlugins; [
editorconfig-vim
vim-sensible
+ vim-fugitive
vim-colorschemes
vim-sexp-mappings-for-regular-people
# vim-ripgrep # not in nixpkgs :(
diff --git a/lib/vimrc b/lib/vimrc
index 1565d6b..7aabb36 100644
--- a/lib/vimrc
+++ b/lib/vimrc
@@ -114,167 +114,169 @@ call plug#begin('~/.vim/plugged')
Plug 'wfxr/minimap.vim'
call plug#end()
-let g:colors_name = 'bs_monochrome'
-
-let s:white = ['White', 15]
-let s:black = ['#0e1111', 16]
-let s:dblack = ['#111111', 1]
-let s:bgray = ['#181818', 233]
-let s:lgray = ['LightGray', 255]
-let s:cgray = ['#737373', 243]
-let s:dgray = ['DarkGray', 248]
-let s:sblue = ['LightBlue', 67]
-let s:yellow = ['LightYellow', 226]
-let s:red = ['LightRed', 160]
-let s:green = ['LightGreen', 28]
-let s:purple = ['LightMagenta', 13]
+colorscheme monokai-phoenix
+" disable my color scheme, it doesn't work with vimdiff
+"let g:colors_name = 'bs_monochrome'
"
-let s:default_fg = s:lgray
-let s:default_bg = s:black
-
-let s:italic = 'italic'
-let s:bold = 'bold'
-let s:underline = 'underline'
-let s:none = 'NONE'
-
-let s:default_lst = []
-let s:default_str = ''
-
-if !exists("g:monochrome_italic_comments")
- let g:monochrome_italic_comments = 0
-endif
-let s:comment_attr = g:monochrome_italic_comments ? s:italic : s:none
+"let s:white = ['White', 15]
+"let s:black = ['#0e1111', 16]
+"let s:dblack = ['#111111', 1]
+"let s:bgray = ['#181818', 233]
+"let s:lgray = ['LightGray', 255]
+"let s:cgray = ['#737373', 243]
+"let s:dgray = ['DarkGray', 248]
+"let s:sblue = ['LightBlue', 67]
+"let s:yellow = ['LightYellow', 226]
+"let s:red = ['LightRed', 160]
+"let s:green = ['LightGreen', 28]
+"let s:purple = ['LightMagenta', 13]
+""
+"let s:default_fg = s:lgray
+"let s:default_bg = s:black
"
-" A function for setting colors, if I want it...
-function! s:hi(...)
- let group = a:1
- let fg = get(a:, 2, s:default_fg)
- let bg = get(a:, 3, s:default_bg)
- let attr = get(a:, 4, s:default_str)
-
- let cmd = ['hi', group]
-
- if fg != s:default_lst
- call add(cmd, 'guifg='.fg[0])
- call add(cmd, 'ctermfg='.fg[1])
- endif
-
- if bg != s:default_lst && bg != s:default_bg
- call add(cmd, 'guibg='.bg[0])
- call add(cmd, 'ctermbg='.bg[1])
- endif
-
- if attr != s:default_str
- call add(cmd, 'gui='.attr)
- call add(cmd, 'cterm='.attr)
- endif
-
- exec join(cmd, ' ')
-endfunction
-
-call s:hi('Normal')
-highlight clear Cursor
-highlight clear CursorLine " clear the underline nonsense
-call s:hi('Cursor', s:black, s:sblue)
-call s:hi('lCursor', s:black, s:sblue)
-call s:hi('CursorLine', s:black, s:sblue, s:none)
-call s:hi('CursorLineNr', s:white, s:sblue, s:bold)
-call s:hi('CursorColumn', s:black, s:sblue, s:none)
-call s:hi('ColorColumn', s:lgray, s:dblack, s:none)
-call s:hi('Search', s:black, s:purple)
-call s:hi('Visual', s:black, s:green)
-call s:hi('ErrorMsg', s:white, s:red)
-call s:hi('StatusLine', s:black, s:purple)
-call s:hi('StatusLineNC', s:black, s:purple)
-call s:hi('VertSplit', s:black, s:purple)
+"let s:italic = 'italic'
+"let s:bold = 'bold'
+"let s:underline = 'underline'
+"let s:none = 'NONE'
"
-"" Tildes at the bottom of a buffer, etc.
-call s:hi('NonText', s:dgray)
-
-" Folding.
-call s:hi('FoldColumn', s:dgray)
-call s:hi('Folded')
-
-" Line numbers gutter.
-call s:hi('LineNr', s:dgray)
-
-" Small arrow used for tabs.
-call s:hi('SpecialKey', s:sblue, s:default_bg, s:bold)
-
-" File browsers.
-call s:hi('Directory', s:white, s:default_bg, s:bold)
-
-" Help.
-call s:hi('helpSpecial')
-call s:hi('helpHyperTextJump', s:sblue, s:default_bg, s:underline)
-call s:hi('helpNote')
-
-" Popup menu.
-call s:hi('Pmenu', s:white, s:sblue)
-call s:hi('PmenuSel', s:sblue, s:white)
-
-" Notes.
-call s:hi('Todo', s:black, s:yellow, s:bold)
-
-" Signs.
-call s:hi('SignColumn')
-
-" --- Languages ---------------------------------------------------------------
-call s:hi('Statement', s:white, s:default_bg, s:bold)
-call s:hi('PreProc', s:white, s:default_bg, s:bold)
-call s:hi('String', s:sblue)
-call s:hi('Comment', s:cgray, s:default_bg, s:comment_attr)
-call s:hi('Constant')
-call s:hi('Type', s:white, s:default_bg, s:bold)
-call s:hi('Function', s:white)
-call s:hi('Identifier')
-call s:hi('Special')
-call s:hi('MatchParen', s:black, s:lgray)
-call s:hi('vimOption')
-call s:hi('vimGroup')
-call s:hi('vimHiClear')
-call s:hi('vimHiGroup')
-call s:hi('vimHiAttrib')
-call s:hi('vimHiGui')
-call s:hi('vimHiGuiFgBg')
-call s:hi('vimHiCTerm')
-call s:hi('vimHiCTermFgBg')
-call s:hi('vimSynType')
-hi link vimCommentTitle Comment
-call s:hi('pythonEscape', s:sblue)
-call s:hi('javaScriptFunction', s:white, s:default_bg, s:bold)
-call s:hi('perlSharpBang', s:cgray)
-call s:hi('perlStringStartEnd', s:sblue)
-call s:hi('perlStringEscape', s:sblue)
-call s:hi('perlMatchStartEnd', s:sblue)
-call s:hi('elixirAlias', s:default_fg, s:default_bg, s:none)
-call s:hi('elixirDelimiter', s:sblue)
-call s:hi('elixirSelf', s:default_fg, s:default_bg, s:none)
-" For ||, ->, etc.
-call s:hi('elixirOperator')
-" Module attributes like @doc or @type.
-hi link elixirVariable Statement
-" While rendered as comments in other languages, docstrings are strings,
-" experimental.
-hi link elixirDocString String
-hi link elixirDocTest String
-hi link elixirStringDelimiter String
-call s:hi('rubyConstant')
-call s:hi('rubySharpBang', s:cgray)
-call s:hi('rubyStringDelimiter', s:sblue)
-call s:hi('rubyStringEscape', s:sblue)
-call s:hi('rubyRegexpEscape', s:sblue)
-call s:hi('rubyRegexpAnchor', s:sblue)
-call s:hi('rubyRegexpSpecial', s:sblue)
-
-" --- Diffs --------------------------------------------------------------------
-call s:hi('diffFile', s:cgray)
-call s:hi('diffNewFile', s:cgray)
-call s:hi('diffIndexLine', s:cgray)
-call s:hi('diffLine', s:cgray)
-call s:hi('diffSubname', s:cgray)
-call s:hi('diffAdded', s:white, s:green)
-call s:hi('diffRemoved', s:white, s:red)
+"let s:default_lst = []
+"let s:default_str = ''
+"
+"if !exists("g:monochrome_italic_comments")
+" let g:monochrome_italic_comments = 0
+"endif
+"let s:comment_attr = g:monochrome_italic_comments ? s:italic : s:none
+""
+"" A function for setting colors, if I want it...
+"function! s:hi(...)
+" let group = a:1
+" let fg = get(a:, 2, s:default_fg)
+" let bg = get(a:, 3, s:default_bg)
+" let attr = get(a:, 4, s:default_str)
+"
+" let cmd = ['hi', group]
+"
+" if fg != s:default_lst
+" call add(cmd, 'guifg='.fg[0])
+" call add(cmd, 'ctermfg='.fg[1])
+" endif
+"
+" if bg != s:default_lst && bg != s:default_bg
+" call add(cmd, 'guibg='.bg[0])
+" call add(cmd, 'ctermbg='.bg[1])
+" endif
+"
+" if attr != s:default_str
+" call add(cmd, 'gui='.attr)
+" call add(cmd, 'cterm='.attr)
+" endif
+"
+" exec join(cmd, ' ')
+"endfunction
+"
+"call s:hi('Normal')
+"highlight clear Cursor
+"highlight clear CursorLine " clear the underline nonsense
+"call s:hi('Cursor', s:black, s:sblue)
+"call s:hi('lCursor', s:black, s:sblue)
+"call s:hi('CursorLine', s:black, s:sblue, s:none)
+"call s:hi('CursorLineNr', s:white, s:sblue, s:bold)
+"call s:hi('CursorColumn', s:black, s:sblue, s:none)
+"call s:hi('ColorColumn', s:lgray, s:dblack, s:none)
+"call s:hi('Search', s:black, s:purple)
+"call s:hi('Visual', s:black, s:green)
+"call s:hi('ErrorMsg', s:white, s:red)
+"call s:hi('StatusLine', s:black, s:purple)
+"call s:hi('StatusLineNC', s:black, s:purple)
+"call s:hi('VertSplit', s:black, s:purple)
+""
+""" Tildes at the bottom of a buffer, etc.
+"call s:hi('NonText', s:dgray)
+"
+"" Folding.
+"call s:hi('FoldColumn', s:dgray)
+"call s:hi('Folded')
+"
+"" Line numbers gutter.
+"call s:hi('LineNr', s:dgray)
+"
+"" Small arrow used for tabs.
+"call s:hi('SpecialKey', s:sblue, s:default_bg, s:bold)
+"
+"" File browsers.
+"call s:hi('Directory', s:white, s:default_bg, s:bold)
+"
+"" Help.
+"call s:hi('helpSpecial')
+"call s:hi('helpHyperTextJump', s:sblue, s:default_bg, s:underline)
+"call s:hi('helpNote')
+"
+"" Popup menu.
+"call s:hi('Pmenu', s:white, s:sblue)
+"call s:hi('PmenuSel', s:sblue, s:white)
+"
+"" Notes.
+"call s:hi('Todo', s:black, s:yellow, s:bold)
+"
+"" Signs.
+"call s:hi('SignColumn')
+"
+"" --- Languages ---------------------------------------------------------------
+"call s:hi('Statement', s:white, s:default_bg, s:bold)
+"call s:hi('PreProc', s:white, s:default_bg, s:bold)
+"call s:hi('String', s:sblue)
+"call s:hi('Comment', s:cgray, s:default_bg, s:comment_attr)
+"call s:hi('Constant')
+"call s:hi('Type', s:white, s:default_bg, s:bold)
+"call s:hi('Function', s:white)
+"call s:hi('Identifier')
+"call s:hi('Special')
+"call s:hi('MatchParen', s:black, s:lgray)
+"call s:hi('vimOption')
+"call s:hi('vimGroup')
+"call s:hi('vimHiClear')
+"call s:hi('vimHiGroup')
+"call s:hi('vimHiAttrib')
+"call s:hi('vimHiGui')
+"call s:hi('vimHiGuiFgBg')
+"call s:hi('vimHiCTerm')
+"call s:hi('vimHiCTermFgBg')
+"call s:hi('vimSynType')
+"hi link vimCommentTitle Comment
+"call s:hi('pythonEscape', s:sblue)
+"call s:hi('javaScriptFunction', s:white, s:default_bg, s:bold)
+"call s:hi('perlSharpBang', s:cgray)
+"call s:hi('perlStringStartEnd', s:sblue)
+"call s:hi('perlStringEscape', s:sblue)
+"call s:hi('perlMatchStartEnd', s:sblue)
+"call s:hi('elixirAlias', s:default_fg, s:default_bg, s:none)
+"call s:hi('elixirDelimiter', s:sblue)
+"call s:hi('elixirSelf', s:default_fg, s:default_bg, s:none)
+"" For ||, ->, etc.
+"call s:hi('elixirOperator')
+"" Module attributes like @doc or @type.
+"hi link elixirVariable Statement
+"" While rendered as comments in other languages, docstrings are strings,
+"" experimental.
+"hi link elixirDocString String
+"hi link elixirDocTest String
+"hi link elixirStringDelimiter String
+"call s:hi('rubyConstant')
+"call s:hi('rubySharpBang', s:cgray)
+"call s:hi('rubyStringDelimiter', s:sblue)
+"call s:hi('rubyStringEscape', s:sblue)
+"call s:hi('rubyRegexpEscape', s:sblue)
+"call s:hi('rubyRegexpAnchor', s:sblue)
+"call s:hi('rubyRegexpSpecial', s:sblue)
+"
+"" --- Diffs --------------------------------------------------------------------
+"call s:hi('diffFile', s:cgray)
+"call s:hi('diffNewFile', s:cgray)
+"call s:hi('diffIndexLine', s:cgray)
+"call s:hi('diffLine', s:cgray)
+"call s:hi('diffSubname', s:cgray)
+"call s:hi('diffAdded', s:white, s:green)
+"call s:hi('diffRemoved', s:white, s:red)
" load ~/.vimrc.local last for local overrides
if filereadable('~/.vimrc.local')