From 24a605577c8e09a75f8f717f9df1bdc6c8dd8ec3 Mon Sep 17 00:00:00 2001 From: Nick Shipp Date: Tue, 14 Feb 2017 08:41:16 -0500 Subject: initial commit --- .gitignore | 7 + .gitmodules | 6 + mpv/mpv.conf | 4 + vim/bundle/asyncrun.vim | 1 + vim/bundle/perldoc-vim | 1 + vim/bundle/w3m.vim | 1 + vim/colors/apprentice.vim | 252 +++++++++++++++++++++++++++++++++ vim/compiler/perlcritic.vim | 23 +++ vim/ftplugin/perl.vim | 5 + vim/main.vim | 100 +++++++++++++ vim/perlcritic.vim | 22 +++ zsh/.zshrc | 1 + zsh/00_params.zsh | 15 ++ zsh/01_env.zsh | 15 ++ zsh/02_settings.zsh | 36 +++++ zsh/Functions/_uri | 58 ++++++++ zsh/Functions/memoize | 11 ++ zsh/aliases.zsh | 7 + zsh/completion.zsh | 23 +++ zsh/dircolors | 141 ++++++++++++++++++ zsh/functions.zsh | 27 ++++ zsh/keys.zsh | 18 +++ zsh/zkbd/st-256color-unknown-linux-gnu | 28 ++++ 23 files changed, 802 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 mpv/mpv.conf create mode 160000 vim/bundle/asyncrun.vim create mode 160000 vim/bundle/perldoc-vim create mode 160000 vim/bundle/w3m.vim create mode 100644 vim/colors/apprentice.vim create mode 100644 vim/compiler/perlcritic.vim create mode 100644 vim/ftplugin/perl.vim create mode 100644 vim/main.vim create mode 100644 vim/perlcritic.vim create mode 100644 zsh/.zshrc create mode 100644 zsh/00_params.zsh create mode 100644 zsh/01_env.zsh create mode 100644 zsh/02_settings.zsh create mode 100644 zsh/Functions/_uri create mode 100644 zsh/Functions/memoize create mode 100644 zsh/aliases.zsh create mode 100644 zsh/completion.zsh create mode 100644 zsh/dircolors create mode 100644 zsh/functions.zsh create mode 100644 zsh/keys.zsh create mode 100644 zsh/zkbd/st-256color-unknown-linux-gnu diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..07bb114 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.*.un~ +.*.sw* +priv +qutebrowser/bookmarks +.netrwhist +tags +.zcompdump diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..fc7004a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "vim/bundle/asyncrun.vim"] + path = vim/bundle/asyncrun.vim + url = https://github.com/skywind3000/asyncrun.vim.git +[submodule "vim/bundle/w3m.vim"] + path = vim/bundle/w3m.vim + url = https://github.com/yuratomo/w3m.vim.git diff --git a/mpv/mpv.conf b/mpv/mpv.conf new file mode 100644 index 0000000..1f846a6 --- /dev/null +++ b/mpv/mpv.conf @@ -0,0 +1,4 @@ +vo=opengl +hwdec=vaapi +ao=alsa +ytdl-raw-options=netrc= diff --git a/vim/bundle/asyncrun.vim b/vim/bundle/asyncrun.vim new file mode 160000 index 0000000..1467e58 --- /dev/null +++ b/vim/bundle/asyncrun.vim @@ -0,0 +1 @@ +Subproject commit 1467e5852a3bbb5bc23a62374eb16dfb0fd0c427 diff --git a/vim/bundle/perldoc-vim b/vim/bundle/perldoc-vim new file mode 160000 index 0000000..ef095a5 --- /dev/null +++ b/vim/bundle/perldoc-vim @@ -0,0 +1 @@ +Subproject commit ef095a51f886f6fef50005c999c12f8de9bc4061 diff --git a/vim/bundle/w3m.vim b/vim/bundle/w3m.vim new file mode 160000 index 0000000..228a852 --- /dev/null +++ b/vim/bundle/w3m.vim @@ -0,0 +1 @@ +Subproject commit 228a852b188f1a62ecea55fa48b0ec892fa6bad7 diff --git a/vim/colors/apprentice.vim b/vim/colors/apprentice.vim new file mode 100644 index 0000000..bc864e9 --- /dev/null +++ b/vim/colors/apprentice.vim @@ -0,0 +1,252 @@ +" 'apprentice.vim' -- Vim color scheme. +" Author: Romain Lafourcade (romainlafourcade@gmail.com) +" Description: Essentially a streamlining and conversion to xterm colors of +" 'sorcerer' by Jeet Sukumaran (jeetsukumaran@gmailcom) + +" MADE-UP NAME HEX RGB XTERM ANSI +" ======================================================================== +" almost black #1c1c1c rgb(28, 28, 28) 234 0 +" darker grey #262626 rgb(38, 38, 38) 235 background color +" dark grey #303030 rgb(48, 48, 48) 236 8 +" grey #444444 rgb(68, 68, 68) 238 8 +" medium grey #585858 rgb(88, 88, 88) 240 8 +" light grey #6c6c6c rgb(108, 108, 108) 242 7 +" lighter grey #bcbcbc rgb(188, 188, 188) 250 foreground color +" white #ffffff rgb(255, 255, 255) 231 15 +" purple #5f5f87 rgb(95, 95, 135) 60 5 +" light purple #8787af rgb(135, 135, 175) 103 13 +" green #5f875f rgb(95, 135, 95) 65 2 +" light green #87af87 rgb(135, 175, 135) 108 10 +" aqua #5f8787 rgb(95, 135, 135) 66 6 +" light aqua #5fafaf rgb(95, 175, 175) 73 14 +" blue #5f87af rgb(95, 135, 175) 67 4 +" light blue #8fafd7 rgb(143, 175, 215) 110 12 +" red #af5f5f rgb(175, 95, 95) 131 1 +" orange #ff8700 rgb(255, 135, 0) 208 9 +" ocre #87875f rgb(135, 135, 95) 101 3 +" yellow #ffffaf rgb(255, 255, 175) 229 11 + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "apprentice" + +if ($TERM =~ '256' || &t_Co >= 256) || has("gui_running") + hi Normal ctermbg=NONE ctermfg=250 guibg=#262626 guifg=#bcbcbc cterm=NONE gui=NONE + hi LineNr ctermbg=234 ctermfg=242 guibg=#1c1c1c guifg=#6c6c6c cterm=NONE gui=NONE + hi FoldColumn ctermbg=234 ctermfg=242 guibg=#1c1c1c guifg=#6c6c6c cterm=NONE gui=NONE + hi Folded ctermbg=234 ctermfg=242 guibg=#1c1c1c guifg=#6c6c6c cterm=NONE gui=NONE + hi MatchParen ctermbg=234 ctermfg=229 guibg=#1c1c1c guifg=#ffffaf cterm=NONE gui=NONE + hi signColumn ctermbg=234 ctermfg=242 guibg=#1c1c1c guifg=#6c6c6c cterm=NONE gui=NONE + + set background=dark + + hi Comment ctermbg=NONE ctermfg=240 guibg=NONE guifg=#585858 cterm=NONE gui=NONE + hi Conceal ctermbg=NONE ctermfg=250 guibg=NONE guifg=#bcbcbc cterm=NONE gui=NONE + hi Constant ctermbg=NONE ctermfg=208 guibg=NONE guifg=#ff8700 cterm=NONE gui=NONE + hi Error ctermbg=NONE ctermfg=131 guibg=NONE guifg=#af5f5f cterm=reverse gui=reverse + hi Identifier ctermbg=NONE ctermfg=67 guibg=NONE guifg=#5f87af cterm=NONE gui=NONE + hi Ignore ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=NONE gui=NONE + hi PreProc ctermbg=NONE ctermfg=66 guibg=NONE guifg=#5f8787 cterm=NONE gui=NONE + hi Special ctermbg=NONE ctermfg=65 guibg=NONE guifg=#5f875f cterm=NONE gui=NONE + hi Statement ctermbg=NONE ctermfg=110 guibg=NONE guifg=#8fafd7 cterm=NONE gui=NONE + hi String ctermbg=NONE ctermfg=108 guibg=NONE guifg=#87af87 cterm=NONE gui=NONE + hi Todo ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=reverse gui=reverse + hi Type ctermbg=NONE ctermfg=103 guibg=NONE guifg=#8787af cterm=NONE gui=NONE + hi Underlined ctermbg=NONE ctermfg=66 guibg=NONE guifg=#5f8787 cterm=underline gui=underline + + hi NonText ctermbg=NONE ctermfg=240 guibg=NONE guifg=#585858 cterm=NONE gui=NONE + + hi Pmenu ctermbg=238 ctermfg=250 guibg=#444444 guifg=#bcbcbc cterm=NONE gui=NONE + hi PmenuSbar ctermbg=240 ctermfg=NONE guibg=#585858 guifg=NONE cterm=NONE gui=NONE + hi PmenuSel ctermbg=66 ctermfg=235 guibg=#5f8787 guifg=#262626 cterm=NONE gui=NONE + hi PmenuThumb ctermbg=66 ctermfg=66 guibg=#5f8787 guifg=#5f8787 cterm=NONE gui=NONE + + hi ErrorMsg ctermbg=131 ctermfg=235 guibg=#af5f5f guifg=#262626 cterm=NONE gui=NONE + hi ModeMsg ctermbg=108 ctermfg=235 guibg=#87af87 guifg=#262626 cterm=NONE gui=NONE + hi MoreMsg ctermbg=NONE ctermfg=66 guibg=NONE guifg=#5f8787 cterm=NONE gui=NONE + hi Question ctermbg=NONE ctermfg=108 guibg=NONE guifg=#87af87 cterm=NONE gui=NONE + hi WarningMsg ctermbg=NONE ctermfg=131 guibg=NONE guifg=#af5f5f cterm=NONE gui=NONE + + hi TabLine ctermbg=238 ctermfg=101 guibg=#444444 guifg=#87875f cterm=NONE gui=NONE + hi TabLineFill ctermbg=238 ctermfg=238 guibg=#444444 guifg=#444444 cterm=NONE gui=NONE + hi TabLineSel ctermbg=101 ctermfg=235 guibg=#87875f guifg=#262626 cterm=NONE gui=NONE + + hi Cursor ctermbg=242 ctermfg=NONE guibg=#6c6c6c guifg=NONE cterm=NONE gui=NONE + hi CursorColumn ctermbg=236 ctermfg=NONE guibg=#303030 guifg=NONE cterm=NONE gui=NONE + hi CursorLineNr ctermbg=236 ctermfg=73 guibg=#303030 guifg=#5fafaf cterm=NONE gui=NONE + hi CursorLine ctermbg=236 ctermfg=NONE guibg=#303030 guifg=NONE cterm=NONE gui=NONE + + hi helpLeadBlank ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=NONE gui=NONE + hi helpNormal ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=NONE gui=NONE + + hi StatusLine ctermbg=101 ctermfg=235 guibg=#87875f guifg=#262626 cterm=NONE gui=NONE + hi StatusLineNC ctermbg=238 ctermfg=101 guibg=#444444 guifg=#87875f cterm=NONE gui=italic + + hi Visual ctermbg=NONE ctermfg=110 guibg=#262626 guifg=#8fafd7 cterm=reverse gui=reverse + hi VisualNOS ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=underline gui=underline + + hi VertSplit ctermbg=238 ctermfg=238 guibg=#444444 guifg=#444444 cterm=NONE gui=NONE + hi WildMenu ctermbg=110 ctermfg=235 guibg=#8fafd7 guifg=#262626 cterm=NONE gui=NONE + + hi Function ctermbg=NONE ctermfg=229 guibg=NONE guifg=#ffffaf cterm=NONE gui=NONE + hi SpecialKey ctermbg=NONE ctermfg=240 guibg=NONE guifg=#585858 cterm=NONE gui=NONE + hi Title ctermbg=NONE ctermfg=231 guibg=NONE guifg=#ffffff cterm=NONE gui=NONE + + hi DiffAdd ctermbg=NONE ctermfg=108 guibg=#262626 guifg=#87af87 cterm=reverse gui=reverse + hi DiffChange ctermbg=NONE ctermfg=103 guibg=#262626 guifg=#8787af cterm=reverse gui=reverse + hi DiffDelete ctermbg=NONE ctermfg=131 guibg=#262626 guifg=#af5f5f cterm=reverse gui=reverse + hi DiffText ctermbg=NONE ctermfg=208 guibg=#262626 guifg=#ff8700 cterm=reverse gui=reverse + + hi IncSearch ctermbg=131 ctermfg=235 guibg=#af5f5f guifg=#262626 cterm=NONE gui=NONE + hi Search ctermbg=229 ctermfg=235 guibg=#ffffaf guifg=#262626 cterm=NONE gui=NONE + + hi Directory ctermbg=NONE ctermfg=73 guibg=NONE guifg=#5fafaf cterm=NONE gui=NONE + + if has("gui_running") + hi SpellBad ctermbg=NONE ctermfg=131 guibg=NONE guifg=NONE cterm=undercurl gui=undercurl guisp=#af5f5f + hi SpellCap ctermbg=NONE ctermfg=73 guibg=NONE guifg=NONE cterm=undercurl gui=undercurl guisp=#5fafaf + hi SpellLocal ctermbg=NONE ctermfg=65 guibg=NONE guifg=NONE cterm=undercurl gui=undercurl guisp=#5f875f + hi SpellRare ctermbg=NONE ctermfg=208 guibg=NONE guifg=NONE cterm=undercurl gui=undercurl guisp=#ff8700 + else + hi SpellBad ctermbg=NONE ctermfg=131 guibg=NONE guifg=#af5f5f cterm=undercurl gui=undercurl guisp=NONE + hi SpellCap ctermbg=NONE ctermfg=73 guibg=NONE guifg=#5fafaf cterm=undercurl gui=undercurl guisp=NONE + hi SpellLocal ctermbg=NONE ctermfg=65 guibg=NONE guifg=#5f875f cterm=undercurl gui=undercurl guisp=NONE + hi SpellRare ctermbg=NONE ctermfg=208 guibg=NONE guifg=#ff8700 cterm=undercurl gui=undercurl guisp=NONE + endif + + hi ColorColumn ctermbg=131 ctermfg=NONE guibg=#af5f5f guifg=NONE cterm=NONE gui=NONE +elseif &t_Co == 8 || $TERM !~# '^linux' || &t_Co == 16 + set t_Co=16 + + hi Normal ctermbg=NONE ctermfg=white cterm=NONE + + set background=dark + + hi Comment ctermbg=NONE ctermfg=gray cterm=NONE + hi Conceal ctermbg=NONE ctermfg=white cterm=NONE + hi Constant ctermbg=NONE ctermfg=red cterm=NONE + hi Function ctermbg=NONE ctermfg=yellow cterm=NONE + hi Identifier ctermbg=NONE ctermfg=darkblue cterm=NONE + hi PreProc ctermbg=NONE ctermfg=darkcyan cterm=NONE + hi Special ctermbg=NONE ctermfg=darkgreen cterm=NONE + hi Statement ctermbg=NONE ctermfg=blue cterm=NONE + hi String ctermbg=NONE ctermfg=green cterm=NONE + hi Todo ctermbg=NONE ctermfg=NONE cterm=reverse + hi Type ctermbg=NONE ctermfg=magenta cterm=NONE + + hi Error ctermbg=NONE ctermfg=darkred cterm=reverse + hi Ignore ctermbg=NONE ctermfg=NONE cterm=NONE + hi Underlined ctermbg=NONE ctermfg=NONE cterm=reverse + + hi LineNr ctermbg=black ctermfg=gray cterm=NONE + hi NonText ctermbg=NONE ctermfg=darkgray cterm=NONE + + hi Pmenu ctermbg=darkgray ctermfg=white cterm=NONE + hi PmenuSbar ctermbg=gray ctermfg=NONE cterm=NONE + hi PmenuSel ctermbg=darkcyan ctermfg=black cterm=NONE + hi PmenuThumb ctermbg=darkcyan ctermfg=NONE cterm=NONE + + hi ErrorMsg ctermbg=darkred ctermfg=black cterm=NONE + hi ModeMsg ctermbg=darkgreen ctermfg=black cterm=NONE + hi MoreMsg ctermbg=NONE ctermfg=darkcyan cterm=NONE + hi Question ctermbg=NONE ctermfg=green cterm=NONE + hi WarningMsg ctermbg=NONE ctermfg=darkred cterm=NONE + + hi TabLine ctermbg=darkgray ctermfg=darkyellow cterm=NONE + hi TabLineFill ctermbg=darkgray ctermfg=black cterm=NONE + hi TabLineSel ctermbg=darkyellow ctermfg=black cterm=NONE + + hi Cursor ctermbg=NONE ctermfg=NONE cterm=NONE + hi CursorColumn ctermbg=darkgray ctermfg=NONE cterm=NONE + hi CursorLineNr ctermbg=black ctermfg=cyan cterm=NONE + hi CursorLine ctermbg=darkgray ctermfg=NONE cterm=NONE + + hi helpLeadBlank ctermbg=NONE ctermfg=NONE cterm=NONE + hi helpNormal ctermbg=NONE ctermfg=NONE cterm=NONE + + hi StatusLine ctermbg=darkyellow ctermfg=black cterm=NONE + hi StatusLineNC ctermbg=darkgray ctermfg=darkyellow cterm=NONE + + hi Visual ctermbg=black ctermfg=blue cterm=reverse + hi VisualNOS ctermbg=black ctermfg=white cterm=reverse + + hi FoldColumn ctermbg=black ctermfg=darkgray cterm=NONE + hi Folded ctermbg=black ctermfg=darkgray cterm=NONE + + hi VertSplit ctermbg=darkgray ctermfg=darkgray cterm=NONE + hi WildMenu ctermbg=blue ctermfg=black cterm=NONE + + hi SpecialKey ctermbg=NONE ctermfg=darkgray cterm=NONE + hi Title ctermbg=NONE ctermfg=white cterm=NONE + + hi DiffAdd ctermbg=black ctermfg=green cterm=reverse + hi DiffChange ctermbg=black ctermfg=magenta cterm=reverse + hi DiffDelete ctermbg=black ctermfg=darkred cterm=reverse + hi DiffText ctermbg=black ctermfg=red cterm=reverse + + hi IncSearch ctermbg=darkred ctermfg=black cterm=NONE + hi Search ctermbg=yellow ctermfg=black cterm=NONE + + hi Directory ctermbg=NONE ctermfg=cyan cterm=NONE + hi MatchParen ctermbg=black ctermfg=yellow cterm=NONE + + hi SpellBad ctermbg=NONE ctermfg=darkred cterm=undercurl + hi SpellCap ctermbg=NONE ctermfg=darkyellow cterm=undercurl + hi SpellLocal ctermbg=NONE ctermfg=darkgreen cterm=undercurl + hi SpellRare ctermbg=NONE ctermfg=darkmagenta cterm=undercurl + + hi ColorColumn ctermbg=darkred ctermfg=NONE cterm=NONE + hi SignColumn ctermbg=black ctermfg=darkgray cterm=NONE +endif + +hi link Boolean Constant +hi link Character Constant +hi link Conditional Statement +hi link Debug Special +hi link Define PreProc +hi link Delimiter Special +hi link Exception Statement +hi link Float Number +hi link HelpCommand Statement +hi link HelpExample Statement +hi link Include PreProc +hi link Keyword Statement +hi link Label Statement +hi link Macro PreProc +hi link Number Constant +hi link Operator Statement +hi link PreCondit PreProc +hi link Repeat Statement +hi link SpecialChar Special +hi link SpecialComment Special +hi link StorageClass Type +hi link Structure Type +hi link Tag Special +hi link Typedef Type + +hi link htmlEndTag htmlTagName +hi link htmlLink Function +hi link htmlSpecialTagName htmlTagName +hi link htmlTag htmlTagName +hi link htmlBold Normal +hi link htmlItalic Normal +hi link xmlTag Statement +hi link xmlTagName Statement +hi link xmlEndTag Statement + +hi link markdownItalic Preproc +hi link asciidocQuotedEmphasized Preproc + +hi link diffBDiffer WarningMsg +hi link diffCommon WarningMsg +hi link diffDiffer WarningMsg +hi link diffIdentical WarningMsg +hi link diffIsA WarningMsg +hi link diffNoEOL WarningMsg +hi link diffOnly WarningMsg +hi link diffRemoved WarningMsg +hi link diffAdded String diff --git a/vim/compiler/perlcritic.vim b/vim/compiler/perlcritic.vim new file mode 100644 index 0000000..b42a8e7 --- /dev/null +++ b/vim/compiler/perlcritic.vim @@ -0,0 +1,23 @@ +" Vim Compiler File +" Compiler: perlcritic +" Maintainer: Scott Peshak +" Last Change: 2017 Feb 10 + +if exists("current_compiler") +finish +endif +let current_compiler = "perlcritic" + +if exists(":CompilerSet") != 2 +command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo-=C + +" nshp - bump severity up to 4, add --quiet +CompilerSet makeprg=perlcritic\ -verbose\ 1\ -4\ --quiet\ % +CompilerSet errorformat=%f:%l:%c:%m + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/vim/ftplugin/perl.vim b/vim/ftplugin/perl.vim new file mode 100644 index 0000000..9d27999 --- /dev/null +++ b/vim/ftplugin/perl.vim @@ -0,0 +1,5 @@ +setl formatprg=perltidy\ -q +" Indent-only perltidy for == +setl equalprg=perltidy\ -q\ -io +" Linting with :make +compiler perlcritic diff --git a/vim/main.vim b/vim/main.vim new file mode 100644 index 0000000..48bcd14 --- /dev/null +++ b/vim/main.vim @@ -0,0 +1,100 @@ +"" +" Configuration for my config organization +" +set directory=$XDG_CONFIG_HOME/vim,~/,/tmp +set backupdir=$XDG_CACHE_HOME/vim,~/,/tmp +set viminfo+=n$XDG_CACHE_HOME/vim/viminfo +set runtimepath=$XDG_CONFIG_HOME/vim,$XDG_CONFIG_HOME/vim/after,$VIM,$VIMRUNTIME +let $MYVIMRC="$XDG_CONFIG_HOME/vim/main.vim" +"" + +" Auto-load plugins from $VIMRUNTIME/bundle +"execute pathogen#infect() + +"" +" General mappings and stuff +let mapleader = "-" +"" + +" Apply filetype-based indent rules and plugins +filetype plugin indent on + +" Arch comes with some sensible defaults, might as well use them +runtime! archlinux.vim +" And so does vim itself +runtime! defaults.vim +" I like reading manpages in vim. +runtime! ftplugin/man.vim + +"" +" Load the matchit plugin (shipped with vim) for jumping to matching #ifs and +" #endifs and so on. +" Requires vim 8 for :packadd +packadd! matchit + +" romainl's apprentice colorscheme, with a few changes for higher contrast +colorscheme apprentice + +"" +" Settings! +" +set expandtab " expans to spaces +set shiftwidth=4 " 4 spaces for autoindent +set softtabstop=4 " inserts 4 spaces at a time +set autowrite " write before swapping buffers +set number " regular line numbers +set ttyfast " xterms and linux consoles are fast +set ttymouse=sgr " for mouse events in columns >233 +set clipboard=unnamed " default to the * register to share with X11 +set undolevels=100000 " don't discard my undo tree +set undofile " persistent undo tree +" + +"" +" PASTEBIN with pbpst +" +" Mappings: +" p{motion} Paste {motion} lines +" pp Paste entire buffer (same as ggpG) +" p (Visual) paste selection +" +" The pastebin URL is stored to the * register. +" With +X11, this is shared with the X primary selection (middle click or +" shift-insert to paste.) +function! Paste(type, ...) + " Line-wise ranges + if a:type == 'line' || a:type == 'V' || a:type == '%' + if a:type == 'line' + let start = "'[" " motion lines + let end = "']" + elseif a:type == 'V' + let start = "'<" " visual lines + let end = "'>" + else + let start = 1 " entire file + let end = "$" + endif + let @* = systemlist('pbpst -S 2>/dev/null', getline(start, end))[0] . '/' . &filetype + " Character-wise ranges + elseif a:type == 'char' || a:type == 'v' + if a:type == 'char' + let start = "'[" " motion + let end = "']" + else + let start = "`<" " visual + let end = "`>" + endif + let input = getline(start, end) + let input[0] = input[0][col(start):] + let input[-1] = input[-1][:col(end)-1] + let @* = systemlist('pbpst -S 2>/dev/null', input)[0] . '/' . &filetype + " Block ranges (not handled) + else + echoerr "Paste: unsupported selection type: " . a:type + endif +endfunction + +nnoremap p :silent set opfunc=Pasteg@ +nnoremap pp :call Paste('%') +vnoremap p :call Paste(visualmode()) +"" diff --git a/vim/perlcritic.vim b/vim/perlcritic.vim new file mode 100644 index 0000000..16a75b1 --- /dev/null +++ b/vim/perlcritic.vim @@ -0,0 +1,22 @@ +" Vim Compiler File +" Compiler: perlcritic +" Maintainer: Scott Peshak +" Last Change: 2006 Dec 19 + +if exists("current_compiler") + finish +endif +let current_compiler = "perlcritic" + +if exists(":CompilerSet") != 2 + command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo-=C + +CompilerSet makeprg=perlcritic\ -verbose\ 1\ -2\ % +CompilerSet errorformat=%f:%l:%c:%m + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..d9499b6 --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1 @@ +for cfg ($ZDOTDIR/*.zsh) source $cfg diff --git a/zsh/00_params.zsh b/zsh/00_params.zsh new file mode 100644 index 0000000..15b8e3e --- /dev/null +++ b/zsh/00_params.zsh @@ -0,0 +1,15 @@ +PROMPT='%F{249}%D{%H}%F{245}%D{%M}%F{242}%D{%S} %F{red}%n%f@%F{blue}%m%f %F{yellow}%1~%f %(!.#.$) ' + +FCEDIT=$VISUAL +HISTFILE=$XDG_DATA_HOME/zsh/history +HISTSIZE=10000 +SAVEHIST=10000000 +REPORTTIME=60 + +fpath=($ZDOTDIR/Functions $fpath) +path=($HOME/bin /usr/bin/vendor_perl $path) + +# Expand ~zsh to $ZDOTDIR +hash -d zsh=$ZDOTDIR +# Same for vim +hash -d vim=$XDG_CONFIG_HOME/vim diff --git a/zsh/01_env.zsh b/zsh/01_env.zsh new file mode 100644 index 0000000..a3886ce --- /dev/null +++ b/zsh/01_env.zsh @@ -0,0 +1,15 @@ +EDITOR="ed -p:" +VISUAL=vim +SUDO_EDITOR="vim -Z" +MANPAGER="vim -M +MANPAGER -" +PAGER=vimpager +BROWSER=qutebrowser +TERMINAL=st +VIMINIT="let \$MYVIMRC = '$XDG_CONFIG_HOME/vim/main.vim' | source \$MYVIMRC" +VIMPAGER_RC="$XDG_CONFIG_HOME/vim/main.vim" +PERLDOC_PAGER=vimpager +PERLTIDY=$XDG_CONFIG_HOME/perltidy + +export EDITOR VISUAL SUDO_EDITOR MANPAGER PAGER BROWSER TERMINAL VIMINIT PERLDOC_PAGER VIMPAGER_RC PERLTIDY +eval $(dircolors -b) +eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib) diff --git a/zsh/02_settings.zsh b/zsh/02_settings.zsh new file mode 100644 index 0000000..b4cd758 --- /dev/null +++ b/zsh/02_settings.zsh @@ -0,0 +1,36 @@ +# Changing Directories +setopt auto_cd +setopt auto_pushd +setopt pushd_ignore_dups +setopt pushd_minus +setopt pushd_silent +# Completion +setopt glob_complete +setopt list_packed +# Expansion and Globbing +unsetopt case_glob +setopt extended_glob +setopt glob_star_short +setopt magic_equal_subst +setopt warn_create_global +# History +setopt hist_fcntl_lock +setopt hist_ignore_all_dups +setopt hist_reduce_blanks +setopt hist_save_no_dups +setopt share_history +# Input/Output +setopt interactive_comments +setopt print_exit_value +# Job Control +setopt auto_continue +setopt long_list_jobs +# Scripts and Functions +setopt c_bases +setopt c_precedences +setopt local_loops +setopt pipe_fail +# Shell Emulation +setopt csh_junkie_loops +# Zle +unsetopt beep diff --git a/zsh/Functions/_uri b/zsh/Functions/_uri new file mode 100644 index 0000000..40d1811 --- /dev/null +++ b/zsh/Functions/_uri @@ -0,0 +1,58 @@ +compdef uri + +local uri_commands +uri_commands=( \ + create change scheme has_recognized_scheme \ + opaque path fragment as_string as_iri canonical \ + secure authority path path_query query userinfo host \ + ihost port host_port default_port \ + media_type data \ + file dir \ + user password \ + gopher_type selector search string \ + dn attributes scope filter extensions \ + un_path \ + to headers \ + group message \ + nid nss ) + +_arguments \ + '1: :->cmds' \ + '*:: :->args' + + +case $state in + (cmds) + _values 'uri commands' $uri_commands + ;; + (args) + _arguments \ + '--scheme=-:' \ + '--path=-:' \ + '--opaque=-[Opaque portion of URI (between scheme: and fragment)]:' \ + '--fragment=-[Escaped URI fragment (#foo)]:' \ + '--authority=-:' \ + '--query=-[Escaped query component]:' \ + '--userinfo=-[e.g. username:password]:' \ + '--port=-:' \ + '--host_port=-[host:port]:' \ + '--media_type=-[Media type for data: URIs]:' \ + '--data=-[Data for data: URIs]:' \ + '--file=-[File for file:, ftp:, etc.]:' \ + '--gopher_type=-:' \ + '--selector=-[Gopher selector]:' \ + '--search=-[Gopher query]:' \ + '--string=-[Gopher string]:' \ + '--dn=-[LDAP DN]' \ + '--attributes=-[LDAP attributes]' \ + '--scope=-[LDAP search scope]:' \ + '--extensions=-[LDAP extensions]:' \ + '--un_path=-[Local socket path for ldapi]:' \ + '--to=-[Address for mailto:]:' \ + '--headers=-[mailto: headers]:' \ + '--group=-[Newsgroup]:' \ + '--message=-[Newsgroup message]:' \ + '--nid=-[Namespace identifier for urn:]:' \ + '--nss=-[Namespace-specific string for urn:]:' + ;; +esac diff --git a/zsh/Functions/memoize b/zsh/Functions/memoize new file mode 100644 index 0000000..c58e65d --- /dev/null +++ b/zsh/Functions/memoize @@ -0,0 +1,11 @@ +if ((! $+MEMOIZE)) { + declare -Ag MEMOIZE +} + +if (($+MEMOIZE[$*])) { + printf '%s' "$MEMOIZE[$*]" + return +} + +MEMOIZE[$*]=$(eval $*) +printf '%s' "$MEMOIZE[$*]" diff --git a/zsh/aliases.zsh b/zsh/aliases.zsh new file mode 100644 index 0000000..fcc87c6 --- /dev/null +++ b/zsh/aliases.zsh @@ -0,0 +1,7 @@ +alias -g ...='../..' +alias -g ....='../../..' + +alias chmod='chmod -c' +alias grep='grep --color' +alias ls='ls --color -A' +alias l='ls --color -Althur' diff --git a/zsh/completion.zsh b/zsh/completion.zsh new file mode 100644 index 0000000..6baf129 --- /dev/null +++ b/zsh/completion.zsh @@ -0,0 +1,23 @@ +zstyle ':completion:*' completer _expand _complete _ignored _match _approximate _prefix +zstyle ':completion:*' completions 1 +zstyle ':completion:*' format 'Completing %d' +zstyle ':completion:*' glob 1 +zstyle ':completion:*' group-name '' +zstyle ':completion:*' list-colors '' +zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s +zstyle ':completion:*' matcher-list '' 'r:|[._-]=** r:|=**' '+m:{[:lower:]}={[:upper:]}' '+l:|=* r:|=*' +zstyle ':completion:*' max-errors 2 numeric +zstyle ':completion:*' menu select=1 +zstyle ':completion:*' prompt 'corrections? (%e)' +zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s +zstyle ':completion:*' substitute 1 +zstyle ':completion:*' verbose true +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path $XDG_CACHE_HOME/zsh +zstyle ':completion:*:functions' ignored-patterns '_*' +zstyle ':completion:*:kill:*' force-list always +zstyle ':completion:*:cd:*' ignore-parents parent pwd +zstyle :compinstall filename '/home/nick/cfg/zsh/completion.zsh' + +autoload -Uz compinit +compinit diff --git a/zsh/dircolors b/zsh/dircolors new file mode 100644 index 0000000..e64f1a4 --- /dev/null +++ b/zsh/dircolors @@ -0,0 +1,141 @@ +# Configuration file for dircolors, a utility to help you set the +# LS_COLORS environment variable used by GNU ls with the --color option. +# Copyright (C) 1996-2016 Free Software Foundation, Inc. +# Copying and distribution of this file, with or without modification, +# are permitted provided the copyright notice and this notice are preserved. +# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the +# slackware version of dircolors) are recognized but ignored. +# Below are TERM entries, which can be a glob patterns, to match +# against the TERM environment variable to determine if it is colorizable. +TERM Eterm +TERM ansi +TERM *color* +TERM con[0-9]*x[0-9]* +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM gnome +TERM hurd +TERM jfbterm +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mlterm +TERM putty +TERM rxvt* +TERM screen* +TERM st +TERM terminator +TERM tmux* +TERM vt100 +TERM xterm* +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +#NORMAL 00 # no color code at all +#FILE 00 # regular file: use no color at all +RESET 0 # reset to "normal" color +DIR 01;34 # directory +LINK 01;36 # symbolic link. (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +MULTIHARDLINK 00 # regular file with more than one link +FIFO 40;33 # pipe +SOCK 01;35 # socket +DOOR 01;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ... +MISSING 00 # ... and the files they point to +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 1;31 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +# This is for files with execute permission: +EXEC 01;32 +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') +# If you use DOS-style suffixes, you may want to uncomment the following: +#.cmd 01;32 # executables (bright green) +#.exe 01;32 +#.com 01;32 +#.btm 01;32 +#.bat 01;32 +# Or if you want to colorize scripts even if they do not have the +# executable bit actually set. +#.sh 01;32 +#.csh 01;32 + # archives or compressed (bright red) +.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 +.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 +# audio formats +.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 +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.oga 00;36 +.opus 00;36 +.spx 00;36 +.xspf 00;36 +.mk 35 +*Makefile 35 +.pl 5;36;1;4 diff --git a/zsh/functions.zsh b/zsh/functions.zsh new file mode 100644 index 0000000..6bd9482 --- /dev/null +++ b/zsh/functions.zsh @@ -0,0 +1,27 @@ +function mpod { + mcpan pod $1 | $PAGER -c 'set ft=perldoc' +} + +function msrc { + mcpan src $1 | $PAGER -c 'set ft=perl' +} + +function scratch { + local tmp + tmp=$(mktemp --suffix=.$1) + vim -c 'set ft='$1 $tmp + rm $tmp +} + +function note { + local note + pushd + cd ~/notes + note=(${(@f)$(fzf --print-query)}) + if [[ -f $note[2] ]]; then + $VISUAL $note[2] + else + $VISUAL $note[1] + fi + popd +} diff --git a/zsh/keys.zsh b/zsh/keys.zsh new file mode 100644 index 0000000..f095954 --- /dev/null +++ b/zsh/keys.zsh @@ -0,0 +1,18 @@ +KBDFILE=$ZDOTDIR/zkbd/$TERM-$VENDOR-$OSTYPE + +[[ -f $KBDFILE ]] && source $KBDFILE + +[[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char +[[ -n ${key[Right]} ]] && bindkey "${key[Right]}" forward-char +[[ -n ${key[Backspace]} ]] && bindkey "${key[Backspace]}" backward-delete-char +[[ -n ${key[Delete]} ]] && bindkey "${key[Delete]}" delete-char +[[ -n ${key[Up]} ]] && bindkey "${key[Up]}" up-line-or-search +[[ -n ${key[Down]} ]] && bindkey "${key[Down]}" down-line-or-search +[[ -n ${key[Home]} ]] && bindkey "${key[Home]}" beginning-of-line +[[ -n ${key[End]} ]] && bindkey "${key[End]}" end-of-line + +# MOUSES +[[ -n ${key[ScrollUp]} ]] && bindkey "${key[ScrollUp]}" up-history +[[ -n ${key[ScrollDown]} ]] && bindkey "${key[ScrollDown]}" down-history + +bindkey '^R' history-incremental-search-backward diff --git a/zsh/zkbd/st-256color-unknown-linux-gnu b/zsh/zkbd/st-256color-unknown-linux-gnu new file mode 100644 index 0000000..482e37d --- /dev/null +++ b/zsh/zkbd/st-256color-unknown-linux-gnu @@ -0,0 +1,28 @@ +typeset -g -A key + +key[F1]='^[OP' +key[F2]='^[OQ' +key[F3]='^[OR' +key[F4]='^[OS' +key[F5]='^[[15~' +key[F6]='^[[17~' +key[F7]='^[[18~' +key[F8]='^[[19~' +key[F9]='^[[20~' +key[F10]='^[[21~' +key[F11]='^[[23~' +key[F12]='^[[24~' +key[Backspace]='^?' +key[Insert]='^[[4h' +key[Home]='^[[H' +key[PageUp]='^[[5~' +key[Delete]='^[[P' +key[End]='^[[4~' +key[PageDown]='^[[6~' +key[Up]='^[[A' +key[Left]='^[[D' +key[Down]='^[[B' +key[Right]='^[[C' +key[Menu]='''' +key[ScrollUp]='^Y' +key[ScrollDown]='^E' -- cgit v1.2.3-54-g00ecf