Introduce templates. Cleanup.

This commit is contained in:
Jan Eitzinger 2023-02-14 08:36:53 +01:00
parent c53bd1583e
commit 53b7ef6140
5 changed files with 375 additions and 132 deletions

206
dot_muttrc Normal file
View File

@ -0,0 +1,206 @@
source ~/.mutt/gruvbox-dark.muttrc
# Paths ----------------------------------------------
set folder = ~/.mail # mailbox location
# source ~/.mutt/mailboxes
set header_cache = ~/.mutt/cache # where to store headers
set header_cache_backend = kyotocabinet
set message_cachedir = $header_cache # where to store bodies
set certificate_file = ~/.mutt/certificates # where to store certs
set mailcap_path = ~/.mutt/mailcap # entries for filetypes
set tmpdir = ~/.mutt/tmp # where to keep temp files
## Mutt Aliases
source ~/.mutt/aliases.muttrc
## Abook
set query_command= "abook --mutt-query '%s'"
# Basic Options --------------------------------------
set wait_key = no # shut up, mutt
set mbox_type = Maildir # mailbox type
set timeout = 1 # idle time before scanning
set sleep_time = 0 # idle time before scanning
set mail_check = 0 # minimum time between scans
unset move # gmail does that
set delete # don't ask, just do
unset confirmappend # don't ask, just do!
set quit # don't ask, just do!!
unset mark_old # read/new is good enough for me
set beep_new # bell on new mails
set pipe_decode # strip headers and eval mimes when piping
set thorough_search # strip headers and eval mimes before searching
set sidebar_visible = no
# Status Bar -----------------------------------------
set status_chars = " *%A"
set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"
# Header Options -------------------------------------
ignore * # ignore all headers
unignore from date subject to cc tags
unhdr_order * # some distros order things by default
hdr_order from date subject to cc tags # and in this order
# Index View Options ---------------------------------
set date_format = "%d/%m/%Y"
set index_format = "[%Z] %D %-20.20F %s"
set sort = threads # like gmail
set sort_aux = reverse-last-date-received # like gmail
set collapse_unread = yes
set uncollapse_jump = yes
folder-hook . "exec collapse-all"
set sort_re # thread based on regex
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
save-hook . '='
# Pager View Options ---------------------------------
set pager_index_lines = 10 # number of index lines to show
set pager_stop # don't go to next message automatically
set menu_scroll # scroll in menus
set tilde # show tildes like in vim
unset markers # no ugly plus signs
set smart_wrap
set menu_context = 5
set menu_move_off = no
set pager_context = 5
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
alternative_order text/plain text/calendar text/enriched text/html
auto_view text/html
auto_view text/calendar
auto_view application/ics
set show_multipart_alternative = "info"
# Key Bindings ---------------------------------
bind generic z noop
bind index,pager,attach g noop
bind index,pager d noop
bind index,pager s noop
bind index,pager c noop
bind generic,pager t noop
bind generic z noop
bind index,pager,attach g noop
bind index,pager d noop
bind index,pager s noop
# bind index,pager c noop
bind generic,pager t noop
bind index,pager e noop
# by default, use mailbox
set realname = "Jan Eitzinger"
set spoolfile = "+moebius/INBOX"
source ~/.mutt/accounts/moebius
# when changing into other mailboxes, use different adresses etc.
# folder-hook moebius/* source ~/.mutt/accounts/moebius
# folder-hook fau/* source ~/.mutt/accounts/fau
macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.mutt/accounts/moebius<enter><change-folder>!<enter>' "switch to moebius"
macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.mutt/accounts/fau<enter><change-folder>!<enter>' "switch to fau"
bind generic,index,pager <tab> next-page
bind generic gg first-entry
bind generic,index G last-entry
bind pager gg top
bind pager G bottom
bind pager k previous-line
bind pager j next-line
bind generic zt current-top
bind generic zz current-middle
bind generic zb current-bottom
bind index <space> collapse-thread
# bind index za collapse-thread
bind index zA collapse-all
bind index,pager N search-opposite
macro index,pager A "<pipe-message>abook --add-email-quiet<return>" "Add this sender to Abook"
bind editor <Tab> complete-query
# Go to folder...
macro index,pager gf "<change-folder>?" "open mailbox..."
bind index,pager c change-folder
# Ctrl-R to mark all as read
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
#
# Saner copy/move dialogs
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
# View attachments properly.
bind attach <return> view-mailcap
bind index,pager R group-reply
bind index,pager e resend-message
bind compose p postpone-message
bind index p recall-message
macro index a "<limit>all\n" "show all messages (undo limit)"
# Actions
# ----------------------------------------------------
# macro index A ":set confirmappend=no delete=yes\n<save-message>=archive\n<sync-mailbox>:set confirmappend=yes delete=ask-yes\n"
macro index,pager dd "<delete-message><sync-mailbox>" "move message to trash"
macro index,pager dt "<delete-thread><sync-mailbox>" "move thread to trash"
macro index,pager ss ":macro browser \\015 \"\<select-entry\>\<sync-mailbox\>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015:macro browser q \"<exit>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015<save-message>?" "save message to a mailbox"
macro index st ":macro browser \\015 \"\<select-entry\>\<sync-mailbox\>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015:macro browser q \"<exit>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015'q<untag-pattern>.\\015\"\015<mark-message>q<enter><untag-pattern>.<enter><tag-thread><tag-prefix-cond><save-message>?" "save thread to a mailbox"
macro index \;s ":macro browser \\015 \"\<select-entry\>\<sync-mailbox\>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015:macro browser q \"<exit>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015<tag-prefix-cond><save-message>?" "save tagged messages to a mailbox"
macro pager st ":macro browser \\015 \"\<select-entry\>\<sync-mailbox\>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015<display-message>\"\015:macro browser q \"<exit>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015'q<untag-pattern>.\\015<display-message>\"\015<exit><mark-message>q<enter><untag-pattern>.<enter><tag-thread><tag-prefix><save-message>?" "save thread to a mailbox"
# macro index,pager cc ":macro browser \\015 \"\<select-entry\>\<sync-mailbox\>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015:macro browser q \"<exit>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015<copy-message>?" "copy message to a mailbox"
# macro index ct ":macro browser \\015 \"\<select-entry\>\<sync-mailbox\>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015:macro browser q \"<exit>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015'q<untag-pattern>.\\015\"\015<mark-message>q<enter><untag-pattern>.<enter><tag-thread><tag-prefix-cond><copy-message>?" "copy thread to a mailbox"
# macro index \;c ":macro browser \\015 \"\<select-entry\>\<sync-mailbox\>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015:macro browser q \"<exit>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015\"\015<tag-prefix-cond><copy-message>?" "copy tagged messages to a mailbox"
# macro pager ct ":macro browser \\015 \"\<select-entry\>\<sync-mailbox\>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015<display-message>\"\015:macro browser q \"<exit>:bind browser \\\\015 select-entry\\015:bind browser q exit\\015'q<untag-pattern>.\\015<display-message>\"\015<exit><mark-message>q<enter><untag-pattern>.<enter><tag-thread><tag-prefix><copy-message>?" "copy thread to a mailbox"
bind generic tt tag-entry
bind index tT tag-thread
bind pager tt tag-message
macro pager tT "<exit><mark-message>q<enter><tag-thread>'q<display-message>" "tag-thread"
macro index,pager gx "<pipe-message>urlview<Enter>" "call urlview to extract URLs out of a message"
macro attach,compose gx "<pipe-entry>urlview<Enter>"
# notmuch integration
macro index \Cf \
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter> \
<shell-escape>notmuch-mutt -r --prompt search<enter> \
<change-folder-readonly>/home/jan/.cache/notmuch/mutt/results<enter> \
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
"notmuch: search mail"
# Compose View Options -------------------------------
set use_from = yes
set use_envelope_from = yes # which from?
set sig_dashes # dashes before sig
set edit_headers # show headers when composing
set fast_reply # skip to compose when replying
set fcc_attach # save attachments with the body
unset mime_forward # forward attachments as part of body
set forward_format = "Fwd: %s" # format of subject when forwarding
set forward_decode # decode when forwarding
set attribution = "On %d, %n wrote:" # format of quoting header
set reply_to # reply to Reply to: field
set reverse_name # reply as whomever it was to
set include=yes # include message in replies
set forward_quote # include message in forwards
set editor = "vim"
set charset = "utf-8"
set send_charset = "utf-8"
set assumed_charset = "utf-8"
set history_remove_dups = yes
# set smtp_url = "smtp://localhost:25"
# GPG config
#set crypt_use_gpgme = yes
#set pgp_use_gpg_agent = yes
#set pgp_sign_as = 5A145EA24232980E243A2DAC37CD42644BBC5F03
#set pgp_self_encrypt_as = 5A145EA24232980E243A2DAC37CD42644BBC5F03
#set pgp_self_encrypt = yes
#set smime_default_key = 5A145EA24232980E243A2DAC37CD42644BBC5F03
#set smime_self_encrypt = yes
#set crypt_verify_sig = yes
#set crypt_autosign = yes
#set crypt_opportunistic_encrypt = yes
#set postpone_encrypt
#message-hook '!~g !~G ~b "^-----BEGIN PGP (SIGNED )?MESSAGE"' 'exec check-traditional-pgp'
#

