diff options
author | Matthew Lemon <y@yulqen.org> | 2024-04-04 13:00:43 +0100 |
---|---|---|
committer | Matthew Lemon <y@yulqen.org> | 2024-04-04 13:00:43 +0100 |
commit | 80426fe85bbd3b95820d6ea328a11ef83d25b8b6 (patch) | |
tree | d1d4f26e7571547adb5769049e0d0ade5898b2aa | |
parent | 446ac607c4556c421872a025ca0713ada3696520 (diff) |
Big bring-up April 2023
32 files changed, 1966 insertions, 484 deletions
@@ -79,8 +79,8 @@ xterm*faceSize4: 16 xterm*faceSize5: 22xterm*faceName: Terminus !!xterm*faceSize: 15 -xterm*faceName: Comic Shanns Regular -xterm*faceSize: 15 +xterm*faceName: monospace +xterm*faceSize: 10 !!xterm*font: -xos4-terminus-medium-r-normal-*-17-120-100-100-c-0-iso10646-1 !!xterm*Boldfont: -xos4-terminus-bold-r-normal-*-17-120-100-100-c-0-iso10646-1 diff --git a/fish/config.fish b/fish/config.fish index 29193c2..acfe0fe 100644 --- a/fish/config.fish +++ b/fish/config.fish @@ -48,6 +48,6 @@ fzf_key_bindings # from https://opensource.com/article/19/9/linux-terminal-colors #set -gx LS_COLORS 'rs=0:di=01;00:ln=01;00:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;66:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'; set -gx GPG_TTY (tty) -set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket) -gpgconf --launch gpg-agent -. ~/perl5/perlbrew/etc/perlbrew.fish +#set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket) +#gpgconf --launch gpg-agent +#. ~/perl5/perlbrew/etc/perlbrew.fish diff --git a/fish/fish_variables b/fish/fish_variables index 301b1a5..c8e65ff 100644 --- a/fish/fish_variables +++ b/fish/fish_variables @@ -12,35 +12,45 @@ SETUVAR __fish_init_2_39_8:\x1d SETUVAR __fish_init_2_3_0:\x1d SETUVAR __fish_init_3_x:\x1d SETUVAR __fish_initialized:3400 -SETUVAR fish_color_autosuggestion:555\x1ebrblack -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:005fd7 -SETUVAR fish_color_comment:990000 -SETUVAR fish_color_cwd:green +SETUVAR fish_color_autosuggestion:8A9199 +SETUVAR fish_color_cancel:\x2d\x2dreverse +SETUVAR fish_color_command:55B4D4 +SETUVAR fish_color_comment:ABB0B6 +SETUVAR fish_color_cwd:399EE6 SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:009900 -SETUVAR fish_color_error:ff0000 -SETUVAR fish_color_escape:00a6b2 +SETUVAR fish_color_end:ED9366 +SETUVAR fish_color_error:F51818 +SETUVAR fish_color_escape:4CBF99 SETUVAR fish_color_history_current:\x2d\x2dbold SETUVAR fish_color_host:normal -SETUVAR fish_color_host_remote:yellow -SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue -SETUVAR fish_color_normal:normal -SETUVAR fish_color_operator:00a6b2 -SETUVAR fish_color_param:00afff -SETUVAR fish_color_quote:999900 -SETUVAR fish_color_redirection:00afff -SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_host_remote:\x1d +SETUVAR fish_color_keyword:\x1d +SETUVAR fish_color_match:F07171 +SETUVAR fish_color_normal:575F66 +SETUVAR fish_color_operator:FF9940 +SETUVAR fish_color_option:\x1d +SETUVAR fish_color_param:575F66 +SETUVAR fish_color_quote:86B300 +SETUVAR fish_color_redirection:A37ACC +SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dFF9940 +SETUVAR fish_color_selection:\x2d\x2dbackground\x3dFF9940 SETUVAR fish_color_status:red SETUVAR fish_color_user:brgreen SETUVAR fish_color_valid_path:\x2d\x2dunderline SETUVAR fish_greeting: SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_background:\x1d SETUVAR fish_pager_color_completion:normal -SETUVAR fish_pager_color_description:B3A06D\x1eyellow -SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_description:B3A06D +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan -SETUVAR fish_pager_color_selected_background:\x2dr +SETUVAR fish_pager_color_secondary_background:\x1d +SETUVAR fish_pager_color_secondary_completion:\x1d +SETUVAR fish_pager_color_secondary_description:\x1d +SETUVAR fish_pager_color_secondary_prefix:\x1d +SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dFF9940 +SETUVAR fish_pager_color_selected_completion:\x1d +SETUVAR fish_pager_color_selected_description:\x1d +SETUVAR fish_pager_color_selected_prefix:\x1d SETUVAR fish_user_paths:/home/lemon/local/bin\x1e/usr/local/jdk\x2d11/bin\x1e/home/lemon/bin\x2dscripts/\x1e/home/lemon/perl5/perlbrew/bin/\x1e/usr/lib/cargo/bin/\x1e/home/lemon/go/bin\x1e/usr/local/go/bin\x1e/snap/bin\x1e/home/lemon/\x2epoetry/bin\x1e/home/lemon/\x2ecargo/bin\x1e/home/lemon/bin\x1e/home/lemon/bin/adb\x2dfastboot/platform\x2dtools/\x1e/home/lemon/\x2efzf/bin SETUVAR fisher_dependency_count:Colored\x2dMan\x2dPages\x1ebass diff --git a/fish/functions/__bass.py b/fish/functions/__bass.py deleted file mode 120000 index 32d6148..0000000 --- a/fish/functions/__bass.py +++ /dev/null @@ -1 +0,0 @@ -/home/lemon/.config/fisherman/bass/functions/__bass.py
\ No newline at end of file diff --git a/fish/functions/bass.fish b/fish/functions/bass.fish deleted file mode 120000 index b639a8f..0000000 --- a/fish/functions/bass.fish +++ /dev/null @@ -1 +0,0 @@ -/home/lemon/.config/fisherman/bass/functions/bass.fish
\ No newline at end of file diff --git a/fish/functions/du.fish b/fish/functions/du.fish deleted file mode 100644 index 1aec7cc..0000000 --- a/fish/functions/du.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 0 -function du --description 'alias du=ncdu --color dark -rr -x --exclude .git' - ncdu --color dark -rr -x --exclude .git $argv; -end diff --git a/fish/functions/fzf_key_bindings.fish b/fish/functions/fzf_key_bindings.fish deleted file mode 120000 index c9ab910..0000000 --- a/fish/functions/fzf_key_bindings.fish +++ /dev/null @@ -1 +0,0 @@ -/home/lemon/.fzf/shell/key-bindings.fish
\ No newline at end of file diff --git a/fish/functions/man.fish b/fish/functions/man.fish deleted file mode 120000 index 053f86b..0000000 --- a/fish/functions/man.fish +++ /dev/null @@ -1 +0,0 @@ -/home/lemon/.config/fisherman/Colored-Man-Pages/functions/man.fish
\ No newline at end of file diff --git a/fish/functions/notes.fish b/fish/functions/notes.fish new file mode 100644 index 0000000..0c0acb0 --- /dev/null +++ b/fish/functions/notes.fish @@ -0,0 +1,4 @@ +function notes --wraps='cd /home/lemon/Documents/Notes' --description 'alias notes cd /home/lemon/Documents/Notes' + cd /home/lemon/Documents/Notes $argv + +end diff --git a/fish/functions/tprojects.fish b/fish/functions/tprojects.fish new file mode 100644 index 0000000..8e8d4a8 --- /dev/null +++ b/fish/functions/tprojects.fish @@ -0,0 +1,4 @@ +function tprojects --wraps='task rc.list.all.projects=1 projects' --description 'alias tprojects task rc.list.all.projects=1 projects' + task rc.list.all.projects=1 projects $argv + +end @@ -1,5 +1,5 @@ [user] - email = matt@matthewlemon.com + email = y@yulqen.org name = Matthew Lemon [core] excludesfile = /home/lemon/.gitignore_global diff --git a/lynx/lynx b/lynx/lynx index 7c350de..7c350de 100755..100644 --- a/lynx/lynx +++ b/lynx/lynx diff --git a/mutt/view_attachment.sh b/mutt/view_attachment.sh index f391399..f391399 100755..100644 --- a/mutt/view_attachment.sh +++ b/mutt/view_attachment.sh diff --git a/mutt2022/view_attachment.sh b/mutt2022/view_attachment.sh index 1ff52ea..1ff52ea 100755..100644 --- a/mutt2022/view_attachment.sh +++ b/mutt2022/view_attachment.sh diff --git a/screenlayout/desktop_layout_debian.sh b/screenlayout/desktop_layout_debian.sh index 51d22f6..51d22f6 100755..100644 --- a/screenlayout/desktop_layout_debian.sh +++ b/screenlayout/desktop_layout_debian.sh diff --git a/screenlayout/desktop_layout_debian_all_landscape.sh b/screenlayout/desktop_layout_debian_all_landscape.sh index cd42bdd..cd42bdd 100755..100644 --- a/screenlayout/desktop_layout_debian_all_landscape.sh +++ b/screenlayout/desktop_layout_debian_all_landscape.sh diff --git a/screenlayout/left_portrait_right_land.sh b/screenlayout/left_portrait_right_land.sh index 95cfedb..95cfedb 100755..100644 --- a/screenlayout/left_portrait_right_land.sh +++ b/screenlayout/left_portrait_right_land.sh diff --git a/scripts/wireless_fix.sh b/scripts/wireless_fix.sh index 7c6e32a..7c6e32a 100755..100644 --- a/scripts/wireless_fix.sh +++ b/scripts/wireless_fix.sh @@ -46,43 +46,54 @@ weekstart=Monday #include /usr/share/taskwarrior/dark-red-256.theme #include /usr/share/taskwarrior/dark-green-256.theme #include /usr/share/taskwarrior/dark-blue-256.theme +#include /usr/share/doc/task/rc/dark-blue-256.theme #include /usr/share/taskwarrior/dark-violets-256.theme #include /usr/share/taskwarrior/dark-yellow-green.theme #include /usr/share/taskwarrior/dark-gray-256.theme +#include /usr/share/doc/task/rc/no-color.theme #include /usr/share/taskwarrior/dark-gray-blue-256.theme #include /usr/share/taskwarrior/solarized-dark-256.theme -include /usr/local/share/doc/taskwarrior/rc/solarized-light-256.theme +#include /usr/share/doc/task/rc/solarized-light-256.theme #include /usr/local/share/doc/taskwarrior/rc/no-color.theme #include /home/lemon/.task/solarized-16.theme #include /home/lemon/.task/solarized-dark-256.theme # # colour -color.burndown.done=black on green -color.burndown.pending=black on rgb510 -color.burndown.started=black on yellow -color.calendar.due.today=on red -color.calendar.overdue=bold red -color.calendar.today=blue -color.calendar.due=cyan -color.blocked=underline grey10 on grey3 -color.blocking=color5 -color.due= -color.tagged= -color.tag.waiting=blue -color.tag.next=cyan color=on +#color.burndown.done=black on green +#color.burndown.pending=black on rgb510 +#color.burndown.started=black on yellow +#color.calendar.due.today=on +#color.calendar.overdue=bold red +#color.calendar.today=color11 on blue +#color.calendar.due=cyan +#color.blocked=underline gray10 on gray3 +#color.blocking=color5 +#color.due.today=black on yellow +## color.tagged= +#color.active=black on rgb510 +#color.tag.waiting=green +#color.tag.next=cyan color.project.Inbox=black on cyan +#color.project.w.admin=gray10 +#color.project.w.training=gray10 +#color.project.h.admin=gray12 +#color.project.h.comp=color11 color.alternate=on rgb253 +color.tag.killlist=rgb104 on black +color.uda.priority.H=rgb504 # Task server - essential config! taskd.certificate=\/home\/lemon\/.task\/Matthew_Lemon.cert.pem taskd.key=\/home\/lemon\/.task\/Matthew_Lemon.key.pem taskd.ca=\/home\/lemon\/.task\/ca.cert.pem -taskd.server=16693433.xyz:53589 +taskd.server=taskd.banded-neon.ts.net:53589 +#taskd.server=192.168.1.13:53589 #taskd.trust=ignore hostname #taskd.credentials=Public\/matt lemon\/65ed83f1-a2ec-48d2-ad74-9625cc58b030 #taskd.credentials=Public\/Matthew Lemon\/bb8f1075-3435-452a-ad98-a5da868abbaf -taskd.credentials=Public\/Matthew Lemon\/51f50856-8333-445e-9c81-273df1ff148a +#taskd.credentials=Public\/Matthew Lemon\/51f50856-8333-445e-9c81-273df1ff148a +taskd.credentials=Public\/Matthew Lemon\/f6bfd2de-cf46-4461-9552-ecc9404d6968 # Tasksh report stuff uda.reviewed.type=date @@ -107,14 +118,12 @@ urgency.user.tag.bug.coefficient=+1.5 urgency.user.tag.reference.coefficient=-3.2 urgency.user.tag.idea.coefficient=-3.0 urgency.user.project.h.chore.coefficient=-3.0 -urgency.user.project.h.admin.coefficient=-0.5 urgency.user.project.h.buy.coefficient=-4.0 urgency.user.project.h.diy.coefficient=-5.0 +urgency.user.project.h.ideas.coefficient=-2.0 urgency.user.project=-0.0 urgency.user.tag.link.coefficient=-5.0 -urgency.user.tag.idea.coefficient=-5.0 -urgency.user.tag.home.coefficient=+1.8 -urgency.user.tag.waiting.coefficient=-2.0 +#urgency.user.tag.waiting.coefficient=-2.0 # UDA for bash script (inspection_planning.sh) uda.wb.type=date uda.wb.label=Week Beginning @@ -122,13 +131,13 @@ uda.wb.label=Week Beginning urgency.user.tag.killlist.coefficient=-5.1 # F*ck annotations having any effect on urgency! -urgency.annotations.coefficient=0 +#urgency.annotations.coefficient=0 # Changing coefficients #urgency.annotations.coefficient=0.5 urgency.tags.coefficient=0 -urgency.blocking.coefficient=+2.0 -urgency.due.coefficient=1.1 +#urgency.blocking.coefficient=+2.0 +#urgency.due.coefficient=1.1 #urgency.project.coefficient=1 #urgency.age.coefficient=1 @@ -138,12 +147,10 @@ urgency.due.coefficient=1.1 # Colours #color.project.code.dbasik=green #color.tag.next=black on bright yellow -color.tag.killlist=rgb104 on black #color.due.today=red on yellow #color.overdue=bold red -##color.active=bold yellow #color.calendar.weekend=bold -#color.scheduled=bold magenta +color.scheduled=yellow #color.tag.dft=white on rgb100 #color.tag.prep=rgb150 on rgb020 color.alternate= @@ -182,17 +189,20 @@ recurrence=on recurrence.limit=1 # Context -context.work=project:w +#context.work=project:w context.work.write=project:Inbox context.work.read=(project:w or project:Inbox) -context.home=project:h +#context.home=project:h context.home.write=project:Inbox context.home.read=(project:h or project:Inbox) -# context.code=project:code +context.code.read=project:h.comp.code +context.code.write=project:Inbox +#context.code=project:h.comp.code # context.work=-code +dft # context.nowork=-dft -context.nocode=project.not:code +context.nocode=project.not:h.comp.code +context.nosurge=project.not:h.comp.code.surge # context.home=(project.not:code) -dft @@ -239,7 +249,8 @@ report.all.sort=entry- # Next/default report.next.description="Next" report.next.columns=id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.formatted,due.relative,until.remaining,description.truncated_count,urgency -report.next.filter=status:pending limit:page -idea -killlist project.not:h.buy +report.next.filter=status:pending project.not:w.smart.ded -killlist limit:page +#report.next.filter=status:pending project.not:w.smart.ded -killlist limit:page # mlscheduled report.ml_scheduled.description='Modified list of scheduled tasks' @@ -3,7 +3,7 @@ unbind C-b # set shell -#set -g default-shell '/bin/ksh' +set -g default-shell '/usr/local/bin/fish' # command sequence for nested tmux sessions bind-key a send-prefix diff --git a/vim/UltiSnips/markdown.snippets b/vim/UltiSnips/markdown.snippets new file mode 100644 index 0000000..f20bf95 --- /dev/null +++ b/vim/UltiSnips/markdown.snippets @@ -0,0 +1,3 @@ +snippet swowdev "Test snippet" +- @~SWOWdev (`date +"%c"`): $0 +endsnippet diff --git a/vim/autoload/plug.vim b/vim/autoload/plug.vim index 46416b8..71486bc 100644 --- a/vim/autoload/plug.vim +++ b/vim/autoload/plug.vim @@ -22,7 +22,7 @@ " Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' " " " On-demand loading -" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } +" Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' } " Plug 'tpope/vim-fireplace', { 'for': 'clojure' } " " " Using a non-default branch @@ -352,7 +352,7 @@ function! plug#end() endif let lod = { 'ft': {}, 'map': {}, 'cmd': {} } - if exists('g:did_load_filetypes') + if get(g:, 'did_load_filetypes', 0) filetype off endif for name in g:plugs_order @@ -391,6 +391,9 @@ function! plug#end() if !empty(types) augroup filetypedetect call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim') + if has('nvim-0.5.0') + call s:source(s:rtp(plug), 'ftdetect/**/*.lua', 'after/ftdetect/**/*.lua') + endif augroup END endif for type in types @@ -438,6 +441,9 @@ endfunction function! s:load_plugin(spec) call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim') + if has('nvim-0.5.0') + call s:source(s:rtp(a:spec), 'plugin/**/*.lua', 'after/plugin/**/*.lua') + endif endfunction function! s:reload_plugins() @@ -655,6 +661,9 @@ function! s:lod(names, types, ...) let rtp = s:rtp(g:plugs[name]) for dir in a:types call s:source(rtp, dir.'/**/*.vim') + if has('nvim-0.5.0') " see neovim#14686 + call s:source(rtp, dir.'/**/*.lua') + endif endfor if a:0 if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2)) @@ -1031,6 +1040,11 @@ function! s:is_updated(dir) endfunction function! s:do(pull, force, todo) + if has('nvim') + " Reset &rtp to invalidate Neovim cache of loaded Lua modules + " See https://github.com/junegunn/vim-plug/pull/1157#issuecomment-1809226110 + let &rtp = &rtp + endif for [name, spec] in items(a:todo) if !isdirectory(spec.dir) continue @@ -2621,26 +2635,34 @@ function! s:preview_commit() let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}') if empty(sha) - return + let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$') + if empty(name) + return + endif + let title = 'HEAD@{1}..' + let command = 'git diff --no-color HEAD@{1}' + else + let title = sha + let command = 'git show --no-color --pretty=medium '.sha + let name = s:find_name(line('.')) endif - let name = s:find_name(line('.')) if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir) return endif if exists('g:plug_pwindow') && !s:is_preview_window_open() execute g:plug_pwindow - execute 'e' sha + execute 'e' title else - execute 'pedit' sha + execute 'pedit' title wincmd P endif - setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable + setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable let batchfile = '' try let [sh, shellcmdflag, shrd] = s:chsh(1) - let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha + let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command if s:is_win let [batchfile, cmd] = s:batchfile(cmd) endif diff --git a/vim/colors/blackboard.vim b/vim/colors/blackboard.vim new file mode 100644 index 0000000..2ac839d --- /dev/null +++ b/vim/colors/blackboard.vim @@ -0,0 +1,99 @@ +" Vim color scheme +" +" Name: blackboard.vim +" Maintainer: Ben Wyrosdick <ben.wyrosdick@gmail.com> +" Last Change: 20 August 2009 +" License: public domain +" Version: 1.4 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "blackboard" + +" Colours in use +" -------------- +" #FF5600 bright orange +" #FFDE00 yolk yellow +" #D8FA3C lemon yellow +" #61CE3C green +" #84A7C1 light blue +" #AEAEAE medium grey + +if has("gui_running") + "GUI Colors + highlight Normal guifg=White guibg=#0B1022 + highlight Cursor guifg=Black guibg=Yellow + highlight CursorLine guibg=#191E2F + highlight LineNr guibg=#323232 guifg=#888888 + highlight Folded guifg=#1d2652 guibg=#070a15 + highlight Pmenu guibg=#84A7C1 + highlight Visual guibg=#283A76 + + "General Colors + highlight Comment guifg=#AEAEAE + highlight Constant guifg=#D8FA3C + highlight Keyword guifg=#FFDE00 + highlight String guifg=#61CE3C + highlight Type guifg=#84A7C1 + highlight Identifier guifg=#61CE3C gui=NONE + highlight Function guifg=#FF5600 gui=NONE + highlight clear Search + highlight Search guibg=#1C3B79 + highlight PreProc guifg=#FF5600 + + " StatusLine + highlight StatusLine guifg=#000000 guibg=#ffffaf gui=italic + highlight StatusLineNC guifg=#000000 guibg=#ffffff gui=NONE + + "Invisible character colors + highlight NonText guifg=#4a4a59 + highlight SpecialKey guifg=#4a4a59 + + "HTML Colors + highlight link htmlTag Type + highlight link htmlEndTag htmlTag + highlight link htmlTagName htmlTag + + "Ruby Colors + highlight link rubyClass Keyword + highlight link rubyDefine Keyword + highlight link rubyConstant Type + highlight link rubySymbol Constant + highlight link rubyStringDelimiter rubyString + highlight link rubyInclude Keyword + highlight link rubyAttribute Keyword + highlight link rubyInstanceVariable Normal + + "Rails Colors + highlight link railsMethod Type + + "Sass colors + highlight link sassMixin Keyword + highlight link sassMixing Constant + + "Outliner colors + highlight OL1 guifg=#FF5600 + highlight OL2 guifg=#61CE3C + highlight OL3 guifg=#84A7C1 + highlight OL4 guifg=#D8FA3C + highlight BT1 guifg=#AEAEAE + highlight link BT2 BT1 + highlight link BT3 BT1 + highlight link BT4 BT1 + + "Markdown colors + highlight markdownCode guifg=#61CE3C guibg=#070a15 + highlight link markdownCodeBlock markdownCode + + "Git colors + highlight gitcommitSelectedFile guifg=#61CE3C + highlight gitcommitDiscardedFile guifg=#C23621 + highlight gitcommitWarning guifg=#C23621 + highlight gitcommitBranch guifg=#FFDE00 + highlight gitcommitHeader guifg=#84A7C1 + +end diff --git a/vim/colors/codedark.vim b/vim/colors/codedark.vim new file mode 100644 index 0000000..7215a8d --- /dev/null +++ b/vim/colors/codedark.vim @@ -0,0 +1,656 @@ +" Vim Code Dark (color scheme) +" https://github.com/tomasiser/vim-code-dark + +scriptencoding utf-8 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="codedark" + +" Highlighting function (inspiration from https://github.com/chriskempson/base16-vim) +if &t_Co >= 256 + let g:codedark_term256=1 +elseif !exists("g:codedark_term256") + let g:codedark_term256=0 +endif +fun! <sid>hi(group, fg, bg, attr, sp) + if !empty(a:fg) + exec "hi " . a:group . " guifg=" . a:fg.gui . " ctermfg=" . (g:codedark_term256 ? a:fg.cterm256 : a:fg.cterm) + endif + if !empty(a:bg) + exec "hi " . a:group . " guibg=" . a:bg.gui . " ctermbg=" . (g:codedark_term256 ? a:bg.cterm256 : a:bg.cterm) + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif + if !empty(a:sp) + exec "hi " . a:group . " guisp=" . a:sp.gui + endif +endfun +" Choose old or new name for Treesitter groups depending on Neovim version +fun! <sid>hiTS(g_new, g_old, fg, bg, attr, sp) + call <sid>hi(has("nvim-0.8.0") ? a:g_new : a:g_old, a:fg, a:bg, a:attr, a:sp) +endfun + +fun! <sid>hiTSlink(g_new, g_old, link) + exec "hi! link " . (has("nvim-0.8.0") ? a:g_new : a:g_old) . " " . a:link +endfun + +" ------------------ +" Color definitions: +" ------------------ + +" Terminal colors (base16): +let s:cterm00 = "00" +let s:cterm03 = "08" +let s:cterm05 = "07" +let s:cterm07 = "15" +let s:cterm08 = "01" +let s:cterm0A = "03" +let s:cterm0B = "02" +let s:cterm0C = "06" +let s:cterm0D = "04" +let s:cterm0E = "05" +if exists('base16colorspace') && base16colorspace == "256" + let s:cterm01 = "18" + let s:cterm02 = "19" + let s:cterm04 = "20" + let s:cterm06 = "21" + let s:cterm09 = "16" + let s:cterm0F = "17" +else + let s:cterm01 = "00" + let s:cterm02 = "08" + let s:cterm04 = "07" + let s:cterm06 = "07" + let s:cterm09 = "06" + let s:cterm0F = "03" +endif + +" General appearance colors: +" (some of them may be unused) + +" Transparent background +if !exists("g:codedark_transparent") + let g:codedark_transparent=0 +endif + +if !exists("g:codedark_modern") + let g:codedark_modern=0 +endif + +let s:cdNone = {'gui': 'NONE', 'cterm': 'NONE', 'cterm256': 'NONE'} +let s:cdFront = {'gui': '#D4D4D4', 'cterm': s:cterm05, 'cterm256': '188'} +let s:cdBack = {'gui': '#1E1E1E', 'cterm': s:cterm00, 'cterm256': '234'} +if g:codedark_modern | let s:cdBack = {'gui': '#1f1f1f', 'cterm': 'NONE', 'cterm256': '234'} | endif +if g:codedark_transparent | let s:cdBack = {'gui': 'NONE', 'cterm': 'NONE', 'cterm256': 'NONE'} | endif + +let s:cdTabCurrent = {'gui': '#1E1E1E', 'cterm': s:cterm00, 'cterm256': '234'} +if g:codedark_modern | let s:cdTabCurrent = {'gui': '#1f1f1f', 'cterm': s:cterm00, 'cterm256': '234'} | endif +let s:cdTabOther = {'gui': '#2D2D2D', 'cterm': s:cterm01, 'cterm256': '236'} +if g:codedark_modern | let s:cdTabOther = {'gui': '#181818', 'cterm': s:cterm01, 'cterm256': '236'} | endif +let s:cdTabOutside = {'gui': '#252526', 'cterm': s:cterm01, 'cterm256': '235'} +if g:codedark_modern | let s:cdTabOutside = {'gui': '#181818', 'cterm': s:cterm01, 'cterm256': '236'} | endif + +let s:cdLeftDark = {'gui': '#252526', 'cterm': s:cterm01, 'cterm256': '235'} +let s:cdLeftMid = {'gui': '#373737', 'cterm': s:cterm03, 'cterm256': '237'} +if g:codedark_modern | let s:cdLeftMid = {'gui': '#181818', 'cterm': 'NONE', 'cterm256': '237'} | endif +let s:cdLeftLight = {'gui': '#3F3F46', 'cterm': s:cterm03, 'cterm256': '238'} + +let s:cdPopupFront = {'gui': '#BBBBBB', 'cterm': s:cterm06, 'cterm256': '250'} +let s:cdPopupBack = {'gui': '#2D2D30', 'cterm': s:cterm01, 'cterm256': '236'} +let s:cdPopupHighlightBlue = {'gui': '#073655', 'cterm': s:cterm0D, 'cterm256': '24'} +let s:cdPopupHighlightGray = {'gui': '#3D3D40', 'cterm': s:cterm03, 'cterm256': '237'} + +let s:cdSplitLight = {'gui': '#898989', 'cterm': s:cterm04, 'cterm256': '245'} +let s:cdSplitDark = {'gui': '#444444', 'cterm': s:cterm03, 'cterm256': '238'} +let s:cdSplitThumb = {'gui': '#424242', 'cterm': s:cterm04, 'cterm256': '238'} + +let s:cdCursorDarkDark = {'gui': '#222222', 'cterm': s:cterm01, 'cterm256': '235'} +let s:cdCursorDark = {'gui': '#51504F', 'cterm': s:cterm03, 'cterm256': '239'} +let s:cdCursorLight = {'gui': '#AEAFAD', 'cterm': s:cterm04, 'cterm256': '145'} +let s:cdSelection = {'gui': '#264F78', 'cterm': s:cterm03, 'cterm256': '24'} +let s:cdLineNumber = {'gui': '#5A5A5A', 'cterm': s:cterm04, 'cterm256': '240'} + +let s:cdDiffRedDark = {'gui': '#4B1818', 'cterm': s:cterm08, 'cterm256': '52'} +if g:codedark_modern | let s:cdDiffRedDark = {'gui': '#da3633', 'cterm': 'NONE', 'cterm256': '52'} | endif +let s:cdDiffRedLight = {'gui': '#6F1313', 'cterm': s:cterm08, 'cterm256': '52'} +let s:cdDiffRedLightLight = {'gui': '#FB0101', 'cterm': s:cterm08, 'cterm256': '09'} +let s:cdDiffGreenDark = {'gui': '#373D29', 'cterm': s:cterm0B, 'cterm256': '237'} +if g:codedark_modern | let s:cdDiffGreenDark = {'gui': '#238636', 'cterm': 'NONE', 'cterm256': '237'} | endif +let s:cdDiffGreenLight = {'gui': '#4B5632', 'cterm': s:cterm09, 'cterm256': '58'} +let s:cdDiffBlueLight = {'gui': '#87d7ff', 'cterm': s:cterm0C, 'cterm256': '117'} +let s:cdDiffBlue = {'gui': '#005f87', 'cterm': s:cterm0D, 'cterm256': '24'} + +let s:cdSearchCurrent = {'gui': '#4B5632', 'cterm': s:cterm09, 'cterm256': '58'} +if g:codedark_modern | let s:cdSearchCurrent = {'gui': '#9e6a03', 'cterm': s:cterm09, 'cterm256': '58'} | endif +let s:cdSearch = {'gui': '#264F78', 'cterm': s:cterm03, 'cterm256': '24'} + +" Syntax colors: + +if !exists("g:codedark_conservative") + let g:codedark_conservative=0 +endif + +" Italicized comments +if !exists("g:codedark_italics") + let g:codedark_italics=0 +endif + +let s:cdGray = {'gui': '#808080', 'cterm': s:cterm04, 'cterm256': '08'} +let s:cdViolet = {'gui': '#646695', 'cterm': s:cterm04, 'cterm256': '60'} +let s:cdBlue = {'gui': '#569CD6', 'cterm': s:cterm0D, 'cterm256': '75'} +let s:cdDarkBlue = {'gui': '#223E55', 'cterm': s:cterm0D, 'cterm256': '73'} +let s:cdLightBlue = {'gui': '#9CDCFE', 'cterm': s:cterm0C, 'cterm256': '117'} +if g:codedark_conservative | let s:cdLightBlue = s:cdFront | endif +let s:cdGreen = {'gui': '#6A9955', 'cterm': s:cterm0B, 'cterm256': '65'} +let s:cdBlueGreen = {'gui': '#4EC9B0', 'cterm': s:cterm0F, 'cterm256': '43'} +let s:cdLightGreen = {'gui': '#B5CEA8', 'cterm': s:cterm09, 'cterm256': '151'} +let s:cdRed = {'gui': '#F44747', 'cterm': s:cterm08, 'cterm256': '203'} +if g:codedark_modern | let s:cdRed = {'gui': '#f85149', 'cterm': s:cterm08, 'cterm256': '203'} | endif +let s:cdOrange = {'gui': '#CE9178', 'cterm': s:cterm0F, 'cterm256': '173'} +let s:cdLightRed = {'gui': '#D16969', 'cterm': s:cterm08, 'cterm256': '167'} +if g:codedark_conservative | let s:cdLightRed = s:cdOrange | endif +let s:cdYellowOrange = {'gui': '#D7BA7D', 'cterm': s:cterm0A, 'cterm256': '179'} +let s:cdYellow = {'gui': '#DCDCAA', 'cterm': s:cterm0A, 'cterm256': '187'} +if g:codedark_conservative | let s:cdYellow = s:cdFront | endif +let s:cdPink = {'gui': '#C586C0', 'cterm': s:cterm0E, 'cterm256': '176'} +if g:codedark_conservative | let s:cdPink = s:cdBlue | endif +let s:cdSilver = {'gui': '#C0C0C0', 'cterm': s:cterm05, 'cterm256': '7'} + +" UI (built-in) +" <sid>hi(GROUP, FOREGROUND, BACKGROUND, ATTRIBUTE, SPECIAL) +call <sid>hi('Normal', s:cdFront, s:cdBack, 'none', {}) +call <sid>hi('ColorColumn', {}, s:cdCursorDarkDark, 'none', {}) +call <sid>hi('Cursor', s:cdCursorDark, s:cdCursorLight, 'none', {}) +call <sid>hi('CursorLine', {}, s:cdCursorDarkDark, 'none', {}) +hi! link CursorColumn CursorLine +call <sid>hi('Directory', s:cdBlue, s:cdNone, 'none', {}) +call <sid>hi('DiffAdd', s:cdFront, s:cdDiffGreenLight, 'none', {}) +call <sid>hi('DiffChange', s:cdFront, s:cdDiffBlue, 'none', {}) +call <sid>hi('DiffDelete', s:cdFront, s:cdDiffRedLight, 'none', {}) +call <sid>hi('DiffText', s:cdBack, s:cdDiffBlueLight, 'none', {}) +call <sid>hi('EndOfBuffer', s:cdLineNumber, s:cdBack, 'none', {}) +call <sid>hi('ErrorMsg', s:cdRed, s:cdBack, 'none', {}) +call <sid>hi('VertSplit', s:cdSplitDark, s:cdBack, 'none', {}) +call <sid>hi('Folded', s:cdLeftLight, s:cdLeftDark, 'underline', {}) +call <sid>hi('FoldColumn', s:cdLineNumber, s:cdBack, 'none', {}) +call <sid>hi('SignColumn', {}, s:cdBack, 'none', {}) +call <sid>hi('IncSearch', s:cdNone, s:cdSearchCurrent, 'none', {}) +call <sid>hi('LineNr', s:cdLineNumber, s:cdBack, 'none', {}) +call <sid>hi('CursorLineNr', s:cdPopupFront, s:cdBack, 'none', {}) +call <sid>hi('MatchParen', s:cdNone, s:cdCursorDark, 'none', {}) +call <sid>hi('ModeMsg', s:cdFront, s:cdLeftDark, 'none', {}) +hi! link MoreMsg ModeMsg +call <sid>hi('NonText', s:cdLineNumber, s:cdNone, 'none', {}) +call <sid>hi('Pmenu', s:cdPopupFront, s:cdPopupBack, 'none', {}) +call <sid>hi('PmenuSel', s:cdPopupFront, s:cdPopupHighlightBlue, 'none', {}) +call <sid>hi('PmenuSbar', {}, s:cdPopupHighlightGray, 'none', {}) +call <sid>hi('PmenuThumb', {}, s:cdPopupFront, 'none', {}) +call <sid>hi('Question', s:cdBlue, s:cdBack, 'none', {}) +call <sid>hi('Search', s:cdNone, s:cdSearch, 'none', {}) +call <sid>hi('SpecialKey', s:cdBlue, s:cdNone, 'none', {}) +call <sid>hi('StatusLine', s:cdFront, s:cdLeftMid, 'none', {}) +call <sid>hi('StatusLineNC', s:cdFront, s:cdLeftDark, 'none', {}) +call <sid>hi('TabLine', s:cdFront, s:cdTabOther, 'none', {}) +call <sid>hi('TabLineFill', s:cdFront, s:cdTabOutside, 'none', {}) +call <sid>hi('TabLineSel', s:cdFront, s:cdTabCurrent, 'none', {}) +call <sid>hi('Title', s:cdNone, s:cdNone, 'bold', {}) +call <sid>hi('Visual', s:cdNone, s:cdSelection, 'none', {}) +hi! link VisualNOS Visual +call <sid>hi('WarningMsg', s:cdOrange, s:cdBack, 'none', {}) +call <sid>hi('WildMenu', s:cdNone, s:cdSelection, 'none', {}) +call <sid>hi('netrwMarkFile', s:cdFront, s:cdSelection, 'none', {}) + +" Legacy groups for official git.vim and diff.vim syntax +hi! link diffAdded DiffAdd +hi! link diffChanged DiffChange +hi! link diffRemoved DiffDelete + +if g:codedark_italics | call <sid>hi('Comment', s:cdGreen, {}, 'italic', {}) | else | call <sid>hi('Comment', s:cdGreen, {}, 'none', {}) | endif + +" SYNTAX HIGHLIGHT (built-in) +call <sid>hi('Constant', s:cdBlue, {}, 'none', {}) +call <sid>hi('String', s:cdOrange, {}, 'none', {}) +call <sid>hi('Character', s:cdOrange, {}, 'none', {}) +call <sid>hi('Number', s:cdLightGreen, {}, 'none', {}) +call <sid>hi('Boolean', s:cdBlue, {}, 'none', {}) +hi! link Float Number +call <sid>hi('Identifier', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('Function', s:cdYellow, {}, 'none', {}) +call <sid>hi('Statement', s:cdPink, {}, 'none', {}) +call <sid>hi('Conditional', s:cdPink, {}, 'none', {}) +call <sid>hi('Repeat', s:cdPink, {}, 'none', {}) +call <sid>hi('Label', s:cdPink, {}, 'none', {}) +call <sid>hi('Operator', s:cdFront, {}, 'none', {}) +call <sid>hi('Keyword', s:cdPink, {}, 'none', {}) +call <sid>hi('Exception', s:cdPink, {}, 'none', {}) +call <sid>hi('PreProc', s:cdPink, {}, 'none', {}) +call <sid>hi('Include', s:cdPink, {}, 'none', {}) +call <sid>hi('Define', s:cdPink, {}, 'none', {}) +call <sid>hi('Macro', s:cdPink, {}, 'none', {}) +call <sid>hi('PreCondit', s:cdPink, {}, 'none', {}) +call <sid>hi('Type', s:cdBlue, {}, 'none', {}) +call <sid>hi('StorageClass', s:cdBlue, {}, 'none', {}) +call <sid>hi('Structure', s:cdBlue, {}, 'none', {}) +call <sid>hi('Typedef', s:cdBlue, {}, 'none', {}) +call <sid>hi('Special', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('SpecialChar', s:cdFront, {}, 'none', {}) +call <sid>hi('Tag', s:cdFront, {}, 'none', {}) +call <sid>hi('Delimiter', s:cdFront, {}, 'none', {}) +if g:codedark_italics | call <sid>hi('SpecialComment', s:cdGreen, {}, 'italic', {}) | else | call <sid>hi('SpecialComment', s:cdGreen, {}, 'none', {}) | endif +call <sid>hi('Debug', s:cdFront, {}, 'none', {}) +call <sid>hi('Underlined', s:cdNone, {}, 'underline', {}) +call <sid>hi("Conceal", s:cdFront, s:cdBack, 'none', {}) +call <sid>hi('Ignore', s:cdBack, {}, 'none', {}) +call <sid>hi('Error', s:cdRed, s:cdBack, 'undercurl', s:cdRed) +call <sid>hi('Todo', s:cdNone, s:cdLeftMid, 'none', {}) +call <sid>hi('SpellBad', s:cdRed, s:cdBack, 'undercurl', s:cdRed) +call <sid>hi('SpellCap', s:cdRed, s:cdBack, 'undercurl', s:cdRed) +call <sid>hi('SpellRare', s:cdRed, s:cdBack, 'undercurl', s:cdRed) +call <sid>hi('SpellLocal', s:cdRed, s:cdBack, 'undercurl', s:cdRed) + +" NEOVIM +" Make neovim specific groups load only on Neovim +if has("nvim") + " nvim-treesitter/nvim-treesitter (github) + call <sid>hiTSlink('@error', 'TSError', 'ErrorMsg') + call <sid>hiTSlink('@punctuation.delimiter', 'TSPunctDelimiter', 'Delimiter') + call <sid>hiTSlink('@punctuation.bracket', 'TSPunctBracket', 'Delimiter') + call <sid>hiTSlink('@punctuation.special', 'TSPunctSpecial', 'Delimiter') + " Constant + call <sid>hiTS('@constant', 'TSConstant', s:cdYellow, {}, 'none', {}) + call <sid>hiTSlink('@constant.builtin', 'TSConstBuiltin', 'Constant') + call <sid>hiTS('@constant.macro', 'TSConstMacro', s:cdBlueGreen, {}, 'none', {}) + call <sid>hiTSlink('@string', 'TSString', 'String') + call <sid>hiTSlink('@string.regex', 'TSStringRegex', 'String') + call <sid>hiTS('@string.escape', 'TSStringEscape', s:cdYellowOrange, {}, 'none', {}) + call <sid>hiTSlink('@character', 'TSCharacter', 'Character') + call <sid>hiTSlink('@number', 'TSNumber', 'Number') + call <sid>hiTS('@boolean', 'TSBoolean', s:cdBlue, {}, 'none', {}) + call <sid>hiTSlink('@float', 'TSFloat', 'Float') + call <sid>hiTS('@annotation', 'TSAnnotation', s:cdYellow, {}, 'none', {}) + call <sid>hiTS('@attribute', 'TSAttribute', s:cdBlueGreen, {}, 'none', {}) + call <sid>hiTS('@namespace', 'TSNamespace', s:cdBlueGreen, {}, 'none', {}) + " Functions + call <sid>hiTSlink('@function.builtin', 'TSFuncBuiltin', 'Function') + call <sid>hiTSlink('@function', 'TSFunction','Function') + call <sid>hiTSlink('@function.macro', 'TSFuncMacro','Function') + call <sid>hiTS('@parameter', 'TSParameter', s:cdLightBlue, {}, 'none', {}) + call <sid>hiTS('@parameter.reference', 'TSParameterReference', s:cdLightBlue, {}, 'none', {}) + call <sid>hiTS('@method', 'TSMethod', s:cdYellow, {}, 'none', {}) + call <sid>hiTS('@field', 'TSField', s:cdLightBlue, {}, 'none', {}) + call <sid>hiTS('@property', 'TSProperty', s:cdLightBlue, {}, 'none', {}) + call <sid>hiTS('@constructor', 'TSConstructor', s:cdBlueGreen, {}, 'none', {}) + " Keywords + call <sid>hiTSlink('@conditional', 'TSConditional', 'Conditional') + call <sid>hiTSlink('@repeat', 'TSRepeat', 'Repeat') + call <sid>hiTS('@label', 'TSLabel', s:cdLightBlue, {}, 'none', {}) + call <sid>hiTS('@keyword', 'TSKeyword', s:cdBlue, {}, 'none', {}) + call <sid>hiTS('@keyword.function', 'TSKeywordFunction', s:cdBlue, {}, 'none', {}) + call <sid>hiTS('@keyword.operator', 'TSKeywordOperator', s:cdBlue, {}, 'none', {}) + call <sid>hiTS('@operator', 'TSOperator', s:cdFront, {}, 'none', {}) + call <sid>hiTS('@exception', 'TSException', s:cdPink, {}, 'none', {}) + call <sid>hiTS('@type', 'TSType', s:cdBlueGreen, {}, 'none', {}) + call <sid>hiTSlink('@type.builtin', 'TSTypeBuiltin', 'Type') + call <sid>hi('TSStructure', s:cdLightBlue, {}, 'none', {}) + call <sid>hiTSlink('@include', 'TSInclude', 'Include') + " Variable + call <sid>hiTS('@variable', 'TSVariable', s:cdLightBlue, {}, 'none', {}) + call <sid>hiTS('@variable.builtin', 'TSVariableBuiltin', s:cdLightBlue, {}, 'none', {}) + " Text + call <sid>hiTS('@text', 'TSText', s:cdFront, s:cdNone, 'bold', {}) + call <sid>hiTS('@text.strong', 'TSStrong', s:cdFront, s:cdNone, 'bold', {}) + call <sid>hiTS('@text.emphasis', 'TSEmphasis', s:cdYellowOrange, s:cdNone, 'italic', {}) + call <sid>hiTSlink('@text.underline', 'TSUnderline', 'Underlined') + call <sid>hiTS('@text.title', 'TSTitle', s:cdBlue, {}, 'bold', {}) + call <sid>hiTS('@text.literal', 'TSLiteral', s:cdOrange, {}, 'none', {}) + call <sid>hiTS('@text.uri', 'TSURI', s:cdOrange, {}, 'none', {}) + " Tags + call <sid>hiTS('@tag', 'TSTag', s:cdBlue, {}, 'none', {}) + call <sid>hiTS('@tag.delimiter', 'TSTagDelimiter', s:cdGray, {}, 'none', {}) + + " hrsh7th/nvim-cmp (github) + call <sid>hi('CmpItemAbbrDeprecated', s:cdGray, {}, 'none', {}) + call <sid>hi('CmpItemAbbrMatch', s:cdBlue, {}, 'none', {}) + hi! link CmpItemAbbrMatchFuzzy CmpItemAbbrMatch + call <sid>hi('CmpItemKindVariable', s:cdLightBlue, {}, 'none', {}) + call <sid>hi('CmpItemKindInterface', s:cdLightBlue, {}, 'none', {}) + call <sid>hi('CmpItemKindText', s:cdLightBlue, {}, 'none', {}) + call <sid>hi('CmpItemKindFunction', s:cdPink, {}, 'none', {}) + call <sid>hi('CmpItemKindMethod ', s:cdPink, {}, 'none', {}) + call <sid>hi('CmpItemKindKeyword', s:cdFront, {}, 'none', {}) + call <sid>hi('CmpItemKindProperty', s:cdFront, {}, 'none', {}) + call <sid>hi('CmpItemKindUnit', s:cdFront, {}, 'none', {}) +endif + +" MARKDOWN (built-in) +call <sid>hi('markdownH1', s:cdBlue, {}, 'bold', {}) +hi! link markdownH2 markdownH1 +hi! link markdownH3 markdownH1 +hi! link markdownH4 markdownH1 +hi! link markdownH5 markdownH1 +hi! link markdownH6 markdownH1 +call <sid>hi('markdownHeadingDelimiter', s:cdBlue, {}, 'none', {}) +call <sid>hi('markdownBold', s:cdBlue, {}, 'bold', {}) +call <sid>hi('markdownRule', s:cdBlue, {}, 'bold', {}) +call <sid>hi('markdownCode', s:cdOrange, {}, 'none', {}) +hi! link markdownCodeDelimiter markdownCode +call <sid>hi('markdownFootnote', s:cdOrange, {}, 'none', {}) +hi! link markdownFootnoteDefinition markdownFootnote +call <sid>hi('markdownUrl', s:cdLightBlue, {}, 'underline', {}) +call <sid>hi('markdownLinkText', s:cdOrange, {}, 'none', {}) +call <sid>hi('markdownEscape', s:cdYellowOrange, {}, 'none', {}) + +" ASCIIDOC (built-in) +call <sid>hi("asciidocAttributeEntry", s:cdYellowOrange, {}, 'none', {}) +call <sid>hi("asciidocAttributeList", s:cdPink, {}, 'none', {}) +call <sid>hi("asciidocAttributeRef", s:cdYellowOrange, {}, 'none', {}) +call <sid>hi("asciidocHLabel", s:cdBlue, {}, 'bold', {}) +call <sid>hi("asciidocListingBlock", s:cdOrange, {}, 'none', {}) +call <sid>hi("asciidocMacroAttributes", s:cdYellowOrange, {}, 'none', {}) +call <sid>hi("asciidocOneLineTitle", s:cdBlue, {}, 'bold', {}) +call <sid>hi("asciidocPassthroughBlock", s:cdBlue, {}, 'none', {}) +call <sid>hi("asciidocQuotedMonospaced", s:cdOrange, {}, 'none', {}) +call <sid>hi("asciidocTriplePlusPassthrough", s:cdYellow, {}, 'none', {}) +call <sid>hi("asciidocMacro", s:cdPink, {}, 'none', {}) +call <sid>hi("asciidocAdmonition", s:cdOrange, {}, 'none', {}) +call <sid>hi("asciidocQuotedEmphasized", s:cdBlue, {}, 'italic', {}) +call <sid>hi("asciidocQuotedEmphasized2", s:cdBlue, {}, 'italic', {}) +call <sid>hi("asciidocQuotedEmphasizedItalic", s:cdBlue, {}, 'italic', {}) +hi! link asciidocBackslash Keyword +hi! link asciidocQuotedBold markdownBold +hi! link asciidocQuotedMonospaced2 asciidocQuotedMonospaced +hi! link asciidocQuotedUnconstrainedBold asciidocQuotedBold +hi! link asciidocQuotedUnconstrainedEmphasized asciidocQuotedEmphasized +hi! link asciidocURL markdownUrl + +" JSON (built-in) +call <sid>hi('jsonKeyword', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsonEscape', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('jsonNull', s:cdBlue, {}, 'none', {}) +call <sid>hi('jsonBoolean', s:cdBlue, {}, 'none', {}) + +" HTML (built-in) +call <sid>hi('htmlTag', s:cdGray, {}, 'none', {}) +call <sid>hi('htmlEndTag', s:cdGray, {}, 'none', {}) +call <sid>hi('htmlTagName', s:cdBlue, {}, 'none', {}) +hi! link htmlSpecialTagName htmlTagName +call <sid>hi('htmlArg', s:cdLightBlue, {}, 'none', {}) + +" PHP (built-in) +call <sid>hi('phpClass', s:cdBlueGreen, {}, 'none', {}) +hi! link phpUseClass phpClass +hi! link phpStaticClasses phpClass +call <sid>hi('phpMethod', s:cdYellow, {}, 'none', {}) +call <sid>hi('phpFunction', s:cdYellow, {}, 'none', {}) +call <sid>hi('phpInclude', s:cdBlue, {}, 'none', {}) +call <sid>hi('phpRegion', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('phpMethodsVar', s:cdLightBlue, {}, 'none', {}) + +" CSS (built-in) +call <sid>hi('cssBraces', s:cdFront, {}, 'none', {}) +call <sid>hi('cssInclude', s:cdPink, {}, 'none', {}) +call <sid>hi('cssTagName', s:cdBlue, {}, 'none', {}) +call <sid>hi('cssClassName', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('cssPseudoClass', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('cssPseudoClassId', s:cdOrange, {}, 'none', {}) +call <sid>hi('cssPseudoClassLang', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('cssIdentifier', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('cssProp', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('cssDefinition', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('cssAttr', s:cdOrange, {}, 'none', {}) +call <sid>hi('cssAttrRegion', s:cdOrange, {}, 'none', {}) +call <sid>hi('cssColor', s:cdOrange, {}, 'none', {}) +call <sid>hi('cssFunction', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('cssFunctionName', s:cdYellow, {}, 'none', {}) +call <sid>hi('cssVendor', s:cdOrange, {}, 'none', {}) +call <sid>hi('cssValueNumber', s:cdOrange, {}, 'none', {}) +call <sid>hi('cssValueLength', s:cdLightGreen, {}, 'none', {}) +call <sid>hi('cssUnitDecorators', s:cdLightGreen, {}, 'none', {}) +call <sid>hi('cssStyle', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('cssImportant', s:cdBlue, {}, 'none', {}) +call <sid>hi('cssSelectorOp', s:cdFront, {}, 'none', {}) +call <sid>hi('cssKeyFrameProp2', s:cdLightGreen, {}, 'none', {}) + +" JavaScript: +call <sid>hi('jsVariableDef', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsFuncArgs', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsFuncBlock', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsRegexpString', s:cdLightRed, {}, 'none', {}) +call <sid>hi('jsThis', s:cdBlue, {}, 'none', {}) +call <sid>hi('jsOperatorKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('jsDestructuringBlock', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsObjectKey', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsGlobalObjects', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('jsModuleKeyword', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsClassDefinition', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('jsClassKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('jsExtendsKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('jsExportDefault', s:cdPink, {}, 'none', {}) +call <sid>hi('jsFuncCall', s:cdYellow, {}, 'none', {}) +call <sid>hi('jsObjectValue', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsParen', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsObjectProp', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsIfElseBlock', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsParenIfElse', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsSpreadOperator', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('jsSpreadExpression', s:cdLightBlue, {}, 'none', {}) + +" Vue: +call <sid>hi('VueComponentName', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('VueValue', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('VueBrace', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('VueExpression', s:cdYellow, {}, 'none', {}) +call <sid>hi('VueTag', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('VueKey', s:cdPink, {}, 'none', {}) + +" Typescript: +call <sid>hi('typescriptLabel', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptTry', s:cdPink, {}, 'none', {}) +call <sid>hi('typescriptExceptions', s:cdPink, {}, 'none', {}) +call <sid>hi('typescriptBraces', s:cdFront, {}, 'none', {}) +call <sid>hi('typescriptEndColons', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptParens', s:cdFront, {}, 'none', {}) +call <sid>hi('typescriptDocTags', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptDocComment', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptLogicSymbols', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptImport', s:cdPink, {}, 'none', {}) +call <sid>hi('typescriptBOM', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptVariableDeclaration', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptVariable', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptExport', s:cdPink, {}, 'none', {}) +call <sid>hi('typescriptAliasDeclaration', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptAliasKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptClassName', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptAccessibilityModifier', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptOperator', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptArrowFunc', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptMethodAccessor', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptMember', s:cdYellow, {}, 'none', {}) +call <sid>hi('typescriptTypeReference', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptDefault', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptTemplateSB', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('typescriptArrowFuncArg', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptParamImpl', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptFuncComma', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptCastKeyword', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptCall', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptCase', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptReserved', s:cdPink, {}, 'none', {}) +call <sid>hi('typescriptDefault', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptDecorator', s:cdYellow, {}, 'none', {}) +call <sid>hi('typescriptPredefinedType', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptClassHeritage', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptClassExtends', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptClassKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptBlock', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptDOMDocProp', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptTemplateSubstitution', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptClassBlock', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptFuncCallArg', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptIndexExpr', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptConditionalParen', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptArray', s:cdYellow, {}, 'none', {}) +call <sid>hi('typescriptES6SetProp', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptObjectLiteral', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptTypeParameter', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptEnumKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptEnum', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptLoopParen', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptParenExp', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptModule', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptAmbientDeclaration', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptModule', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptFuncTypeArrow', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptInterfaceHeritage', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptInterfaceName', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptInterfaceKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptInterfaceExtends', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptGlobal', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('typescriptAsyncFuncKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptFuncKeyword', s:cdBlue, {}, 'none', {}) +call <sid>hi('typescriptGlobalMethod', s:cdYellow, {}, 'none', {}) +call <sid>hi('typescriptPromiseMethod', s:cdYellow, {}, 'none', {}) +call <sid>hi('typescriptIdentifierName', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('typescriptCacheMethod', s:cdYellow, {}, 'none', {}) + +" XML: +call <sid>hi('xmlTag', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('xmlTagName', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('xmlEndTag', s:cdBlueGreen, {}, 'none', {}) + +" Ruby: +call <sid>hi('rubyClassNameTag', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('rubyClassName', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('rubyModuleName', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('rubyConstant', s:cdBlueGreen, {}, 'none', {}) + +" Golang: +call <sid>hi('goPackage', s:cdBlue, {}, 'none', {}) +call <sid>hi('goImport', s:cdBlue, {}, 'none', {}) +call <sid>hi('goVar', s:cdBlue, {}, 'none', {}) +call <sid>hi('goConst', s:cdBlue, {}, 'none', {}) +call <sid>hi('goStatement', s:cdPink, {}, 'none', {}) +call <sid>hi('goType', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('goSignedInts', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('goUnsignedInts', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('goFloats', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('goComplexes', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('goBuiltins', s:cdYellow, {}, 'none', {}) +call <sid>hi('goBoolean', s:cdBlue, {}, 'none', {}) +call <sid>hi('goPredefinedIdentifiers', s:cdBlue, {}, 'none', {}) +call <sid>hi('goTodo', s:cdGreen, {}, 'none', {}) +call <sid>hi('goDeclaration', s:cdBlue, {}, 'none', {}) +call <sid>hi('goDeclType', s:cdBlue, {}, 'none', {}) +call <sid>hi('goTypeDecl', s:cdBlue, {}, 'none', {}) +call <sid>hi('goTypeName', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('goVarAssign', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('goVarDefs', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('goReceiver', s:cdFront, {}, 'none', {}) +call <sid>hi('goReceiverType', s:cdFront, {}, 'none', {}) +call <sid>hi('goFunctionCall', s:cdYellow, {}, 'none', {}) +call <sid>hi('goMethodCall', s:cdYellow, {}, 'none', {}) +call <sid>hi('goSingleDecl', s:cdLightBlue, {}, 'none', {}) + +" Python: +call <sid>hi('pythonStatement', s:cdBlue, {}, 'none', {}) +call <sid>hi('pythonOperator', s:cdBlue, {}, 'none', {}) +call <sid>hi('pythonException', s:cdPink, {}, 'none', {}) +call <sid>hi('pythonExClass', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('pythonBuiltinObj', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('pythonBuiltinType', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('pythonBoolean', s:cdBlue, {}, 'none', {}) +call <sid>hi('pythonNone', s:cdBlue, {}, 'none', {}) +call <sid>hi('pythonTodo', s:cdBlue, {}, 'none', {}) +call <sid>hi('pythonClassVar', s:cdBlue, {}, 'none', {}) +call <sid>hi('pythonClassDef', s:cdBlueGreen, {}, 'none', {}) + +" TeX: +call <sid>hi('texStatement', s:cdBlue, {}, 'none', {}) +call <sid>hi('texBeginEnd', s:cdYellow, {}, 'none', {}) +call <sid>hi('texBeginEndName', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('texOption', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('texBeginEndModifier', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('texDocType', s:cdPink, {}, 'none', {}) +call <sid>hi('texDocTypeArgs', s:cdLightBlue, {}, 'none', {}) + +" GIT (built-in) +call <sid>hi('gitcommitHeader', s:cdGray, {}, 'none', {}) +call <sid>hi('gitcommitOnBranch', s:cdGray, {}, 'none', {}) +call <sid>hi('gitcommitBranch', s:cdPink, {}, 'none', {}) +call <sid>hi('gitcommitComment', s:cdGray, {}, 'none', {}) +call <sid>hi('gitcommitSelectedType', s:cdGreen, {}, 'none', {}) +hi! link gitcommitSelectedFile gitcommitSelectedType +call <sid>hi('gitcommitDiscardedType', s:cdRed, {}, 'none', {}) +hi! link gitcommitDiscardedFile gitcommitDiscardedType +hi! link gitcommitOverflow gitcommitDiscardedType +call <sid>hi('gitcommitSummary', s:cdPink, {}, 'none', {}) +call <sid>hi('gitcommitBlank', s:cdPink, {}, 'none', {}) + +" Lua: +call <sid>hi('luaFuncCall', s:cdYellow, {}, 'none', {}) +call <sid>hi('luaFuncArgName', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('luaFuncKeyword', s:cdPink, {}, 'none', {}) +call <sid>hi('luaLocal', s:cdPink, {}, 'none', {}) +call <sid>hi('luaBuiltIn', s:cdBlue, {}, 'none', {}) + +" SH: +call <sid>hi('shDeref', s:cdLightBlue, {}, 'none', {}) +call <sid>hi('shVariable', s:cdLightBlue, {}, 'none', {}) + +" SQL: +call <sid>hi('sqlKeyword', s:cdPink, {}, 'none', {}) +call <sid>hi('sqlFunction', s:cdYellowOrange, {}, 'none', {}) +call <sid>hi('sqlOperator', s:cdPink, {}, 'none', {}) + +" YAML: +call <sid>hi('yamlKey', s:cdBlue, {}, 'none', {}) +call <sid>hi('yamlConstant', s:cdBlue, {}, 'none', {}) + +" C++: +call <sid>hi('CTagsClass', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('CTagsStructure', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('CTagsNamespace', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('CTagsGlobalVariable', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('CTagsDefinedName ', s:cdBlue, {}, 'none', {}) +highlight def link CTagsFunction Function +highlight def link CTagsMember Identifier + +" C++ color_coded +call <sid>hi('StructDecl', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('UnionDecl', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('ClassDecl', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('TypeRef', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('TypedefDecl', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('TypeAliasDecl', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('EnumDecl', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('TemplateTypeParameter', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('TypeAliasTemplateDecl', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('ClassTemplate', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('ClassTemplatePartialSpecialization', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('FunctionTemplate', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('TemplateRef', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('TemplateTemplateParameter', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('UsingDeclaration', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('MemberRef', s:cdLightBlue, {}, 'italic', {}) +call <sid>hi('MemberRefExpr', s:cdYellow, {}, 'italic', {}) +call <sid>hi('Namespace', s:cdSilver, {}, 'none', {}) +call <sid>hi('NamespaceRef', s:cdSilver, {}, 'none', {}) +call <sid>hi('NamespaceAlias', s:cdSilver, {}, 'none', {}) + +" C++ lsp-cxx-highlight +call <sid>hi('LspCxxHlSymClass', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('LspCxxHlSymStruct', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('LspCxxHlSymEnum', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('LspCxxHlSymTypeAlias', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('LspCxxHlSymTypeParameter', s:cdBlueGreen, {}, 'none', {}) +call <sid>hi('LspCxxHlSymConcept', s:cdBlueGreen, {}, 'italic', {}) +call <sid>hi('LspCxxHlSymNamespace', s:cdSilver, {}, 'none', {}) + +" Coc Explorer: +call <sid>hi('CocHighlightText', {}, s:cdSelection, 'none', {}) +call <sid>hi('CocExplorerIndentLine', s:cdCursorDark, {}, 'none', {}) diff --git a/vim/colors/distinguished.vim b/vim/colors/distinguished.vim new file mode 100644 index 0000000..30934e5 --- /dev/null +++ b/vim/colors/distinguished.vim @@ -0,0 +1,179 @@ +" Author: Kim Silkebækken <kim.silkebaekken+vim@gmail.com> +" Source repository: https://github.com/Lokaltog/vim-distinguished + +" Initialization {{{ + set background=dark + + hi clear + if exists('syntax_on') + syntax reset + endif + + let g:colors_name = 'distinguished' + + if ! has('gui_running') + if &t_Co != 256 + echoe 'The ' . g:colors_name . ' color scheme requires gvim or a 256-color terminal' + + finish + endif + endif +" }}} +" Color dictionary parser {{{ + function! s:ColorDictParser(color_dict) + for [group, group_colors] in items(a:color_dict) + exec 'hi ' . group + \ . ' ctermfg=' . (group_colors[0] == '' ? 'NONE' : group_colors[0]) + \ . ' ctermbg=' . (group_colors[1] == '' ? 'NONE' : group_colors[1]) + \ . ' cterm=' . (group_colors[2] == '' ? 'NONE' : group_colors[2]) + \ + \ . ' guifg=' . (group_colors[3] == '' ? 'NONE' : '#' . group_colors[3]) + \ . ' guibg=' . (group_colors[4] == '' ? 'NONE' : '#' . group_colors[4]) + \ . ' gui=' . (group_colors[5] == '' ? 'NONE' : group_colors[5]) + endfor + endfunction +" }}} + +" | Highlight group | CTFG | CTBG | CTAttributes | || | GUIFG | GUIBG | GUIAttributes | +" |--------------------------------|-------|-------|-----------------| || |---------|----------|-----------------| +call s:ColorDictParser({ + \ 'Normal' : [ 231, 16, '', 'ffffff', '000000', ''] + \ , 'Visual' : [ 240, 253, '', '585858', 'dadada', ''] + \ + \ , 'Cursor' : [ '', '', '', 'ffffff', 'dd4010', ''] + \ , 'lCursor' : [ '', '', '', 'ffffff', '89b6e2', ''] + \ + \ , 'CursorLine' : [ 16, 231, '', '', '3a3a3a', ''] + \ , 'CursorColumn' : [ 231, 237, '', 'ffffff', '3a3a3a', ''] + \ + \ , 'Folded' : [ 249, 234, '', 'b2b2b2', '1c1c1c', ''] + \ , 'FoldColumn' : [ 243, 234, '', '767676', '1c1c1c', ''] + \ , 'SignColumn' : [ 231, 233, 'bold', 'ffffff', '121212', 'bold'] + \ , 'ColorColumn' : [ '', 233, '', '', '262626', ''] + \ + \ , 'StatusLine' : [ 231, 236, 'bold', 'ffffff', '303030', 'bold'] + \ , 'StatusLineNC' : [ 244, 232, '', '808080', '080808', ''] + \ + \ , 'LineNr' : [ 243, 235, '', '767676', '262626', ''] + \ , 'VertSplit' : [ 240, '', '', '585858', '1c1c1c', ''] + \ + \ , 'WildMenu' : [ 234, 231, '', '1c1c1c', 'ffffff', ''] + \ , 'Directory' : [ 143, '', 'bold', 'afaf5f', '', 'bold'] + \ , 'Underlined' : [ 130, '', '', 'af5f00', '', ''] + \ + \ , 'Question' : [ 74, '', 'bold', '5fafd7', '', 'bold'] + \ , 'MoreMsg' : [ 214, '', 'bold', 'ffaf00', '', 'bold'] + \ , 'WarningMsg' : [ 202, '', 'bold', 'ff5f00', '', 'bold'] + \ , 'ErrorMsg' : [ 196, '', 'bold', 'ff0000', '', 'bold'] + \ + \ , 'Comment' : [ 243, 233, '', '767676', '121212', ''] + \ , 'vimCommentTitleLeader' : [ 250, 233, '', 'bcbcbc', '121212', ''] + \ , 'vimCommentTitle' : [ 250, 233, '', 'bcbcbc', '121212', ''] + \ , 'vimCommentString' : [ 245, 233, '', '8a8a8a', '121212', ''] + \ + \ , 'TabLine' : [ 231, 238, '', 'ffffff', '444444', ''] + \ , 'TabLineSel' : [ 255, '', 'bold', 'eeeeee', '', 'bold'] + \ , 'TabLineFill' : [ 240, 238, '', '585858', '444444', ''] + \ , 'TabLineNumber' : [ 160, 238, 'bold', 'd70000', '444444', 'bold'] + \ , 'TabLineClose' : [ 245, 238, 'bold', '8a8a8a', '444444', 'bold'] + \ + \ , 'SpellCap' : [ 231, 31, 'bold', 'ffffff', '0087af', 'bold'] + \ + \ , 'SpecialKey' : [ 239, '', '', '4e4e4e', '', ''] + \ , 'NonText' : [ 88, '', '', '870000', '', ''] + \ , 'MatchParen' : [ 231, 25, 'bold', 'ffffff', '005faf', 'bold'] + \ + \ , 'Constant' : [ 137, '', 'bold', 'af875f', '', 'bold'] + \ , 'Special' : [ 150, '', '', 'afd787', '', ''] + \ , 'Identifier' : [ 66, '', 'bold', '5f8787', '', 'bold'] + \ , 'Statement' : [ 186, '', 'bold', 'd7d787', '', 'bold'] + \ , 'PreProc' : [ 247, '', '', '9e9e9e', '', ''] + \ , 'Type' : [ 67, '', 'bold', '5f87af', '', 'bold'] + \ , 'String' : [ 143, '', '', 'afaf5f', '', ''] + \ , 'Number' : [ 173, '', '', 'd7875f', '', ''] + \ , 'Define' : [ 173, '', '', 'd7875f', '', ''] + \ , 'Error' : [ 208, 124, '', 'ff8700', 'af0000', ''] + \ , 'Function' : [ 179, '', '', 'd7af5f', '', ''] + \ , 'Include' : [ 173, '', '', 'd7875f', '', ''] + \ , 'PreCondit' : [ 173, '', '', 'd7875f', '', ''] + \ , 'Keyword' : [ 173, '', '', 'd7875f', '', ''] + \ , 'Search' : [ 231, 131, '', '000000', 'ffff5f', 'underline,bold'] + \ , 'Title' : [ 231, '', '', 'ffffff', '', ''] + \ , 'Delimiter' : [ 246, '', '', '949494', '', ''] + \ , 'StorageClass' : [ 187, '', '', 'd7d7af', '', ''] + \ + \ , 'TODO' : [ 228, 94, 'bold', 'ffff87', '875f00', 'bold'] + \ + \ , 'SyntasticWarning' : [ 220, 94, '', 'ffff87', '875f00', 'bold'] + \ , 'SyntasticError' : [ 202, 52, '', 'ffff87', '875f00', 'bold'] + \ + \ , 'Pmenu' : [ 248, 240, '', 'a8a8a8', '585858', ''] + \ , 'PmenuSel' : [ 253, 245, '', 'dadada', '8a8a8a', ''] + \ , 'PmenuSbar' : [ 253, 248, '', 'dadada', 'a8a8a8', ''] + \ + \ , 'phpEOL' : [ 245, '', '', 'dadada', '', ''] + \ , 'phpStringDelim' : [ 94, '', '', '875f00', '', ''] + \ , 'phpDelimiter' : [ 160, '', '', 'd70000', '', ''] + \ , 'phpFunctions' : [ 221, '', 'bold', 'ffd75f', '', 'bold'] + \ , 'phpBoolean' : [ 172, '', 'bold', 'd78700', '', 'bold'] + \ , 'phpOperator' : [ 215, '', '', 'ffaf5f', '', ''] + \ , 'phpMemberSelector' : [ 138, '', 'bold', 'af8787', '', 'bold'] + \ , 'phpParent' : [ 227, '', '', 'ffff5f', '', ''] + \ + \ , 'PHPClassTag' : [ 253, '', '', 'dadada', '', ''] + \ , 'PHPInterfaceTag' : [ 253, '', '', 'dadada', '', ''] + \ , 'PHPFunctionTag' : [ 222, '', 'bold', 'ffd787', '', 'bold'] + \ + \ , 'pythonDocString' : [ 240, 233, '', '585858', '121212', ''] + \ , 'pythonDocStringTitle' : [ 245, 233, '', 'dadada', '121212', ''] + \ , 'pythonRun' : [ 65, '', '', '5f875f', '', ''] + \ , 'pythonBuiltinObj' : [ 67, '', 'bold', '5f87af', '', 'bold'] + \ , 'pythonSelf' : [ 250, '', 'bold', 'bcbcbc', '', 'bold'] + \ , 'pythonFunction' : [ 179, '', 'bold', 'd7af5f', '', 'bold'] + \ , 'pythonClass' : [ 221, '', 'bold', 'ffd75f', '', 'bold'] + \ , 'pythonExClass' : [ 130, '', '', 'af5f00', '', ''] + \ , 'pythonException' : [ 130, '', 'bold', 'af5f00', '', 'bold'] + \ , 'pythonOperator' : [ 186, '', '', 'd7d787', '', ''] + \ , 'pythonPreCondit' : [ 152, '', 'bold', 'afd7d7', '', 'bold'] + \ , 'pythonDottedName' : [ 166, '', '', 'd75f00', '', ''] + \ , 'pythonDecorator' : [ 124, '', 'bold', 'af0000', '', 'bold'] + \ + \ , 'PythonInterfaceTag' : [ 109, '', '', '87afaf', '', ''] + \ , 'PythonClassTag' : [ 221, '', '', 'ffd75f', '', ''] + \ , 'PythonFunctionTag' : [ 109, '', '', '87afaf', '', ''] + \ , 'PythonVariableTag' : [ 253, '', '', 'dadada', '', ''] + \ , 'PythonMemberTag' : [ 145, '', '', 'afafaf', '', ''] + \ + \ , 'CTagsImport' : [ 109, '', '', '87afaf', '', ''] + \ , 'CTagsClass' : [ 221, '', '', 'ffd75f', '', ''] + \ , 'CTagsFunction' : [ 109, '', '', '87afaf', '', ''] + \ , 'CTagsGlobalVariable' : [ 253, '', '', 'dadada', '', ''] + \ , 'CTagsMember' : [ 145, '', '', 'afafaf', '', ''] + \ + \ , 'xmlTag' : [ 149, '', 'bold', 'afd75f', '', 'bold'] + \ , 'xmlTagName' : [ 250, '', '', 'bcbcbc', '', ''] + \ , 'xmlEndTag' : [ 209, '', 'bold', 'ff875f', '', 'bold'] + \ + \ , 'cssImportant' : [ 166, '', 'bold', 'd75f00', '', 'bold'] + \ + \ , 'DiffAdd' : [ 112, 22, '', '87d700', '005f00', ''] + \ , 'DiffChange' : [ 220, 94, '', 'ffd700', '875f00', ''] + \ , 'DiffDelete' : [ 160, '', '', 'd70000', '', ''] + \ , 'DiffText' : [ 220, 94, 'reverse,bold', 'ffd700', '875f00', 'reverse,bold'] + \ + \ , 'diffLine' : [ 68, '', 'bold', '5f87d7', '', 'bold'] + \ , 'diffFile' : [ 242, '', '', '6c6c6c', '', ''] + \ , 'diffNewFile' : [ 242, '', '', '6c6c6c', '', ''] +\ }) + +hi link htmlTag xmlTag +hi link htmlTagName xmlTagName +hi link htmlEndTag xmlEndTag + +hi link phpCommentTitle vimCommentTitle +hi link phpDocTags vimCommentString +hi link phpDocParam vimCommentTitle + +hi link diffAdded DiffAdd +hi link diffChanged DiffChange +hi link diffRemoved DiffDelete diff --git a/vim/colors/grb256.vim b/vim/colors/grb256.vim new file mode 100644 index 0000000..10c57c0 --- /dev/null +++ b/vim/colors/grb256.vim @@ -0,0 +1,32 @@ +" Based on +runtime colors/ir_black.vim + +let g:colors_name = "grb256" + +hi pythonSpaceError ctermbg=red guibg=red + +hi Comment ctermfg=darkgray + +hi StatusLine ctermbg=darkgrey ctermfg=white +hi StatusLineNC ctermbg=black ctermfg=lightgrey +hi VertSplit ctermbg=black ctermfg=lightgrey +hi LineNr ctermfg=darkgray +hi CursorLine guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=234 +hi Function guifg=#FFD2A7 guibg=NONE gui=NONE ctermfg=yellow ctermbg=NONE cterm=NONE +hi Visual guifg=NONE guibg=#262D51 gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE + +hi Error guifg=NONE guibg=NONE gui=undercurl ctermfg=16 ctermbg=red cterm=NONE guisp=#FF6C60 " undercurl color +hi ErrorMsg guifg=white guibg=#FF6C60 gui=BOLD ctermfg=16 ctermbg=red cterm=NONE +hi WarningMsg guifg=white guibg=#FF6C60 gui=BOLD ctermfg=16 ctermbg=red cterm=NONE +hi SpellBad guifg=white guibg=#FF6C60 gui=BOLD ctermfg=16 ctermbg=160 cterm=NONE + +" ir_black doesn't highlight operators for some reason +hi Operator guifg=#6699CC guibg=NONE gui=NONE ctermfg=lightblue ctermbg=NONE cterm=NONE + +highlight DiffAdd term=reverse cterm=bold ctermbg=lightgreen ctermfg=16 +highlight DiffChange term=reverse cterm=bold ctermbg=lightblue ctermfg=16 +highlight DiffText term=reverse cterm=bold ctermbg=lightgray ctermfg=16 +highlight DiffDelete term=reverse cterm=bold ctermbg=lightred ctermfg=16 + +highlight PmenuSel ctermfg=16 ctermbg=156 + diff --git a/vim/colors/gruber-darker.vim b/vim/colors/gruber-darker.vim new file mode 100644 index 0000000..1bd9d87 --- /dev/null +++ b/vim/colors/gruber-darker.vim @@ -0,0 +1,228 @@ +" GruberDarker Theme for Vim +" +" Adapted from an Emacs theme: +" https://github.com/rexim/gruber-darker-theme +" +" Colorscheme template: https://github.com/mhartington/oceanic-next/blob/master/colors/OceanicNext.vim +" -------------------------------------------- + +" {{{ Setup + set background=dark + hi clear + if exists("syntax_on") + syntax reset + endif + let g:colors_name="GruberDarker" +" }}} +" {{{ Italics + let g:gruber_terminal_italic = get(g:, 'gruber_terminal_italic', 0) + let s:italic = "" + if g:gruber_terminal_italic == 1 + let s:italic = "italic" + endif +"}}} +" {{{ Bold + let g:gruber_terminal_bold = get(g:, 'gruber_terminal_bold', 0) + let s:bold = "" + if g:gruber_terminal_bold == 1 + let s:bold = "bold" + endif +"}}} +" {{{ Colors + let s:gruberFG=['#e4e4ef', '253'] + let s:gruberFG1=['#f4f4ff', '254'] + let s:gruberFG2=['#f5f5ff', '240'] + let s:gruberFG3=['#65737e', '243'] + let s:gruberWhite=['#ffffff', '15'] + let s:gruberBlack=['#000000', '0'] + let s:gruberBG=['#181818', '233'] + let s:gruberBG1=['#282828', '235'] + let s:gruberBG2=['#453d41', '238'] + let s:gruberLightRed=['#c73c3f', '203'] + let s:gruberRed=['#f43841', '160'] + let s:gruberNiagara=['#96a6c8', '147'] + let s:gruberQuartz=['#95a99f', '108'] + let s:gruberGreen=['#73c936', '70'] + let s:gruberMain=['#ffdd33', '220'] + let s:gruberBrown=['#cc8c3c', '172'] + let s:gruberPurple=['#9e95c7', '98'] + let s:gruberLightBlue=['#0087d7', '32'] + let s:gruberBlue=['#0000d7', '20'] + let s:gruberGold=['#d7af00', '178'] + let s:none=['NONE', 'NONE'] + +" {{{ Highlight function +function! <sid>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 <sid>:hi(group, fg, bg, gui, guisp) +call <sid>hi('Bold', '', '', 'bold', '') +call <sid>hi('Debug', s:gruberFG2, '', '', '') +call <sid>hi('Directory', s:gruberLightBlue, '', '', '') +call <sid>hi('ErrorMsg', s:gruberWhite, s:gruberRed, '', '') +call <sid>hi('Exception', s:gruberBrown, '', '', '') +call <sid>hi('FoldColumn', s:gruberBrown, s:gruberFG2, '', '') +call <sid>hi('Folded', s:gruberBrown, s:gruberFG2, s:italic, '') +call <sid>hi('IncSearch', s:gruberBlack, s:gruberFG2, 'NONE', '') +call <sid>hi('Italic', '', '', s:italic, '') + +call <sid>hi('Macro', s:gruberFG, '', '', '') +call <sid>hi('MatchParen', s:gruberBG2, s:gruberMain, '', '') +call <sid>hi('ModeMsg', s:gruberFG2, '', '', '') +call <sid>hi('MoreMsg', s:gruberFG2, '', '', '') +call <sid>hi('Question', s:gruberNiagara, '', '', '') +call <sid>hi('Search', s:gruberBlack, s:gruberMain, '', '') +call <sid>hi('SpecialKey', s:gruberFG2, '', '', '') +call <sid>hi('TooLong', s:gruberFG2, '', '', '') +call <sid>hi('Underlined', s:gruberPurple, '', '', '') +call <sid>hi('Visual', '', s:gruberBG2, '', '') +call <sid>hi('VisualNOS', s:gruberRed, '', '', '') +call <sid>hi('WarningMsg', s:gruberRed, '', '', '') +call <sid>hi('WildMenu', s:gruberBlack, s:gruberMain, '', '') +call <sid>hi('Title', s:gruberQuartz, '', '', '') +call <sid>hi('Conceal', s:gruberFG, s:gruberBG, '', '') +call <sid>hi('Cursor', s:gruberBG, s:gruberFG, '', '') +call <sid>hi('NonText', s:gruberFG2, '', '', '') +call <sid>hi('Normal', s:gruberFG, s:gruberBG, '', '') +call <sid>hi('EndOfBuffer', s:gruberFG, s:gruberBG, '', '') +call <sid>hi('LineNr', s:gruberFG, s:gruberBG, '', '') +call <sid>hi('SignColumn', s:none, s:none, '', '') +call <sid>hi('VertSplit', s:gruberFG2, s:gruberBG1, '', '') +call <sid>hi('ColorColumn', '', s:gruberBG2, '', '') +call <sid>hi('CursorColumn', '', s:gruberBG2, '', '') +call <sid>hi('CursorLine', '', s:gruberBG2, 'NONE', '') +call <sid>hi('CursorLineNr', s:gruberMain, s:gruberBG, '', '') +call <sid>hi('PMenu', s:gruberFG, s:gruberBG1, '', '') +call <sid>hi('PMenuSel', s:gruberFG, s:gruberBG2, '', '') +call <sid>hi('PmenuSbar', '', s:gruberBG, '', '') +call <sid>hi('PmenuThumb', '', s:gruberBG, '', '') +call <sid>hi('helpExample', s:gruberMain, '', '', '') +call <sid>hi('helpCommand', s:gruberMain, '', '', '') + +" Standard syntax highlighting +call <sid>hi('Boolean', s:gruberQuartz, '', '', '') +call <sid>hi('Character', s:gruberGreen, '', '', '') +call <sid>hi('Comment', s:gruberBrown, '', s:italic, '') +call <sid>hi('Conditional', s:gruberMain, '', '', '') +call <sid>hi('Constant', s:gruberQuartz, '', '', '') +call <sid>hi('Define', s:gruberMain, '', '', '') +call <sid>hi('Delimiter', s:gruberFG, '', '', '') +call <sid>hi('Float', s:gruberQuartz, '', '', '') +call <sid>hi('Function', s:gruberNiagara, '', '', '') +call <sid>hi('Identifier', s:gruberNiagara, '', '', '') +call <sid>hi('Include', s:gruberMain, '', '', '') +call <sid>hi('Keyword', s:gruberMain, '', '', '') +call <sid>hi('Label', s:gruberFG, '', '', '') +call <sid>hi('Number', s:gruberQuartz, '', '', '') +call <sid>hi('Operator', s:gruberFG, '', '', '') +call <sid>hi('PreProc', s:gruberFG1, '', '', '') +call <sid>hi('Repeat', s:gruberMain, '', '', '') +call <sid>hi('Special', s:gruberMain, '', '', '') +call <sid>hi('SpecialChar', s:gruberMain, '', '', '') +call <sid>hi('Statement', s:gruberMain, '', '', '') +call <sid>hi('StorageClass', s:gruberMain, '', '', '') +call <sid>hi('String', s:gruberGreen, '', '', '') +call <sid>hi('Structure', s:gruberMain, '', '', '') +call <sid>hi('Todo', s:gruberBG, s:gruberMain, '', '') +call <sid>hi('Type', s:gruberQuartz, '', '', '') +call <sid>hi('Typedef', s:gruberQuartz, '', '', '') + +call <sid>hi('SpellBad', '', '', 'undercurl', '') +call <sid>hi('SpellLocal', '', '', 'undercurl', '') +call <sid>hi('SpellCap', '', '', 'undercurl', '') +call <sid>hi('SpellRare', '', '', 'undercurl', '') + +" Haskell Highlighting +call <sid>hi('hsTypeDef', s:gruberMain, '', '', '') +call <sid>hi('hsStructure', s:gruberMain, '', '', '') +call <sid>hi('hsStatement', s:gruberMain, '', '', '') +call <sid>hi('hsconditional', s:gruberMain, '', '', '') +call <sid>hi('hsconditional', s:gruberMain, '', '', '') +call <sid>hi('hsconditional', s:gruberMain, '', '', '') + +" Java Highlighting +" TODO Fix function definitions +call <sid>hi('javaConstant', s:gruberQuartz, '', '', '') +call <sid>hi('javaConditional', s:gruberMain, '', '', '') +call <sid>hi('javaOperator', s:gruberMain, '', '', '') +call <sid>hi('javaExceptions', s:gruberMain, '', '', '') +call <sid>hi('javaAssert', s:gruberMain, '', '', '') +call <sid>hi('javaClassDecl', s:gruberMain, '', '', '') +call <sid>hi('javaBraces', s:gruberFG, '', '', '') +call <sid>hi('javaLangObject', s:gruberFG, '', '', '') +call <sid>hi('javaType', s:gruberQuartz, '', '', '') + +" Python Highlighting +call <sid>hi('pythonRepeat', s:gruberMain, '', '', '') +call <sid>hi('pythonOperator', s:gruberMain, '', '', '') +call <sid>hi('pythonException', s:gruberMain, '', '', '') + + +call <sid>hi('markdownCode', s:gruberGreen, '', '', '') +call <sid>hi('markdownCodeBlock', s:gruberGreen, '', '', '') +call <sid>hi('markdownHeadingDelimiter', s:gruberNiagara, '', '', '') +call <sid>hi('markdownItalic', s:gruberPurple, '', s:italic, '') +call <sid>hi('markdownBold', s:gruberMain, '', s:bold, '') +call <sid>hi('markdownCodeDelimiter', s:gruberBrown, '', s:italic, '') +call <sid>hi('markdownError', s:gruberFG, s:gruberBG1, '', '') + +call <sid>hi('ALEErrorSign', s:gruberRed, s:gruberBG2, s:bold, '') +call <sid>hi('ALEWarningSign', s:gruberMain, s:gruberBG2, s:bold, '') +call <sid>hi('ALEInfoSign', s:gruberGreen, s:gruberBG2, s:bold, '') + +call <sid>hi('NERDTreeExecFile', s:gruberFG, '', '', '') +call <sid>hi('NERDTreeDirSlash', s:gruberNiagara, '', '', '') +call <sid>hi('NERDTreeOpenable', s:gruberNiagara, '', '', '') +call <sid>hi('NERDTreeFile', '', s:none, '', '') +call <sid>hi('NERDTreeFlags', s:gruberNiagara, '', '', '') + +call <sid>hi('vimfilerLeaf', s:gruberFG, '', '', '') +call <sid>hi('vimfilerNormalFile', s:gruberFG, s:gruberBG1, '', '') +call <sid>hi('vimfilerOpenedFile', s:gruberNiagara, '', '', '') +call <sid>hi('vimfilerClosedFile', s:gruberNiagara, '', '', '') + +" }}} + +let g:terminal_color_0=s:gruberBG1[0] +let g:terminal_color_8=s:gruberBG1[0] + +let g:terminal_color_1=s:gruberLightRed[0] +let g:terminal_color_9=s:gruberLightRed[0] + +let g:terminal_color_2=s:gruberGreen[0] +let g:terminal_color_10=s:gruberGreen[0] + +let g:terminal_color_3=s:gruberMain[0] +let g:terminal_color_11=s:gruberMain[0] + +let g:terminal_color_4=s:gruberNiagara[0] +let g:terminal_color_12=s:gruberNiagara[0] + +let g:terminal_color_5=s:gruberPurple[0] +let g:terminal_color_13=s:gruberPurple[0] + +let g:terminal_color_6=s:gruberNiagara[0] +let g:terminal_color_14=s:gruberNiagara[0] + +let g:terminal_color_7=s:gruberFG[0] +let g:terminal_color_15=s:gruberFG[0] + +let g:terminal_color_background=s:gruberBG1[0] +let g:terminal_color_foreground=s:gruberWhite[0] + diff --git a/vim/colors/hemisu.vim b/vim/colors/hemisu.vim new file mode 100644 index 0000000..95d39e2 --- /dev/null +++ b/vim/colors/hemisu.vim @@ -0,0 +1,229 @@ +" hemisu.vim - Vim color scheme +" ---------------------------------------------------------- +" Author: Noah Frederick (http://noahfrederick.com/) +" Version: 3.4 +" License: Creative Commons Attribution-NonCommercial +" 3.0 Unported License (see README.md) +" ---------------------------------------------------------- + +" Setup ----------------------------------------------------{{{ +" Reset syntax highlighting +hi clear +if exists("syntax_on") + syntax reset +endif + +" Declare theme name +let g:colors_name = "hemisu" + +"}}} +" The Colors -----------------------------------------------{{{ +" Define reusable colors +let s:black = { "gui": "#080D14", "cterm": "16" } +let s:white = { "gui": "#FFFFFF", "cterm": "231" } +let s:almostWhite = { "gui": "#FFDABD", "cterm": "255" } +let s:almostBlack = { "gui": "#111111", "cterm": "233" } +let s:middleDarkGrey = { "gui": "#777777", "cterm": "241" } +let s:middleLightGrey = { "gui": "#999999", "cterm": "246" } +let s:lightGrey = { "gui": "#BBBBBB", "cterm": "249" } +let s:darkGrey = { "gui": "#444444", "cterm": "238" } + +let s:darkPink = { "gui": "#63001C", "cterm": "88" } +let s:middleDarkPink = { "gui": "#FF0055", "cterm": "197" } +let s:middleLightPink = { "gui": "#D65E76", "cterm": "167" } +let s:lightPink = { "gui": "#FFAFAF", "cterm": "217" } + +let s:darkBlue = { "gui": "#005F87", "cterm": "24" } +let s:middleDarkBlue = { "gui": "#538192", "cterm": "24" } +let s:middleLightBlue = { "gui": "#9FD3E6", "cterm": "116" } +let s:lightBlue = { "gui": "#CBE4EE", "cterm": "195" } +let s:verylightBlue = { "gui": "#D7F9FC", "cterm": "195" } +let s:lightCyan = { "gui": "#84D9A5", "cterm": "195" } +let s:lightPurple = { "gui": "#8CFAF1", "cterm": "195" } + +let s:darkGreen = { "gui": "#5F5F00", "cterm": "58" } +let s:middleDarkGreen = { "gui": "#739200", "cterm": "64" } +let s:middleLightGreen = { "gui": "#C78C52", "cterm": "149" } +let s:lightGreen = { "gui": "#EAEB88", "cterm": "157" } +let s:intenseGreen = { "gui": "#52EB66", "cterm": "157" } + +let s:darkGold = { "gui": "#C2B85B", "cterm": "149" } + +let s:darkTan = { "gui": "#503D15", "cterm": "52" } +let s:lightTan = { "gui": "#ECE1C8", "cterm": "230" } + +" Assign to semantic categories based on background color +if &background == "dark" + " Dark theme + let s:bg = s:black + let s:norm = s:almostWhite + let s:comment = s:middleDarkGrey + let s:dimmed = s:middleLightGrey + let s:subtle = s:darkGrey + let s:faint = s:almostBlack + let s:accent1 = s:middleLightBlue + let s:accent2 = s:darkGold + let s:accent3 = s:lightCyan + let s:accent4 = s:lightTan + let s:accent5 = s:verylightBlue + let s:accent6 = s:middleLightGreen + let s:normRed = s:middleLightPink + let s:normGreen = s:middleLightGreen + let s:normBlue = s:middleLightBlue + let s:faintRed = s:darkPink + let s:faintGreen = s:darkGreen + let s:faintBlue = s:darkBlue +else + " Light theme + let s:bg = s:white + let s:norm = s:almostBlack + let s:comment = s:middleLightGrey + let s:dimmed = s:middleDarkGrey + let s:subtle = s:lightGrey + let s:faint = s:almostWhite + let s:accent1 = s:middleDarkBlue + let s:accent2 = s:middleDarkGreen + let s:accent3 = s:middleDarkPink + let s:accent4 = s:darkTan + let s:normRed = s:middleDarkPink + let s:normGreen = s:middleDarkGreen + let s:normBlue = s:middleDarkBlue + let s:faintRed = s:lightPink + let s:faintGreen = s:lightGreen + let s:faintBlue = s:lightBlue +endif + +"}}} +" Utility Function -----------------------------------------{{{ +function! s:h(group, style) + execute "highlight" a:group + \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE") + \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE") + \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE") + \ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE") + \ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE") + \ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE") + \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE") +endfunction + +"}}} +" Highlights - Vim >= 7 ------------------------------------{{{ +if version >= 700 + call s:h("CursorLine", { "bg": s:faint }) + call s:h("MatchParen", { "fg": s:accent1, "bg": s:faint, "gui": "bold" }) + call s:h("Pmenu", { "bg": s:faint }) + call s:h("PmenuThumb", { "bg": s:norm }) + call s:h("PmenuSBar", { "bg": s:subtle }) + call s:h("PmenuSel", { "bg": s:faintBlue }) + call s:h("ColorColumn", { "bg": s:faintRed }) + call s:h("SpellBad", { "sp": s:normRed, "gui": "undercurl" }) + call s:h("SpellCap", { "sp": s:accent1, "gui": "undercurl" }) + call s:h("SpellRare", { "sp": s:normGreen, "gui": "undercurl" }) + call s:h("SpellLocal", { "sp": s:accent4, "gui": "undercurl" }) + hi! link CursorColumn CursorLine + + " Use background for cterm Spell*, which does not support undercurl + execute "hi! SpellBad ctermbg=" s:faintRed.cterm + execute "hi! SpellCap ctermbg=" s:faintBlue.cterm + execute "hi! SpellRare ctermbg=" s:faintGreen.cterm + execute "hi! SpellLocal ctermbg=" s:faint.cterm +endif + +"}}} +" Highlights - UI ------------------------------------------{{{ +call s:h("Normal", { "fg": s:norm, "bg": s:bg }) +call s:h("NonText", { "fg": s:subtle }) +call s:h("Cursor", { "fg": s:bg, "bg": s:accent3 }) +call s:h("Visual", { "bg": s:faintBlue }) +call s:h("IncSearch", { "bg": s:faintBlue }) +call s:h("Search", { "bg": s:faintGreen }) +call s:h("StatusLine", { "fg": s:norm, "bg": s:faint, "gui": "bold", "cterm": "bold" }) +call s:h("StatusLineNC", { "fg": s:dimmed, "bg": s:faint }) +call s:h("SignColumn", { "fg": s:norm }) +call s:h("VertSplit", { "fg": s:subtle, "bg": s:faint }) +call s:h("TabLine", { "fg": s:dimmed, "bg": s:faint }) +call s:h("TabLineSel", { "gui": "bold", "cterm": "bold" }) +call s:h("Folded", { "fg": s:comment, "bg": s:faint }) +call s:h("Directory", { "fg": s:accent1 }) +call s:h("Title", { "fg": s:accent4, "gui": "bold", "cterm": "bold" }) +call s:h("ErrorMsg", { "bg": s:faintRed }) +call s:h("DiffAdd", { "bg": s:faintGreen }) +call s:h("DiffChange", { "bg": s:faintRed }) +call s:h("DiffDelete", { "fg": s:normRed, "bg": s:faintRed }) +call s:h("DiffText", { "bg": s:faintRed, "gui": "bold", "cterm": "bold" }) +call s:h("User1", { "fg": s:bg, "bg": s:normGreen }) +call s:h("User2", { "fg": s:bg, "bg": s:normRed }) +call s:h("User3", { "fg": s:bg, "bg": s:normBlue }) +hi! link WildMenu IncSearch +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 LineNr NonText +hi! link SpecialKey NonText + +"}}} +" Highlights - Generic Syntax ------------------------------{{{ +call s:h("Delimiter", { "fg": s:dimmed }) +call s:h("Comment", { "fg": s:dimmed, "gui": "italic" }) +call s:h("Underlined", { "fg": s:accent1, "gui": "underline", "cterm": "underline" }) +call s:h("Type", { "fg": s:accent3 }) +call s:h("String", { "fg": s:accent2 }) +call s:h("Constant", { "fg": s:accent6 }) +call s:h("Statement", { "fg": s:accent5 }) +"call s:h("Number", { "fg": s:lightPurple}) +call s:h("Identifier", { "fg": s:norm}) +" call s:h("@lsp.mod.declaration", { "fg": s:lightGreen}) +" call s:h("@lsp.mod.class", { "fg": s:accent3}) +" call s:h("@lsp.typemod.variable.globalScope", { "fg": s:accent6}) +" call s:h("@lsp.type.namespace", { "fg": s:norm}) +call s:h("Keyword", { "fg": s:accent5 }) +call s:h("Todo", { "fg": s:normRed, "gui": "bold", "cterm": "bold" }) + +hi! link StorageClass Keyword +hi! link Number Normal +hi! link Special Constant +hi! link PreProc Constant +hi! link Error ErrorMsg + +"}}} +" Highlights - HTML ----------------------------------------{{{ +hi! link htmlLink Underlined +hi! link htmlTag Type +hi! link htmlEndTag htmlTag + +"}}} +" Highlights - CSS -----------------------------------------{{{ +hi! link cssBraces Delimiter +hi! link cssSelectorOp cssBraces +hi! link cssClassName Normal + +"}}} +" Highlights - Markdown ------------------------------------{{{ +hi! link mkdListItem mkdDelimiter + +"}}} +" Highlights - Shell ---------------------------------------{{{ +hi! link shOperator Delimiter +hi! link shCaseBar Delimiter + +"}}} +" Highlights - JavaScript ----------------------------------{{{ +hi! link javaScriptValue Constant +hi! link javaScriptNull Constant +hi! link javaScriptBraces Normal + +"}}} +" Highlights - 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 + +"}}} + +" vim: fdm=marker:sw=2:sts=2:et diff --git a/vim/colors/hipster.vim b/vim/colors/hipster.vim new file mode 100644 index 0000000..973aeb1 --- /dev/null +++ b/vim/colors/hipster.vim @@ -0,0 +1,102 @@ +" --- hipster --- +" Author: Conner McDaniel (connermcd.com) +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name = "hipster" +set t_Co=256 +set background=dark + +" Vim >= 7.0 specific colors +if version >= 700 +hi CursorLine guifg=NONE guibg=#32322f guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE +hi CursorLineNr guifg=#8a8a8a guibg=#32322f guisp=NONE gui=NONE ctermfg=245 ctermbg=236 cterm=NONE +hi MatchParen guifg=#eae788 guibg=#857b6f guisp=NONE gui=bold ctermfg=228 ctermbg=101 cterm=bold +hi PMenu guifg=#dddddd guibg=#423d35 guisp=#423d35 gui=NONE ctermfg=253 ctermbg=238 cterm=NONE +hi PMenuSbar guifg=NONE guibg=#848688 guisp=#848688 gui=NONE ctermfg=NONE ctermbg=102 cterm=NONE +hi PMenuSel guifg=#ffd700 guibg=#706070 guisp=#706070 gui=bold ctermfg=220 ctermbg=242 cterm=bold +hi PMenuThumb guifg=NONE guibg=#a4a5a8 guisp=#a4a5a8 gui=NONE ctermfg=NONE ctermbg=248 cterm=NONE +endif + +" General colors +hi Normal guifg=#f9f8ff guibg=#000000 guisp=NONE gui=NONE ctermfg=15 ctermbg=NONE cterm=NONE +hi Cursor guifg=NONE guibg=#cd6f5c guisp=#cd6f5c gui=NONE ctermfg=NONE ctermbg=173 cterm=NONE +hi Visual guifg=#c3c6ca guibg=#554d4b guisp=NONE gui=NONE ctermfg=251 ctermbg=239 cterm=NONE +hi Visualnos guifg=#c3c6ca guibg=#303030 guisp=NONE gui=NONE ctermfg=251 ctermbg=236 cterm=NONE +hi Search guifg=#000000 guibg=#8dabcd guisp=#8dabcd gui=NONE ctermfg=NONE ctermbg=110 cterm=NONE +hi Folded guifg=#857b6f guibg=#000000 guisp=NONE gui=NONE ctermfg=241 ctermbg=233 cterm=NONE +hi StatusLineNC guifg=NONE guibg=#262626 guisp=#262626 gui=NONE ctermfg=NONE ctermbg=235 cterm=NONE +hi VertSplit guifg=#444444 guibg=#444444 guisp=NONE gui=NONE ctermfg=238 ctermbg=238 cterm=NONE +" hi StatusLineNC guifg=#857b6f guibg=#444444 guisp=NONE gui=NONE ctermfg=241 ctermbg=238 cterm=NONE +hi LineNr guifg=#595959 guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE +hi SpecialKey guifg=#87beeb guibg=NONE guisp=NONE gui=NONE ctermfg=117 ctermbg=NONE cterm=NONE +hi WarningMsg guifg=#bd4848 guibg=#f9f8ff guisp=#f9f8ff gui=bold ctermfg=131 ctermbg=15 cterm=bold +hi ErrorMsg guifg=#bd5353 guibg=NONE guisp=NONE gui=NONE ctermfg=131 ctermbg=NONE cterm=NONE +hi MoreMsg guifg=#ffff00 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE + +" Diff highlighting +hi DiffAdd guifg=NONE guibg=#301430 guisp=#3c664e gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE +hi DiffDelete guifg=#ad3838 guibg=#301430 guisp=#301430 gui=NONE ctermfg=131 ctermbg=236 cterm=NONE +hi DiffChange guifg=NONE guibg=#7e8c2d guisp=#331833 gui=NONE ctermfg=NONE ctermbg=238 cterm=NONE + +" Syntax highlighting +hi Keyword guifg=#d6d69a guibg=NONE guisp=NONE gui=NONE ctermfg=186 ctermbg=NONE cterm=NONE +hi Function guifg=#bf9b76 guibg=NONE guisp=NONE gui=NONE ctermfg=137 ctermbg=NONE cterm=NONE +hi Constant guifg=#44807d guibg=NONE guisp=NONE gui=NONE ctermfg=66 ctermbg=NONE cterm=NONE +hi Number guifg=#386175 guibg=NONE guisp=NONE gui=NONE ctermfg=66 ctermbg=NONE cterm=NONE +hi PreProc guifg=#ad5234 guibg=NONE guisp=NONE gui=NONE ctermfg=131 ctermbg=NONE cterm=NONE +hi Statement guifg=#418db3 guibg=NONE guisp=NONE gui=NONE ctermfg=67 ctermbg=NONE cterm=NONE +hi Identifier guifg=#5f875f guibg=NONE guisp=NONE gui=NONE ctermfg=65 ctermbg=NONE cterm=NONE +hi Type guifg=#babaa2 guibg=NONE guisp=NONE gui=NONE ctermfg=144 ctermbg=NONE cterm=NONE +hi Special guifg=#7a490d guibg=NONE guisp=NONE gui=NONE ctermfg=3 ctermbg=NONE cterm=NONE +hi String guifg=#7e8c2d guibg=NONE guisp=NONE gui=NONE ctermfg=100 ctermbg=NONE cterm=NONE +hi Comment guifg=#576157 guibg=NONE guisp=NONE gui=NONE ctermfg=241 ctermbg=NONE cterm=NONE +hi Todo guifg=#a1481e guibg=NONE guisp=NONE gui=NONE ctermfg=130 ctermbg=NONE cterm=NONE + +" Linking +hi! link FoldColumn Folded +hi! link CursorColumn CursorLine +hi! link Search CursorLine +hi! link NonText LineNr +hi! link DiffText DiffChange +hi! link SpellBad ErrorMsg +hi! link SpellCap ErrorMsg +hi! link Error ErrorMsg +hi! link Question MoreMsg +hi! link htmlBold Special +hi! link htmlItalic Number +hi! link Title Function + +" Unhighlighted: +" CursorIM +" CursorColumn +" DiffText +" Directory +" FoldColumn +" IncSearch +" Menu +" ModeMsg +" MoreMsg +" NonText +" PmenuSbar +" PmenuThumb +" Question +" Scrollbar +" SignColumn +" SpellBad +" SpellLocal +" SpellRare +" TabLine +" TabLineFill +" TabLineSel +" Tooltip +" User1 +" User9 +" WildMenu +" Links + +" vim: ts=3:sw=3:et diff --git a/vim/plugged/vim-go b/vim/plugged/vim-go -Subproject 11752f23743ac55ffa8b0662ae480ebfb0dc855 +Subproject 14eedf6135cf4253b0ed48a0b53d6834a40da1c @@ -1,261 +1,219 @@ -"Fark all from https://jamesdixon.dev/posts/a-minimal-vimrc/ +" Setup {{{ set nocompatible - -if filereadable(expand('$VIMRUNTIME/defaults.vim')) - unlet! g:skip_defaults_vim - source $VIMRUNTIME/defaults.vim -endif -" -" -" leader +filetype indent on +filetype plugin on +" syntax on +runtime macros/matchit.vim "allows jumping between brackets with % in normal mode +" }}} +" Leaders {{{ let maplocalleader = "\\" let mapleader = "," - -" encryption method when using :X -set cm=blowfish2 - -" Source this file again. -noremap <silent> <localleader>rc :source ~/.vim/vimrc<CR> -" -" Underline the current line, based on its length. -noremap <silent> <leader>ul mmyypVr-<Esc>`m -" -" Show the 'list' characters. -noremap <silent> <leader>ls :set list!<CR> -" -" Remove double- or single-quotes, or graves wrapped around a string. -noremap <silent> <leader>rdq mmF"xf"x`m -noremap <silent> <leader>rsq mmF'xf'x`m -noremap <silent> <leader>rg mmF`xf`x`m - -" Jump up or down by 10 lines. -noremap <silent> J 10j -noremap <silent> K 10k - - +nnoremap <silent> <leader>idate :.!date +"\%F"<CR>Ea<space> +nnoremap <leader>q :call TaskWarriorAddCurrentLine()<CR> +" nnoremap <C-h> :tabprevious<cr> +" nnoremap <C-l> :tabnext<cr> +" switch between tabs.... +nnoremap <tab> gt +" pandoc command to generate weekly plan page in Firefox (or not, if we just +" wish to refresh) +nnoremap <leader>w :!pandoc /home/lemon/Documents/Notes/MOD/Projects/weekly_planning.md --css /home/lemon/.local/share/pandoc/templates/mystyles.css -s -o /tmp/toss.html; firefox /tmp/toss.html &<cr> +nnoremap <leader>W :!pandoc /home/lemon/Documents/Notes/MOD/Projects/weekly_planning.md --css /home/lemon/.local/share/pandoc/templates/mystyles.css -s -o /tmp/toss.html<cr> +" Open vimrc +nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $HOME/.vim/vimrc<cr> " Place timestamps, be it date (YYYY-MM-DD) or time (HH:MM:SS). if (exists("*strftime")) noremap <silent> <leader>date "=strftime("%F")<CR>p9h noremap <silent> <leader>time "=strftime("%X")<CR>p7h endif -" -" Execute the current line with BASH. -noremap <silent> <leader>rl :.w !bash<CR> -" Run the current file with PERL, Python, BASH, or a Bourne Shell derivative. -noremap <silent> <leader>rpl :!clear; perl %<CR> -noremap <silent> <leader>rpy :!clear; python %<CR> -noremap <silent> <leader>rb :!clear; bash %<CR> -noremap <silent> <leader>rs :!clear; sh %<CR> - -" Disable arrow keys for normal mode. -noremap <up> <Nop> -noremap <down> <Nop> -noremap <left> <Nop> -noremap <right> <Nop> - -" Disable arrow keys for insert mode. -inoremap <up> <Nop> -inoremap <down> <Nop> -inoremap <left> <Nop> -inoremap <right> <Nop> - -" Disable arrow keys for visual mode. -vnoremap <up> <Nop> -vnoremap <down> <Nop> -vnoremap <left> <Nop> -vnoremap <right> <Nop> - -" Disable arrow keys for command mode. -cnoremap <up> <Nop> -cnoremap <down> <Nop> -cnoremap <left> <Nop> -cnoremap <right> <Nop> - -" this needs to be here when using vim native package manager: -" https://github.com/dracula/vim/issues/161 -"packadd! dracula | colorscheme dracula - -" ignore wrapping. you can move to the visual start of end of a line with `g0` -" and `g$`, respectively. -noremap j gj -noremap k gk -" - -" These do strange things to centering of text, etc. -"set sidescrolloff=999 -"set scrolloff=999 - -set shell=/bin/sh -set hi=500 -set novisualbell -set nonumber "show line numbers -set wildmenu "enable a menu that shows tab completion options in the status bar -set wildchar=<TAB> -set showmatch "highlights matching brackets on cursor hover -set ruler "show cursor position in status bar -set showcmd "shows the normal mode command before it gets executed +" Place timestamps, be it date (YYYY-MM-DD) or time (HH:MM:SS). +if (exists("*strftime")) + noremap <silent> <leader>date "=strftime("%F")<CR>p9h + noremap <silent> <leader>time "=strftime("%X")<CR>p7h +endif +" Generate ctags for current working directory +nnoremap <leader>tt :silent !ctags -R . <CR>:redraw!<CR> +" notes stuff - from https://www.edwinwenink.xyz/posts/43-notes_tagging/ +" Go to index of notes and set working directory to my notes +nnoremap <leader>ni :e $NOTES_DIR/index.md<CR>:cd $NOTES_DIR<CR> +" related to https://oleksii.shmalko.com/2014/using-vim-as-c-cpp-ide/ +" to enable putting a config file in the proejct directory +" clear search highlights +nnoremap <leader><space> :noh<cr>:call clearmatches()<cr> +nnoremap <leader><C-p> :<C-u>FZF!<CR> +nnoremap <C-p>p :Files<CR> +nnoremap <C-p>g :GitFiles<CR> +nnoremap <leader>o :Tags<CR> +nnoremap <leader>h :History<CR> +nnoremap <silent> <leader>0 :Files<CR> +nnoremap <silent> <leader>; :BLines<CR> +nnoremap <silent> <leader>l :Lines<CR> +nnoremap <silent> <leader>o :BTags<CR> +nnoremap <C-p>b :Buffers<CR> +nnoremap <silent> <leader>? :History:<CR> +nnoremap <silent> <leader>/ :execute 'Ag ' . input('Ag/')<CR> +nnoremap <silent> <leader>ft :Filetypes<CR> +nnoremap <silent> <leader>CC :Commands<CR> +" Open quickfix list in a right vertical split (good for Ngrep results) +command! Vlist botright vertical copen | vertical resize 50 +nnoremap <leader>v : Vlist<CR> +" }}} +" Options {{{ +set clipboard=unnamed,unnamedplus " just past in with out needing "* +set autoread +set backspace=indent,eol,start +set exrc +set cuc +set secure +set scrolloff=1 +set history=799 set encoding=utf-8 -set fileformats=unix,dos,mac -set nohlsearch "highlights searches -set incsearch "incremental search (searches character by character) -set ignorecase "ignores the case of a search -set smartcase "only ignores case if there are no capital letters in search (only works after ignorecase has been set) -set tabstop=4 "the amount of spaces that vim will equate to a tab character -set softtabstop=4 "like tabstop, but for editing operations (insert mode) -set splitbelow " split horiz below +set wrap +set wrapmargin=0 +set wildignore=**/__pycache*/** +set wildoptions=pum +set wildmenu +set wildchar=<TAB> +set showmatch +set ruler +set showcmd +set nohlsearch +set incsearch +set ignorecase +set smartindent +set smartcase +set tabstop=4 +set softtabstop=4 +set shiftwidth=4 +set splitbelow set noswapfile -set splitright " split new to the right when doing vertical -set shiftwidth=4 "used for autoindent and << and >> operators in normal mode -set autoindent "copies indent from current line to the next line -set expandtab "tabs will expand to whitespace characters -set esckeys "allows function keys to be recognized in Insert mode -set ttimeoutlen=20 "timeout for a key code mapping -set timeoutlen=1000 "time(ms) to wait for key mappings +set nobackup +set splitright +set autoindent +set expandtab set hidden -set t_Co=256 -"set t_Co=0 - switches off all colours set path+=** +" set relativenumber +" set number set more +set signcolumn=number set colorcolumn=0 set equalalways set showmode -set nobackup -set listchars=tab:»→,trail:␣ -set grepprg=/usr/local/bin/ag - -" i don't bother with folding, but it's here if i need it. +set nolist +set listchars=tab:»-,trail:␣,leadmultispace:---+,eol:\\U000021b5 +set shortmess+=c +set tags+=./tags +set background=light +set completeopt=menuone,longest +" }}} +" Function to allow adding a line of text to taskwarrior {{{ +function! TaskWarriorAddCurrentLine() + let current_line = getline('.') + silent execute ":!task add " . shellescape(current_line) + redraw! + echo "Task added: " . current_line + delete +endfunction +" }}} +" Folding {{{ if has('folding') - set foldmethod=marker - set foldmarker=#\ {{{,#\ }}} + set foldmethod=marker " default + " set foldmethod=syntax +" set foldmarker=#\ {{{,#\ }}} set viewoptions=folds,options,cursor,unix,slash endif - -" from https://www.reddit.com/r/vim/comments/f5gi2g/vim_notetaking_automatic_link_creation_between/ -" copies a link from file from previous buffer for pasting into -" next buffer with "ap -function! s:copy_filename_as_mdlink() - let fname=expand("%") - let @a="[" . fname . "](./" . fname. ")" -endfunction -autocmd BufLeave * call s:copy_filename_as_mdlink() - -" vim-plug -call plug#begin('~/.vim/plugged') +" disable folding by default with vim-markdown +let g:vim_markdown_folding_disabled = 1 +" }}} +" Remaps {{{ +let @x = 'o- [ ] ' +noremap <silent> J 10j +noremap <silent> K 10k +" macro to go to end of sentence and add a line break (for +" one-line-per-sentence vimming...) +let @s = ")i\<BS>\<CR>\<Esc>" +" remap :W to :w - :W was previous Windows in fzf +command! W w +" Open Fern with Ctrl-N +nnoremap <C-n> :Fern -drawer .<CR> <C-w>l +" }}} +" Plugins {{{ +call plug#begin() +"Plug 'vim-scripts/AutoComplPop' +Plug 'lambdalisue/fern.vim', +Plug 'altercation/vim-colors-solarized', +Plug 'tpope/vim-rails', +Plug 'vim-ruby/vim-ruby', +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' +Plug 'ayu-theme/ayu-vim' +Plug 'airblade/vim-tailwind' +Plug 'vim-perl/vim-perl', { 'for': 'perl', 'do': 'make clean carp dancer highlight-all-pragmas moose test-more try-tiny' } Plug 'morhetz/gruvbox' +Plug 'eemed/sitruuna.vim' +" Plug 'sheerun/vim-polyglot' +Plug 'preservim/vim-markdown' +Plug 'mhinz/vim-signify' +Plug 'vim-test/vim-test' Plug 'ledger/vim-ledger' -"Plug 'prabirshrestha/vim-lsp' -Plug 'ledger/vim-ledger' -Plug 'alok/notational-fzf-vim' -Plug 'sheerun/vim-polyglot' -"Plug 'neoclide/coc.nvim', {'branch': 'release'} -Plug 'tpope/vim-commentary' -Plug 'godlygeek/tabular' -Plug 'davidhalter/jedi' +Plug 'fatih/vim-go', {'do': ':GoUpdateBinaries' } Plug 'tpope/vim-dispatch' -Plug 'tpope/vim-fugitive' -Plug 'tpope/vim-sensible' -Plug 'tpope/vim-unimpaired' Plug 'tpope/vim-surround' -Plug 'dense-analysis/ale' -Plug 'vim-test/vim-test' -Plug 'jlanzarotta/bufexplorer' -Plug 'preservim/nerdtree' -Plug 'mhinz/vim-signify' -Plug 'mattn/emmet-vim' -Plug 'junegunn/fzf' -Plug 'altercation/vim-colors-solarized' -Plug 'junegunn/fzf.vim' -Plug 'SirVer/Ultisnips' +Plug 'tpope/vim-commentary' +Plug 'tpope/vim-unimpaired' +Plug 'tpope/vim-fugitive' +Plug 'SirVer/UltiSnips' Plug 'honza/vim-snippets' -Plug 'pangloss/vim-javascript' -Plug 'fatih/vim-go', { 'tag': '*' } -Plug 'powerman/vim-plugin-AnsiEsc' -"Plug 'majutsushi/tagbar' +Plug 'dense-analysis/ale' call plug#end() - -" vim-test - -" use vim-dispatch to run tests in the quickfix window -" from Modern Vim Ch.4 -" the mappings below are from vim-test -" https://github.com/vim-test/vim-test -" dispatch opens send test output to quickfix window -" let test#strategy = "vimterminal" -let test#strategy = "basic" -let test#python#runner = "pytest" -let test#vim#term_position = "topleft 10" -" let test#python#pytest#options = '-vvv --tb=short' -let test#python#pytest#options = '--tb=short' -let test#go#runner = 'gotest' -"let test#go#gotest#options = '-v' -" To run mypy using vim-dispath -with Dispatch -autocmd FileType python let b:dispatch = 'mypy --ignore-missing-imports' - -" notational-fzf-vim -let g:nv_search_paths = ['~/Notes', '~/Notes/Archive'] - -" jedo-vim -let g:jedi#goto_command = "<leader>d" -let g:jedi#goto_assignments_command = "<leader>g" -let g:jedi#goto_stubs_command = "<leader>s" -let g:jedi#goto_definitions_command = "" -let g:jedi#documentation_command = "K" -let g:jedi#usages_command = "<leader>n" -let g:jedi#completions_command = "<C-Space>" -let g:jedi#rename_command = "<leader>r" - -" test -nmap <silent> t<C-n> :TestNearest<CR> -nmap <silent> t<C-f> :TestFile<CR> -nmap <silent> t<C-s> :TestSuite<CR> -"nmap <silent> t<C-l> :TestLast<CR> -nmap <silent> <S-F10> :TestLast<CR> -nmap <silent> t<C-g> :TestVisit<CR> - -" CoC extensions -"let g:coc_global_extensions = ['coc-tsserver', 'coc-pyright', 'coc-html'] +" }}} +" vim-tailwind {{{ +function! s:is_tailwind() + return !empty(findfile('tailwind.config.js', '.;')) || + \ !empty(findfile('theme/static_src/tailwind.config.js', '.;')) +endfunction -" Coc Use `[g` and `]g` to navigate diagnostics -" Coc Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -" nmap <silent> [g <Plug>(coc-diagnostic-prev) -" nmap <silent> ]g <Plug>(coc-diagnostic-next) +nmap <silent> <buffer> gk <Plug>(tailwind-lookup) -" " CoC GoTo code navigation. -" nmap <silent> gd <Plug>(coc-definition) -" nmap <silent> gy <Plug>(coc-type-definition) -" nmap <silent> gi <Plug>(coc-implementation) -" -" ALE ale config +autocmd BufEnter *.html,*.slim if s:is_tailwind() | + \ setlocal omnifunc=tailwind#Complete | + \ endif +" }}} +" ALE {{{ +let g:ale_enabled = 1 +let g:ale_set_balloons = 0 let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' -let g:ale_sign_error = '✘' -let g:ale_sign_warning = '⚠' -let g:ale_lint_on_text_changed = 'never' - - +let g:ale_sign_error = '!' +let g:ale_sign_warning = '?' +let g:ale_lint_on_text_changed = 1 let g:ale_hover_cursor = 1 -let g:ale_enabled = 1 +let g:ale_virtualtext_cursor = 'disabled' let g:ale_sign_column_always = 1 let g:ale_open_list = 0 let g:ale_set_highlights = 1 let g:ale_set_signs = 1 let g:ale_set_loclist = 1 -let g:ale_set_quickfix = 0 +let g:ale_set_quickfix = 1 let g:ale_echo_cursor = 1 -let g:ale_echo_msg_error_str = 'Error' -let g:ale_echo_msg_format = '%linter% - %code: %%s' -let g:ale_loclist_msg_format = '%linter% - %code: %%s' -let g:ale_echo_msg_warning_str = 'Warning' -let g:ale_linters = {'python': ['flake8', 'mypy'], +let g:ale_echo_msg_error_str = 'ALE Error' +let g:ale_echo_msg_format = 'ALE: %linter% - %code: %%s' +let g:ale_loclist_msg_format = 'ALE: %linter% - %code: %%s' +let g:ale_echo_msg_warning_str = 'ALE Warning' +let g:ale_linters = {'python': ['pyright', 'flake8', 'mypy'], \ 'ocaml': ['merlin'], -\ 'cpp': ['clang'], +\ 'javascript': ['eslint'], +\ 'cpp': ['clangd'], \ 'yaml': ['yamllint'], -\ 'c': ['clang'], +\ 'c': ['clangd'], \ 'go': ['gopls', 'golint', 'gofmt'], \} let g:ale_fixers = { -\ 'python': ['isort', 'yapf', 'black'], -\ 'go': ['gofmt'], +\ 'python': ['autoimport', 'isort', 'yapf', 'black'], +\ 'javascript': ['eslint'], +\ 'go': ['gofmt', 'goimports', 'gopls'], +\ 'cpp': ['clang-format'], +\ 'c': ['clang-format'], \ 'rust': ['rustfmt'] \ } let g:ale_python_mypy_ignore_invalid_syntax = 1 @@ -264,99 +222,54 @@ let g:ale_python_mypy_options = '--config-file mypy.ini' " let g:ale_sign_error = '>>' let g:ale_fix_on_save = 1 let g:ale_linters_explicit = 0 -nmap <silent> gr <Plug>(coc-references) - -" Use K to show documentation in preview window. -"nnoremap <silent> K :call <SID>show_documentation()<CR> - -" function! s:show_documentation() -" if (index(['vim','help'], &filetype) >= 0) -" execute 'h '.expand('<cword>') -" elseif (coc#rpc#ready()) -" call CocActionAsync('doHover') -" else -" execute '!' . &keywordprg . " " . expand('<cword>') -" endif -" endfunction -" -"" Quick Editing vimrc -nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $MYVIMRC<cr> - -" Highlight the symbol and its references when holding the cursor. -" autocmd CursorHold * silent call CocActionAsync('highlight') - -" clear search highlights -nnoremap <leader><space> :noh<cr>:call clearmatches()<cr> - -" previews in netrw -let g:netrw_preview = 1 - -" journal stuff -autocmd BufNewFile,BufReadPost *.md map <leader>jj <Esc>:r! date +" - \%H:\%M: "<ENTER>kJA<Esc>$<space><Esc> -autocmd BufNewFile,BufReadPost *.md map <leader>jd <Esc>:r! date +"(\%Y-\%m-\%dT\%H:\%M)"<ENTER>i<backspace><space><Esc> - -" switch off Coc with Markdown -autocmd FileType markdown let b:coc_suggest_disable = 1 - -syntax on "turn syntax highlighting on -filetype plugin indent on "load plugin and indent files associated a detected filetype -runtime macros/matchit.vim "allows jumping between brackets with % in normal mode - -" Go stuff -let g:go_highlight_fields = 1 -let g:go_highlight_functions = 1 -let g:go_highlight_function_calls = 1 -let g:go_highlight_extra_types = 1 -let g:go_highlight_operators = 1 -let g:go_doc_keywordprg_enabled = 1 -let g:go_list_height = 0 -let g:go_highlight_operators = 1 -let g:go_highlight_function_parameters = 1 -let g:go_doc_max_height = 50 -let g:go_doc_popup_window = 1 -let g:go_list_height = 10 - - -" vim-go debugger window settings -let g:go_debug_windows = { - \ 'vars': 'leftabove 40vnew', - \ 'stack': 'leftabove 20new', - \ 'goroutines': 'botright 10new', - \ 'out': 'botright 5new', -\ } - -" vim-go and gopls -let g:go_def_mode='gopls' -let g:go_info_mode='gopls' -let g:go_play_browser_command = 'firefox %URL% &' -let g:go_test_show_name = 1 -let g:go_auto_type_info = 1 -let test#go#runner = 'gotest' -let g:go_term_mode = "split" -let g:go_term_height = 50 -let g:go_highlight_fields = 1 -let g:go_highlight_functions = 1 +let g:ale_completion_enabled = 0 +set omnifunc=ale#completion#OmniFunc +" }}} +" :grep use ripgrep {{{ +if executable('rg') + set grepprg=rg\ --color=never\ --vimgrep +endif -"autocmd FileType go nmap <leader>r :w<CR>:split <bar> terminal go run %<CR> -autocmd FileType go nmap <leader>R :GoRun<CR> -" highlights the variable in the file for you.. -"let g:go_auto_sameids = 1 -" auto import... -let g:go_fmt_command = "goimports" -" automatic type info on cursor -let g:go_auto_type_info = 1 -let g:go_snippet_engine = "ultisnips" -au Filetype go nmap <leader>ga <Plug>(go-alternate-edit) -au Filetype go nmap <leader>gah <Plug>(go-alternate-split) -au Filetype go nmap <leader>gav <Plug>(go-alternate-vertical) -au FileType go nmap <F8> :GoTestFunc -short<cr> -au FileType go nmap <F10> :GoTest -short<cr> -au FileType go nmap <F9> :DlvToggleBreakpoint<CR> -au FileType go nmap <S-F9> :DlvTest<CR> -au FileType go nmap <F11> :DlvDebug<CR> -au FileType go nmap <S-F5> :GoRename<CR> +" and search with ripgrep +command! -bang -nargs=* Rg + \ call fzf#vim#grep( + \ 'rg --column --line-number --no-heading --color=always --ignore-case '.shellescape(<q-args>), 1, + \ <bang>0 ? fzf#vim#with_preview('up:60%') + \ : fzf#vim#with_preview('right:50%:hidden', '?'), + \ <bang>0) -" FZF +nnoremap <C-p>a :Rg +" }}} +" 'Notes Grep' with ripgrep (see grepprg) {{{ +" -i case insensitive +" -g glob pattern +" ! to not immediately open first search result +"command! -nargs=1 Ngrep :silent grep! "<args>" -i -g '*.md' $NOTES_DIR | execute ':redraw!' +command! -nargs=1 Ngrep vimgrep "<args>" $NOTES_DIR/**/*.md +nnoremap <leader>nn :Ngrep +" }}} +" vim-test {{{ +nmap <silent> tn :TestNearest<CR> +nmap <silent> tf :TestFile<CR> +nmap <silent> ts :TestSuite<CR> +nmap <silent> tl :TestLast<CR> +nmap <silent> <leader>tv :TestVisit<CR> +let test#strategy = "basic" +let test#python#pytest#options = '-q -s' +let test#python#runner = 'pytest' +let test#vimterminal#term_position = "belowright" +" }}} +" Titbits {{{ +" " Increment an ordered (numbered) list with <leader><cr> +" inoremap <leader><cr> <esc>yyp<C-a> +" " sudo write +" command! S :w !sudo tee % + +"nnoremap <Tab> % +nnoremap <C-@> :call system("wl-copy", @")<CR> +xnoremap <silent> <C-@> :w !wl-copy<CR><CR> +" }}} +" FZF {{{ " This is the default extra key bindings let g:fzf_action = { \ 'ctrl-t': 'tab split', @@ -384,110 +297,107 @@ let g:fzf_colors = " (https://github.com/zenbro/dotfiles/blob/master/.nvimrc#L151-L187) let g:fzf_nvim_statusline = 0 " disable statusline overwriting -" command history is :History: nnoremap <C-s> :GFiles!<CR> - nnoremap <leader><C-p> :<C-u>FZF!<CR> - nnoremap <leader>t :Files<CR> - nnoremap <leader>o :Tags<CR> - nnoremap <leader>h :History<CR> - nnoremap <silent> <leader>0 :Files<CR> - nnoremap <silent> <leader>; :BLines<CR> - nnoremap <silent> <leader>l :Lines<CR> - nnoremap <silent> <leader>o :BTags<CR> - nnoremap <silent> <leader>bu :Buffers<CR> - nnoremap <silent> <leader>? :History:<CR> - nnoremap <silent> <leader>/ :execute 'Ag ' . input('Ag/')<CR> - nnoremap <silent> <leader>P :call SearchWordWithAg()<CR> - vnoremap <silent> <leader>P :call SearchVisualSelectionWithAg()<CR> - nnoremap <silent> <leader>ft :Filetypes<CR> - nnoremap <silent> <leader>CC :Commands<CR> imap <C-x><C-f> <plug>(fzf-complete-file-ag) imap <C-x><C-l> <plug>(fzf-complete-line) - -" Search with ripgrep -command! -bang -nargs=* Rg - \ call fzf#vim#grep( - \ 'rg --column --line-number --no-heading --color=always --ignore-case '.shellescape(<q-args>), 1, - \ <bang>0 ? fzf#vim#with_preview('up:60%') - \ : fzf#vim#with_preview('right:50%:hidden', '?'), - \ <bang>0) - -nnoremap <C-p>a :Rg - -"" Quick Editing vimrc -nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $MYVIMRC<cr> - -" dracula (must be set before colorscheme) -"let g:dracula_colorterm = 0 -"let g:dracula_bold = 1 -"let g:dracula_italic = 0 " this has to be set to 0 to avoid lots of erroneous highlighting (https://github.com/dracula/vim/issues/219) -"let g:dracula_underline = 1 - - -" Colorscheme - -" this stuff from https://github.com/morhetz/gruvbox/wiki/Terminal-specific -"Use e 24-bit (true-color) mode in Vim/Neovim when outside tmux. +" }}} +" Colorscheme {{{ +" This is imported from the old ephemera.vim file which has now been removed +" +" I got the following from gruvbox docs +"Use 24-bit (true-color) mode in Vim/Neovim when outside tmux. "If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and use tmux's 24-bit color support "(see < http://sunaku.github.io/tmux-24bit-color.html#usage > for more information.) -if (empty($TMUX)) - if (has("nvim")) - "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > - let $NVIM_TUI_ENABLE_TRUE_COLOR=1 - endif - "For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 > - "Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd > - " < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 > - if (has("termguicolors")) - set termguicolors - endif +if (has("nvim")) +"For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > + let $NVIM_TUI_ENABLE_TRUE_COLOR=1 +endif +"For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 > +"Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd > +" < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 > +if (has("termguicolors")) + set termguicolors endif -syntax enable -let g:solarized_termcolors=256 - -let g:gruvbox_termcolors=256 -let g:gruvbox_contrast_dark='hard' -let g:gruvbox_contrast_light='hard' -let g:gruvbox_hls_cursor='orange' -let g:gruvbox_sign_column='bg0' -let g:gruvbox_number_column='bg0' -let g:gruvbox_invert_signs='0' -let g:gruvbox_improved_strings='0' -set background=dark -colorscheme industry -"colorscheme delek -" -" manual highlights -" highlight Visual ctermfg=black ctermbg=LightMagenta -" highlight SignColumn ctermbg=black ctermfg=white -" highlight Comment ctermfg=DarkGray -" highlight DiffAdd term=bold ctermfg=yellow ctermbg=black -" highlight DiffDelete term=bold ctermfg=red ctermbg=black -" highlight DiffChange term=bold ctermfg=black ctermbg=DarkGreen - - -map <F7> :if exists("g:syntax_on") <Bar> -\ syntax off <Bar> -\ else <Bar> -\ syntax enable <Bar> -\ endif <CR> - -augroup general - autocmd! - "keep equal proportions when windows resized - autocmd VimResized * wincmd = - "save cursor position in a file - autocmd BufReadPost * if line("'\"") > 1 && line("'\"") - \ <= line("$") | exe "normal! g'\"" | endif +"ayu theme +" let ayucolor="light" " for light version of theme +" let ayucolor="mirage" " for mirage version of theme +let ayucolor="dark" " for dark version of theme + +"colorscheme gruber-darker +let g:gruvbox_contrast_dark = "hard" +let g:gruvbox_italicize_strings = 1 +let g:gruvbox_improved_strings = 1 +let g:gruvbox_improved_warnings = 1 +let g:gruvbox_invert_indent_guides = 1 +let g:gruvbox_invert_signs = 1 +"colorscheme evening +"colorscheme sitruuna +"colorscheme ayu +colorscheme solarized +"colorscheme gruvbox +" }}} +" GPG files {{{ +" from https://vim.fandom.com/wiki/Edit_gpg_encrypted_files +" Don't save backups of *.gpg files +set backupskip+=*.gpg +" To avoid that parts of the file is saved to .viminfo when yanking or +" deleting, empty the 'viminfo' option. +set viminfo= + +augroup encrypted + au! + " Disable swap files, and set binary file format before reading the file + autocmd BufReadPre,FileReadPre *.gpg + \ setlocal noswapfile bin + " Decrypt the contents after reading the file, reset binary file format + " and run any BufReadPost autocmds matching the file name without the .gpg + " extension + autocmd BufReadPost,FileReadPost *.gpg + \ execute "'[,']!gpg --decrypt --default-recipient-self" | + \ setlocal nobin | + \ execute "doautocmd BufReadPost " . expand("%:r") + " Set binary file format and encrypt the contents before writing the file + autocmd BufWritePre,FileWritePre *.gpg + \ setlocal bin | + \ '[,']!gpg --encrypt --default-recipient-self + " After writing the file, do an :undo to revert the encryption in the + " buffer, and reset binary file format + autocmd BufWritePost,FileWritePost *.gpg + \ silent u | + \ setlocal nobin augroup END - -augroup languages +" }}} +" Golang {{{ +augroup golang autocmd! - autocmd BufNewFile,BufRead *.bash set syntax=sh - autocmd FileType python xnoremap <leader>r <esc>:'<,'>:w !python3<CR> - autocmd FileType go set noexpandtab - autocmd FileType html :syntax sync fromstart - autocmd FileType html,javascript,css,json,yaml,sh - \ setlocal ts=2 sts=2 sw=2 expandtab -augroup ENDj + autocmd FileType go + \ set tabstop=8 | + \ set softtabstop=8 | + \ set shiftwidth=8 +augroup END +" }}} +" GitFZF {{{ +" from https://git.sr.ht/~sircmpwn/dotfiles/tree/master/item/.vimrc +function! GitFZF() + let path = trim(system('cd '.shellescape(expand('%:p:h')).' && git rev-parse --show-toplevel')) + exe 'FZF ' . path +endfunction +command! GitFZF call GitFZF() +nnoremap <leader><C-f> :GitFZF<CR> +" }}} +" Switching off colours {{{ +"syntax off +" hi Visual term=reverse ctermbg=7 ctermfg=black guifg=black guibg=LightPink +" hi SpellBad term=reverse ctermbg=224 gui=undercurl guisp=Red guibg=Red +" hi SpellCap term=reverse ctermbg=224 gui=undercurl guisp=Red guibg=Red +" hi SpellRare term=reverse ctermbg=224 gui=undercurl guisp=Red guibg=Blue +" hi Search term=reverse ctermbg=11 guifg=black guibg=Green +"}}} +" Turn spelling on for text files {{{ +" from - https://dmerej.info/blog/post/syntax-highlighting-is-useless/ +augroup textfiles + autocmd! + autocmd filetype markdown setlocal spell spelllang=en +augroup end +" }}} @@ -8,9 +8,9 @@ xwallpaper --center $HOME/Picures/Wallpapers/openbsd_wallpaper1.jpg & . ~/.profile xset -b -export GPG_TTY="$(tty)" -export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) -gpgconf --launch gpg-agent +#export GPG_TTY="$(tty)" +#export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) +#gpgconf --launch gpg-agent #PS1='$PWD# ' #export LSCOLORS=fxexcxdxbxegedabagacad @@ -26,4 +26,5 @@ xinput set-prop "/dev/wsmouse" "WS Pointer Wheel Emulation Axes" 6 7 4 5 xsetroot - solid dimgray #exec fvwm -exec i3 +#exec i3 +exec ratpoison |