View File

@ -11,21 +11,19 @@ let g:elite_mode=1
source ~/.vim/local.vim source ~/.vim/local.vim
" Plugins {{{ " Plugins {{ "{{{" }}
call plug#begin('~/.vim/plugged') call plug#begin('~/.vim/plugged')
"########### "###########
" Utility " Utility
"########### "###########
Plug '~/.fzf' Plug '~/.fzf'
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } "{{{ Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } "{{ "{{{" }}
let NERDTreeShowHidden=0 let NERDTreeShowHidden=0
let NERDTreeMinimalUI = 1 let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1 let NERDTreeDirArrows = 1
"}}} "{{ "}}}" }}
Plug 'preservim/tagbar', { 'on': 'TagbarToggle' } "{{{ Plug 'preservim/tagbar', { 'on': 'TagbarToggle' }
Plug 'lifepillar/vim-mucomplete' "{{ "{{{" }}
"}}}
Plug 'lifepillar/vim-mucomplete' "{{{
let g:mucomplete#chains = { let g:mucomplete#chains = {
\ 'default': ['c-p', 'omni'], \ 'default': ['c-p', 'omni'],
\ 'markdown': ['keyp', 'thes', 'spel', 'dict'], \ 'markdown': ['keyp', 'thes', 'spel', 'dict'],
@ -38,14 +36,8 @@ inoremap <silent> <plug>(MUcompleteFwdKey) <right>
imap <right> <plug>(MUcompleteCycFwd) imap <right> <plug>(MUcompleteCycFwd)
inoremap <silent> <plug>(MUcompleteBwdKey) <left> inoremap <silent> <plug>(MUcompleteBwdKey) <left>
imap <left> <plug>(MUcompleteCycBwd) imap <left> <plug>(MUcompleteCycBwd)
"}}} "{{ "}}}" }}
"Plug 'sirver/ultisnips' "{{{ Plug 'junegunn/fzf.vim' "{{ "{{{" }}
"let g:UltiSnipsSnippetDirectories =[$HOME.'/.vim/plugged/vim-snippets/UltiSnips']
"let g:UltiSnipsExpandTrigger = "<f9>" " Do not use <tab>
"let g:UltiSnipsListSnippets = "<f10>" " Do not use <tab>
"let g:UltiSnipsJumpForwardTrigger = "<c-b>" " Do not use <c-j>
""}}}
Plug 'junegunn/fzf.vim' "{{{
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } } let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
let g:fzf_preview_window = '' let g:fzf_preview_window = ''
@ -61,12 +53,12 @@ nnoremap <leader>L :Lines<cr>
nnoremap <leader>t :BTags<cr> nnoremap <leader>t :BTags<cr>
nnoremap <leader>T :Tags<cr> nnoremap <leader>T :Tags<cr>
nnoremap <leader>h :Helptags<cr> nnoremap <leader>h :Helptags<cr>
"}}} "{{ "}}}" }}
Plug 'junegunn/vim-easy-align' "{{{ Plug 'junegunn/vim-easy-align' "{{ "{{{" }}
xmap gl <Plug>(EasyAlign) xmap gl <Plug>(EasyAlign)
nmap gl <Plug>(EasyAlign) nmap gl <Plug>(EasyAlign)
"}}} "{{ "}}}" }}
Plug 'easymotion/vim-easymotion' "{{{ Plug 'easymotion/vim-easymotion' "{{ "{{{" }}
let g:EasyMotion_do_mapping = 0 let g:EasyMotion_do_mapping = 0
let g:EasyMotion_smartcase = 1 let g:EasyMotion_smartcase = 1
" map <Leader> <Plug>(easymotion-prefix) " map <Leader> <Plug>(easymotion-prefix)
@ -75,8 +67,8 @@ map <Leader>w <Plug>(easymotion-bd-w)
nmap <Leader>w <Plug>(easymotion-overwin-w) nmap <Leader>w <Plug>(easymotion-overwin-w)
map <Leader>j <Plug>(easymotion-j) map <Leader>j <Plug>(easymotion-j)
map <Leader>k <Plug>(easymotion-k) map <Leader>k <Plug>(easymotion-k)
"}}} "{{ "}}}" }}
Plug 'konfekt/fastfold' "{{{ Plug 'konfekt/fastfold' "{{ "{{{" }}
nmap zuz <Plug>(FastFoldUpdate) nmap zuz <Plug>(FastFoldUpdate)
let g:fastfold_savehook = 1 let g:fastfold_savehook = 1
let g:tex_fold_enabled = 1 let g:tex_fold_enabled = 1
@ -84,10 +76,9 @@ let g:vimsyn_folding = 'af'
let g:javaScript_fold = 1 let g:javaScript_fold = 1
let g:perl_fold = 0 let g:perl_fold = 0
let g:php_folding = 0 let g:php_folding = 0
" }}} " {{ "}}}" }}
Plug 'tpope/vim-unimpaired' "{{{ Plug 'tpope/vim-unimpaired'
"}}} Plug 'mhinz/vim-grepper' "{{ "{{{" }}
Plug 'mhinz/vim-grepper' "{{{
nnoremap <leader>g :Grepper -tool rg<cr> nnoremap <leader>g :Grepper -tool rg<cr>
nnoremap <leader>G :Grepper -tool ag<cr> nnoremap <leader>G :Grepper -tool ag<cr>
@ -100,23 +91,23 @@ let g:grepper.jump = 1
let g:grepper.next_tool = '<leader>g' let g:grepper.next_tool = '<leader>g'
let g:grepper.simple_prompt = 1 let g:grepper.simple_prompt = 1
let g:grepper.quickfix = 0 let g:grepper.quickfix = 0
"}}} "{{ "}}}" }}
Plug 'tpope/vim-dispatch' Plug 'tpope/vim-dispatch'
Plug 'tpope/vim-repeat' Plug 'tpope/vim-repeat'
Plug 'tpope/vim-surround' Plug 'tpope/vim-surround'
Plug 'tpope/vim-eunuch' Plug 'tpope/vim-eunuch'
Plug 'vasconcelloslf/vim-interestingwords' "{{{ Plug 'vasconcelloslf/vim-interestingwords' "{{ "{{{" }}
" nnoremap <silent> <leader>k :call InterestingWords('n')<cr> " nnoremap <silent> <leader>k :call InterestingWords('n')<cr>
" nnoremap <silent> <leader>K :call UncolorAllWords()<cr> " nnoremap <silent> <leader>K :call UncolorAllWords()<cr>
" nnoremap <silent> n :call WordNavigation('forward')<cr> " nnoremap <silent> n :call WordNavigation('forward')<cr>
" nnoremap <silent> N :call WordNavigation('backward')<cr> " nnoremap <silent> N :call WordNavigation('backward')<cr>
"}}} "{{ "}}}" }}
"############################# "#############################
" Generic Programming Support " Generic Programming Support
"############################# "#############################
Plug 'honza/vim-snippets' Plug 'honza/vim-snippets'
Plug 'jiangmiao/auto-pairs' "{{{ Plug 'jiangmiao/auto-pairs' "{{ "{{{" }}
let g:AutoPairsShortcutFastWrap='<C-e>' let g:AutoPairsShortcutFastWrap='<C-e>'
let g:AutoPairsMapSpace = 0 let g:AutoPairsMapSpace = 0
imap <silent> <expr> <space> pumvisible() imap <silent> <expr> <space> pumvisible()
@ -132,15 +123,14 @@ inoremap <silent> <expr> <plug>UltiExpand
\ mucomplete#ultisnips#expand_snippet("\<cr>") \ mucomplete#ultisnips#expand_snippet("\<cr>")
imap <plug>MyCR <plug>UltiExpand<plug>AutoPairsReturn imap <plug>MyCR <plug>UltiExpand<plug>AutoPairsReturn
imap <cr> <plug>MyCR imap <cr> <plug>MyCR
"}}} "{{ "}}}" }}
Plug 'ntpeters/vim-better-whitespace' "{{{ Plug 'ntpeters/vim-better-whitespace' "{{ "{{{" }}
let g:better_whitespace_filetypes_blacklist=['mail', 'diff', 'gitcommit', 'unite', 'qf', 'help'] let g:better_whitespace_filetypes_blacklist=['mail', 'diff', 'gitcommit', 'unite', 'qf', 'help']
"}}} "{{ "}}}" }}
Plug 'tpope/vim-commentary' Plug 'tpope/vim-commentary'
Plug 'cespare/vim-toml'
Plug 'AndrewRadev/splitjoin.vim' Plug 'AndrewRadev/splitjoin.vim'
Plug 'tobyS/vmustache' Plug 'tobyS/vmustache'
Plug 'dense-analysis/ale' "{{{ Plug 'dense-analysis/ale' "{{ "{{{" }}
let g:ale_sign_error = '✘' let g:ale_sign_error = '✘'
let g:ale_sign_warning = '⚠' let g:ale_sign_warning = '⚠'
highlight ALEErrorSign ctermbg=NONE ctermfg=red highlight ALEErrorSign ctermbg=NONE ctermfg=red
@ -170,12 +160,12 @@ let g:gometalinter_fast = ''
\ . ' --enable=misspell' \ . ' --enable=misspell'
\ . ' --enable=lll --line-length=120' \ . ' --enable=lll --line-length=120'
let g:ale_go_gometalinter_options = '--disable-all --tests' . g:gometalinter_fast . ' --enable=golint' let g:ale_go_gometalinter_options = '--disable-all --tests' . g:gometalinter_fast . ' --enable=golint'
"}}} "{{ "}}}" }}
"##################### "#####################
" Markdown / Writing " Markdown / Writing
"##################### "#####################
Plug 'dbmrq/vim-ditto' "{{{ Plug 'dbmrq/vim-ditto' "{{ "{{{" }}
" au FileType markdown,text,tex DittoOn " au FileType markdown,text,tex DittoOn
nmap <leader>di <Plug>ToggleDitto " Turn Ditto on and off nmap <leader>di <Plug>ToggleDitto " Turn Ditto on and off
nmap =d <Plug>DittoNext " Jump to the next word nmap =d <Plug>DittoNext " Jump to the next word
@ -184,48 +174,69 @@ nmap +d <Plug>DittoGood " Ignore the word under the cursor
nmap _d <Plug>DittoBad " Stop ignoring the word under the cursor nmap _d <Plug>DittoBad " Stop ignoring the word under the cursor
nmap ]d <Plug>DittoMore " Show the next matches nmap ]d <Plug>DittoMore " Show the next matches
nmap [d <Plug>DittoLess " Show the previous matches nmap [d <Plug>DittoLess " Show the previous matches
"}}} "{{ "}}}" }}
Plug 'kana/vim-textobj-user' Plug 'kana/vim-textobj-user'
Plug 'reedes/vim-textobj-quote' Plug 'reedes/vim-textobj-quote'
Plug 'reedes/vim-textobj-sentence' Plug 'reedes/vim-textobj-sentence'
Plug 'reedes/vim-wordy' "{{{ Plug 'reedes/vim-wordy' "{{ "{{{" }}
" let g:wordy_spell_dir = '~/.vim/spell/wordy' " let g:wordy_spell_dir = '~/.vim/spell/wordy'
"}}} "{{ "}}}" }}
Plug 'reedes/vim-lexical' "{{{ Plug 'reedes/vim-lexical' "{{ "{{{" }}
let g:lexical#thesaurus = ['~/.vim/thesaurus/english.txt',] let g:lexical#thesaurus = ['~/.vim/thesaurus/english.txt',]
let g:lexical#spellfile = ['~/.vim/spell/en.utf-8.add',] let g:lexical#spellfile = ['~/.vim/spell/en.utf-8.add',]
let g:lexical#thesaurus_key = '<leader>t' let g:lexical#thesaurus_key = '<leader>t'
let g:lexical#dictionary_key = '<leader>k' let g:lexical#dictionary_key = '<leader>k'
"}}} "{{ "}}}" }}
Plug 'reedes/vim-litecorrect' Plug 'reedes/vim-litecorrect'
Plug 'reedes/vim-pencil' "{{{ Plug 'reedes/vim-pencil' "{{ "{{{" }}
let g:pencil#map#suspend_af = 'K' let g:pencil#map#suspend_af = 'K'
"}}} "{{ "}}}" }}
Plug 'tpope/vim-abolish' Plug 'tpope/vim-abolish'
Plug 'tpope/vim-markdown' Plug 'plasticboy/vim-markdown' " {{ "{{{" }}
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } "{{{ let g:vim_markdown_folding_disabled = 1
let g:mkdp_refresh_slow = 1 let g:vim_markdown_new_list_item_indent = 0
"}}} let g:vim_markdown_auto_insert_bullets = 1
Plug 'lervag/vimtex' "{{{ let g:vim_markdown_frontmatter = 1
let g:vim_markdown_no_extensions_in_markdown = 0
let g:vim_markdown_follow_anchor = 1
let g:vim_markdown_strikethrough = 1
let g:vim_markdown_autowrite = 1
set conceallevel=0
autocmd FileType markdown setlocal spell
autocmd FileType markdown setlocal linebreak " wrap on words, not characters
augroup my_spelling_colors
" Underline, don't do intrusive red things.
autocmd!
" autocmd ColorScheme * hi clear SpellBad
autocmd ColorScheme * hi SpellBad cterm=underline ctermfg=NONE ctermbg=NONE term=Reverse
autocmd ColorScheme * hi SpellCap cterm=underline ctermfg=NONE ctermbg=NONE term=Reverse
autocmd ColorScheme * hi SpellLocal cterm=underline ctermfg=NONE ctermbg=NONE term=Reverse
autocmd ColorScheme * hi SpellRare cterm=underline ctermfg=NONE ctermbg=NONE term=Reverse
augroup END
set spell spelllang=en_us
" {{ "}}}" }}
Plug 'lervag/vimtex' "{{ "{{{" }}
let g:tex_flavor = 'latex' let g:tex_flavor = 'latex'
"}}} "{{ "}}}" }}
"##################### "#####################
" Productivity " Productivity
"##################### "#####################
Plug 'fcpg/vim-waikiki' "{{{ Plug 'fcpg/vim-waikiki' "{{ "{{{" }}
let g:waikiki_roots = ['~/doc/vimwiki/'] let g:waikiki_roots = ['~/doc/vimwiki/']
let g:waikiki_default_maps = 1 let g:waikiki_default_maps = 1
nn <Leader>ww :e ~/doc/vimwiki/index.md<cr> nn <Leader>ww :e ~/doc/vimwiki/index.md<cr>
"}}} "{{ "}}}" }}
Plug 'alok/notational-fzf-vim' "{{{ Plug 'alok/notational-fzf-vim' "{{ "{{{" }}
let g:nv_search_paths = ['~/doc/zettelkasten', '~/doc/wiki'] let g:nv_search_paths = ['~/doc/zettelkasten', '~/doc/wiki']
"}}} "{{ "}}}" }}
"##################### "#####################
" Git Support " Git Support
"##################### "#####################
Plug 'tpope/vim-fugitive' "{{{ Plug 'tpope/vim-fugitive' "{{ "{{{" }}
nnoremap <Leader>gs :Gstatus<CR> nnoremap <Leader>gs :Gstatus<CR>
nnoremap <Leader>gr :Gremove<CR> nnoremap <Leader>gr :Gremove<CR>
nnoremap <Leader>gl :Glog<CR> nnoremap <Leader>gl :Glog<CR>
@ -235,19 +246,19 @@ nnoremap <Leader>gp :Ggrep
nnoremap <Leader>gR :Gread<CR> nnoremap <Leader>gR :Gread<CR>
nnoremap <Leader>gg :Git nnoremap <Leader>gg :Git
nnoremap <Leader>gd :Gdiff<CR> nnoremap <Leader>gd :Gdiff<CR>
"}}} "{{ "}}}" }}
Plug 'junegunn/gv.vim' Plug 'junegunn/gv.vim'
Plug 'mhinz/vim-signify' "{{{ Plug 'mhinz/vim-signify' "{{ "{{{" }}
let g:signify_vcs_list = [ 'git' ] let g:signify_vcs_list = [ 'git' ]
let g:signify_disable_by_default = 0 let g:signify_disable_by_default = 0
let g:signify_realtime = 0 let g:signify_realtime = 0
nmap <F10> <Plug>(SignifyToggle) nmap <F10> <Plug>(SignifyToggle)
"}}} "{{ "}}}" }}
"######################### "#########################
" Web Programming Support " Web Programming Support
"######################### "#########################
Plug 'pangloss/vim-javascript' Plug 'pangloss/vim-javascript', { 'for': 'javascript' }
Plug 'mxw/vim-jsx' Plug 'mxw/vim-jsx'
Plug 'mattn/emmet-vim' Plug 'mattn/emmet-vim'
Plug 'othree/html5.vim' Plug 'othree/html5.vim'
@ -259,20 +270,26 @@ Plug 'ap/vim-css-color'
"######################### "#########################
" Language support " Language support
"######################### "#########################
Plug 'vim-perl/vim-perl' Plug 'vim-perl/vim-perl', { 'for': 'perl' }
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } "{{{ Plug 'cespare/vim-toml', { 'for': 'toml' }
Plug 'fatih/vim-go', { 'for': 'go' } " {{ "{{{" }}
let g:go_fmt_command = "goimports"
let g:go_addtags_transform = "camelcase" let g:go_addtags_transform = "camelcase"
autocmd FileType go nmap MM <Plug>(go-build) autocmd FileType go nmap MM <Plug>(go-build)
autocmd FileType go nmap LL <Plug>(go-run) autocmd FileType go nmap LL <Plug>(go-run)
autocmd FileType go nmap TT <Plug>(go-test) autocmd FileType go nmap TT <Plug>(go-test)
autocmd FileType go nmap <Leader>i <Plug>(go-info) autocmd FileType go nmap <Leader>i <Plug>(go-info)
"}}} "{{ "}}}" }}
Plug 'rust-lang/rust.vim', { 'for': 'rust' } " {{ "{{{" }}
let g:rustfmt_autosave = 0
let g:rust_recommended_style = 1
" {{ "}}}" }}
"######################### "#########################
" Theme / Interface " Theme / Interface
"######################### "#########################
let g:lightline = {'colorscheme': 'powerline'} let g:lightline = {'colorscheme': 'powerline'}
Plug 'itchyny/lightline.vim' "{{{ Plug 'itchyny/lightline.vim' "{{ "{{{" }}
let g:lightline = { let g:lightline = {
\ 'active': { \ 'active': {
\ 'left': [ [ 'mode', 'paste' ], \ 'left': [ [ 'mode', 'paste' ],
@ -283,12 +300,12 @@ let g:lightline = {
\ 'pencil': 'PencilMode' \ 'pencil': 'PencilMode'
\ }, \ },
\ } \ }
"}}} "{{ "}}}" }}
Plug 'morhetz/gruvbox' Plug 'morhetz/gruvbox'
call plug#end() call plug#end()
"}}} "{{ "}}}" }}
" Vim sensible settings {{{ " Vim sensible settings {{ "{{{" }}
set nocompatible set nocompatible
set encoding=utf8 set encoding=utf8
set lazyredraw set lazyredraw
@ -316,7 +333,7 @@ set ruler
" set cursorline " set cursorline
set wildmenu wildignorecase wildmode=list:longest,full set wildmenu wildignorecase wildmode=list:longest,full
set history=1000 set history={{ .chezmoi.gid }}
set completeopt+=menuone set completeopt+=menuone
set completeopt+=noselect set completeopt+=noselect
set cpt=.,w,b,t set cpt=.,w,b,t
@ -364,9 +381,6 @@ set switchbuf=useopen
set updatetime=500 set updatetime=500
set synmaxcol=400 set synmaxcol=400
" Enable tab markers
let g:indentLine_char = '⦙'
"Better line wrapping "Better line wrapping
set nowrap set nowrap
set formatoptions+=j set formatoptions+=j
@ -389,10 +403,10 @@ set spelllang=en_us
set diffopt+=algorithm:patience set diffopt+=algorithm:patience
set diffopt+=vertical set diffopt+=vertical
" hi SpellBad gui=underline guifg=red cterm=underline ctermfg=red " hi SpellBad gui=underline guifg=red cterm=underline ctermfg=red
"}}} "{{ "}}}" }}
" Theme and Styling {{{ " Theme and Styling {{ "{{{" }}
if has('gui_running') if has('gui_running')
set guifont=BrutalistMono:h14 set guifont={{ .guifont }}
" Scrollbar junk " Scrollbar junk
set guioptions=aAcei set guioptions=aAcei
set go-=T set go-=T
@ -407,8 +421,8 @@ let g:gruvbox_contrast_dark = 'hard'
let g:gruvbox_italic=0 let g:gruvbox_italic=0
colorscheme gruvbox colorscheme gruvbox
set background=dark set background=dark
"}}} "{{ "}}}" }}
" Filetype settings {{{ " Filetype settings {{ "{{{" }}
function! Prose() function! Prose()
call pencil#init({'wrap': 'hard', 'autoformat': 1}) call pencil#init({'wrap': 'hard', 'autoformat': 1})
@ -416,8 +430,6 @@ set background=dark
call litecorrect#init() call litecorrect#init()
call textobj#quote#init() call textobj#quote#init()
call textobj#sentence#init() call textobj#sentence#init()
colorscheme pencil
DittoOn DittoOn
" manual reformatting shortcuts " manual reformatting shortcuts
@ -463,8 +475,8 @@ autocmd FileType help wincmd L
autocmd FileType fugitive wincmd L autocmd FileType fugitive wincmd L
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
" autocmd FileType markdown,mkd call Prose() " autocmd FileType markdown,mkd call Prose()
"}}} "{{ "}}}" }}
" Mappings {{{ " Mappings {{ "{{{" }}
"allow deletion of previously entered data in insert mode "allow deletion of previously entered data in insert mode
set backspace=indent,eol,start set backspace=indent,eol,start
@ -543,4 +555,4 @@ nmap <Leader>R :retab<CR>
nmap gQ VipJ nmap gQ VipJ
command! -nargs=0 Prose call Prose() command! -nargs=0 Prose call Prose()
"}}} "{{ "}}}" }}

View File

@ -1,7 +0,0 @@
eval $(keychain --eval --agents ssh id_rsa)
[ -f ~/.keychain/$HOSTNAME-sh ] && . ~/.keychain/$HOSTNAME-sh 2>/dev/null
alias vim=nvim
export PERLBREW_ROOT=$HOME/perl5/perlbrew
export PERLBREW_HOME=$HOME/.perlbrew
export PATH=$HOME/local/bin:/usr/local/opt/sqlite/bin:/usr/local/opt/ruby/bin:$GOPATH/bin:$HOME/.cargo/bin:$HOME/.symfony/bin:/usr/local/opt/mariadb@10.4/bin:$PATH

View File

@ -1,46 +0,0 @@
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
ZSH=$HOME/.oh-my-zsh
ZSH_THEME="powerlevel10k/powerlevel10k"
ZSH_DISABLE_COMPFIX="true"
# CASE_SENSITIVE="true"
DISABLE_AUTO_TITLE="true"
DISABLE_UNTRACKED_FILES_DIRTY="true"
COMPLETION_WAITING_DOTS="false"
zle -N zle-line-init
zle -N zle-keymap-select
export KEYTIMEOUT=1
plugins=(
vi-mode
golang
z
tmux
fzf-z
# fzf-tab
fd
fossil
zsh-aliases-exa
zsh-autosuggestions
zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export EDITOR='vim'
export GOPATH=$HOME/go
export GPG_TTY=$TTY
export FZF_DEFAULT_COMMAND='fd --type file --hidden --no-ignore'
source $HOME/.zsh-local.sh
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

78
dot_zshrc.tmpl Normal file
View File

@ -0,0 +1,78 @@
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
ZSH=$HOME/.oh-my-zsh
ZSH_THEME="powerlevel10k/powerlevel10k"
ZSH_DISABLE_COMPFIX="true"
# CASE_SENSITIVE="true"
DISABLE_AUTO_TITLE="true"
DISABLE_UNTRACKED_FILES_DIRTY="true"
COMPLETION_WAITING_DOTS="false"
export FZF_DEFAULT_COMMAND="fd --type file --color=always"
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
export FZF_DEFAULT_OPTS="--ansi"
export BAT_THEME="gruvbox-dark"
zle -N zle-line-init
zle -N zle-keymap-select
export KEYTIMEOUT=1
plugins={{ .plugins }}
source $ZSH/oh-my-zsh.sh
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export EDITOR='nvim'
export GOPATH=$HOME/go
export GPG_TTY=$TTY
{{- if eq .chezmoi.os "openbsd" }}
export PORTSDIR_PATH=/usr/ports/:/usr/ports/openbsd-wip
export PATH="$HOME/local/bin:$HOME/perl5/bin:$HOME/gems/bin:$HOME/.cargo/bin:$HOME/.yarn/bin:$PATH"
export PERL5LIB=$HOME/perl5/lib/perl5
export PERL_LOCAL_LIB_ROOT=$HOME/perl5
export PERL_MB_OPT='--install_base "/home/jan/perl5"'
export PERL_MM_OPT='INSTALL_BASE=/home/jan/perl5'
export PMIX_MCA_gds='hash'
alias top='htop'
alias man='manpager.sh'
alias mutt='neomutt'
alias dvim='doas nvim'
alias ic='doas ifconfig'
alias pq='doas pkg_info -Q'
alias pa='doas pkg_add'
alias pd='doas pkg_delete'
alias lpr='/usr/local/bin/lpr'
alias gpget='gopass -c'
alias ruby='ruby30'
alias gem='gem30'
alias bundle='bundle30'
alias mnt-net='doas mount_nfs -3 -a 4 -T -r 32768 -o noatime,nodev,noexec 192.168.178.10:/volume1/Data /mnt/nfs'
alias umnt-net='doas umount /mnt/nfs'
alias mnt-usb='doas mount /dev/sd1i /mnt/usb'
alias umnt-usb='doas umount /mnt/usb'
alias mnt-secret='doas mount dev/sd1c /mnt/encrypted_usb'
alias umnt-secret='doas unmount /mnt/encrypted_usb'
alias bkp-home='doas restic -r /mnt/nfs/BSD/restic-repo --verbose backup --one-file-system /home/jan --exclude /home/jan/data'
alias bkp-etc='doas restic -r /mnt/nfs/BSD/restic-repo --verbose backup /etc'
alias bkp-list='doas restic -r /mnt/nfs/BSD/restic-repo snapshots'
{{- else }}
export PERLBREW_ROOT=$HOME/perl5/perlbrew
export PERLBREW_HOME=$HOME/.perlbrew
export PATH=$HOME/local/bin:/usr/local/opt/sqlite/bin:/usr/local/opt/ruby/bin:$GOPATH/bin:$HOME/.cargo/bin:$HOME/.symfony/bin:/usr/local/opt/mariadb@10.4/bin:$PATH
{{- end }}
alias vim=nvim
eval $(keychain --eval --agents ssh id_rsa)
[ -f ~/.keychain/$HOSTNAME-sh ] && . ~/.keychain/$HOSTNAME-sh 2>/dev/null
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh