--- a/.hgignore Fri Feb 14 19:23:26 2014 -0500
+++ b/.hgignore Fri Feb 14 19:28:21 2014 -0500
@@ -32,3 +32,5 @@
fish/fish_read_history
fish/completions
fish/generated_completions/
+weechat/python/autoload/local.py
+weechat/script/plugins.xml.gz
--- a/.hgsubstate Fri Feb 14 19:23:26 2014 -0500
+++ b/.hgsubstate Fri Feb 14 19:28:21 2014 -0500
@@ -11,7 +11,7 @@
dc349bb7d30f713d770fc1fa0fe209e6aab82dc8 vim/bundle/commentary
c1646e3c28d75bcc834af4836f4c6e12296ba891 vim/bundle/ctrlp
ffbd5eb50c9daf67657b87fd767d1801ac9a15a7 vim/bundle/dispatch
-b96ccf7441ada22d764af8223b61f18896d82dc9 vim/bundle/fireplace
+544769274a3e6cf8f0ff452d7e9c8feb224b268e vim/bundle/fireplace
34e2d2538a634a0a820a56994333ffa1fec1bc58 vim/bundle/fugitive
6e9f52a160e3d15060848a8f453bd1b5bfa70db2 vim/bundle/gnupg
eb9fc8676b8959c3c2c95bf6b6e8f0f44317c5c0 vim/bundle/gundo
--- a/bin/bootstrap.sh Fri Feb 14 19:23:26 2014 -0500
+++ b/bin/bootstrap.sh Fri Feb 14 19:28:21 2014 -0500
@@ -45,10 +45,10 @@
ensure_link "lib/dotfiles/ffignore" ".ffignore"
ensure_link "lib/dotfiles/ctags" ".ctags"
ensure_link "lib/dotfiles/grc" ".grc"
-ensure_link "lib/dotfiles/mutt/notmuch-config" ".notmuch-config"
ensure_link "lib/dotfiles/bash_profile" ".bash_profile"
ensure_link "lib/dotfiles/inputrc" ".inputrc"
ensure_link "lib/dotfiles/fish/config.fish" ".config/fish/config.fish"
ensure_link "lib/dotfiles/fish/functions" ".config/fish/functions"
+echo remember to copy the notmuch-config
echo completed
--- a/bin/maven Fri Feb 14 19:23:26 2014 -0500
+++ b/bin/maven Fri Feb 14 19:28:21 2014 -0500
@@ -2,4 +2,4 @@
set -e
-mvn "$@" | grcat ~/.grc/conf.maven
+mvn "$@" | grep --line-buffered -Ev 'Including.*in the shaded jar' | grcat ~/.grc/conf.maven
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/murder Fri Feb 14 19:28:21 2014 -0500
@@ -0,0 +1,58 @@
+#!/bin/bash
+# https://gist.github.com/anonymous/32b1e619bc9e7fbe0eaa
+
+# Signal numbers to use. Configurable, as long as the number of elements in this
+# array matches the number of elements in $delays.
+signals=(15 2 1 9)
+
+# How much time processes should be given to finish their work before we try the
+# next signal. Configurable, as long as the number of elements in this array
+# matches the number of elements in $signals.
+delays=(4 6 8 0)
+
+# Takes a list of PIDs and ends the processes through increasingly rude means.
+function mykill {
+ local ps='ps'
+ ps="$ps o pid="
+
+ # Figure out the names of the signals we will try.
+ local names=($(kill -l ${signals[@]}))
+
+ local retval=0
+ if [[ $# -eq 0 ]]; then
+ printf 'mykill: Too few arguments: %d\nmykill: Usage: mykill <PIDs...>\n' $#
+ retval=1
+ else
+ for pid in $@; do
+ local index=0
+ # Try the next signal if the process is alive AND there are more
+ # signals to attempt AND the previous kill reported no errors.
+ while $ps $pid > /dev/null && [[ $index -lt ${#signals} ]] && [[ $retval -eq 0 ]]; do
+ output=$(kill -s ${signals[$index]} $pid 2>&1)
+ retval=$?
+ local killed=1
+ # Give the process some time to finish.
+ sleep ${delays[$index]}
+ index=$(($index + 1))
+ done
+
+ if [[ -z $killed ]]; then
+ printf 'mykill: Process with PID %d does not exist.\n' $pid
+
+ elif ! ${ps} ${pid} > /dev/null; then
+ index=$(($index - 1))
+ printf 'mykill: Killed process with PID %d with signal %s (%d).\n' $pid ${names[$index]} ${signals[$index]}
+
+ elif [[ ${retval} -ne 0 ]]; then
+ printf 'mykill: kill failed: %s\n' $(echo ${output} | cut -d ' ' -f 5-)
+
+ elif [[ ${index} -eq ${#signals} ]]; then
+ printf 'mykill: Failed to kill process with PID %d with signals %s\n' $pid "$(echo ${names[@]})"
+ retval=-1
+ fi
+ done
+ fi
+ return ${retval}
+}
+
+mykill $@
--- a/bin/mutt-notmuch-py Fri Feb 14 19:23:26 2014 -0500
+++ b/bin/mutt-notmuch-py Fri Feb 14 19:28:21 2014 -0500
@@ -1,1 +1,1 @@
-../../../src/mutt-notmuch-py/mutt-notmuch-py.py
\ No newline at end of file
+../../../src/mutt-notmuch-py/mutt-notmuch-py
\ No newline at end of file
--- a/bin/sort-scala-imports Fri Feb 14 19:23:26 2014 -0500
+++ b/bin/sort-scala-imports Fri Feb 14 19:28:21 2014 -0500
@@ -62,8 +62,7 @@
prefix, rest = line.split('{', 1)
- guts = [item.strip() for item in
- re.split(", +| +|,", rest.strip('{}, '))]
+ guts = re.findall(r"\w+ *=> *\w+|\w+", rest)
self.prefix = prefix
self.guts = guts
--- a/ctags Fri Feb 14 19:23:26 2014 -0500
+++ b/ctags Fri Feb 14 19:28:21 2014 -0500
@@ -38,7 +38,7 @@
--langmap=Clojure:.clj
--regex-clojure=/\([ \t]*create-ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
--regex-clojure=/\([ \t]*def[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/d,definition/
---regex-clojure=/\([ \t]*defn-?[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/f,function/
+--regex-clojure=/\([ \t]*defn-?[ \t]+(\^[-[:alnum:]*+!_:\/.?]+[ \t]+)?([-[:alnum:]*+!_:\/.?]+)/\2/f,function/
--regex-clojure=/\([ \t]*defmacro[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/m,macro/
--regex-clojure=/\([ \t]*definline[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/i,inline/
--regex-clojure=/\([ \t]*defmulti[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/a,multimethod definition/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dotcss/github.banksimple.com.css Fri Feb 14 19:28:21 2014 -0500
@@ -0,0 +1,1 @@
+code { font-family: Menlo !important; }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fish/functions/vp.fish Fri Feb 14 19:28:21 2014 -0500
@@ -0,0 +1,3 @@
+function vp -d "Vim Pasteboard"
+ pbpaste | vim -
+end
--- a/gitconfig Fri Feb 14 19:23:26 2014 -0500
+++ b/gitconfig Fri Feb 14 19:28:21 2014 -0500
@@ -72,6 +72,8 @@
uo = !git merge --ff-only origin/`git currentbranch`
uu = !git merge --ff-only upstream/`git currentbranch`
+ fuu = "!sh -c 'git fu && git uu' -"
+
addremove = !git add . && git add -u
addrem = !git addremove
--- a/hgrc Fri Feb 14 19:23:26 2014 -0500
+++ b/hgrc Fri Feb 14 19:28:21 2014 -0500
@@ -128,9 +128,7 @@
# Commit message shortcuts.
cm = commit -m
cus = commit -m 'Update subrepository state.'
-cuf = commit -m 'Update fixtures.' -I '**fixtures**.json'
cmm = commit -m 'Merge.'
-cws = commit -m 'Whitespace.'
# Merge shortcuts.
mergelocal = !$HG --config ui.merge=internal:local merge $@
@@ -145,7 +143,7 @@
d = diff -p --color=auto
# Run a colored diff and pipe it to less.
-dl = !"$HG" diff -p --color=always $@ | less -R
+dl = !"$HG" diff -p --color=never $@ | vim -R -c 'set ft=diff' -
# Kaleidoscope
# Mnemonics: "kaleidoscope diff" and "kaleidoscope show"
--- a/mutt/notmuch-config Fri Feb 14 19:23:26 2014 -0500
+++ b/mutt/notmuch-config Fri Feb 14 19:28:21 2014 -0500
@@ -11,7 +11,7 @@
# configured here named ".notmuch".
#
[database]
-path=/Users/sjl/.mail/steve-stevelosh.com
+path=/Users/sjl/.mail/simple
# User configuration
#
@@ -31,7 +31,7 @@
[user]
name=Steve Losh
primary_email=steve@stevelosh.com
-other_email=still.life@gmail.com;stilllife@gmail.com;sjl@pculture.org;steve@pculture.org;steve@ladyluckblues.com;
+other_email=still.life@gmail.com;stilllife@gmail.com;sjl@pculture.org;steve@pculture.org;steve@ladyluckblues.com;sjl@simple.com;slosh@simple.com;slj@simple.com
# Configuration for "notmuch new"
#
--- a/vim/after/plugin/fireplace-map-unfucking.vim Fri Feb 14 19:23:26 2014 -0500
+++ b/vim/after/plugin/fireplace-map-unfucking.vim Fri Feb 14 19:28:21 2014 -0500
@@ -47,7 +47,7 @@
au Filetype clojure nnoremap <buffer> <localleader>R :Require!<cr>
" Get [S]ource
- au Filetype clojure nmap <buffer> <localleader>s <Plug>FireplaceSource
+ " au Filetype clojure nmap <buffer> <localleader>s <Plug>FireplaceSource
" Eval Buffer
au Filetype clojure nnoremap <buffer> <localleader>eb :%Eval<cr>
@@ -60,4 +60,7 @@
" Open clojure command line editor client window thing
au Filetype clojure exe 'nmap <buffer> <localleader>E <Plug>FireplacePrompt' . &cedit . 'i'
+
+ " [S]how Last Result
+ au Filetype clojure nnoremap <buffer> <localleader>s :Last<cr>
augroup END
--- a/vim/after/plugin/fireplace.vim Fri Feb 14 19:23:26 2014 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/after/plugin/paredit.vim Fri Feb 14 19:28:21 2014 -0500
@@ -0,0 +1,6 @@
+augroup unmap_paredit_bullshit
+ au!
+
+ " Quit fucking with my split-line mapping, paredit.
+ au Filetype lisp nnoremap <buffer> S i<cr><esc>^mwgk:silent! s/\v +$//<cr>:noh<cr>`w
+augroup END
--- a/vim/custom-dictionary.utf-8.add Fri Feb 14 19:23:26 2014 -0500
+++ b/vim/custom-dictionary.utf-8.add Fri Feb 14 19:28:21 2014 -0500
@@ -124,7 +124,6 @@
C2C
ACH
TBBK
-Arroway
recon
SFTP
timestamp
@@ -132,3 +131,30 @@
UTC
MoneyDrop
namespaces
+DNS
+hostname
+VPC
+AWS
+EBS
+ASG
+Simple's
+EC2
+Ubuntu
+Stateful
+stateful
+tarball
+S3
+spinup
+Onboarding
+onboard
+onboarding
+spellchecking
+RabbitMQ
+SQS
+WebSphere
+iPhones
+bcrypt
+Google's
+Postgres
+GPG
+TLS
--- a/vim/vimrc Fri Feb 14 19:23:26 2014 -0500
+++ b/vim/vimrc Fri Feb 14 19:28:21 2014 -0500
@@ -62,12 +62,29 @@
set shiftround
set title
set linebreak
+set colorcolumn=+1
+
+" Spelling
+"
+" There are three dictionaries I use for spellchecking:
+"
+" /usr/share/dict/words
+" Basic stuff.
+"
+" ~/.vim/custom-dictionary.utf-8.add
+" Custom words (like my name). This is in my (version-controlled) dotfiles.
+"
+" ~/.vim-local-dictionary.utf-8.add
+" More custom words. This is *not* version controlled, so I can stick
+" work stuff in here without leaking internal names and shit.
+"
+" I also remap zG to add to the local dict (vanilla zG is useless anyway).
set dictionary=/usr/share/dict/words
-set spellfile=~/.vim/custom-dictionary.utf-8.add
-set colorcolumn=+1
-
-" iTerm2 is currently slow as ball at rendering the nice unicode lines, so for
-" now I'll just use ascii pipes. They're ugly but at least I won't want to kill
+set spellfile=~/.vim/custom-dictionary.utf-8.add,~/.vim-local-dictionary.utf-8.add
+nnoremap zG 2zg
+
+" iTerm2 is currently slow as balls at rendering the nice unicode lines, so for
+" now I'll just use ASCII pipes. They're ugly but at least I won't want to kill
" myself when trying to move around a file.
set fillchars=diff:⣿,vert:│
set fillchars=diff:⣿,vert:\|
@@ -305,7 +322,7 @@
\ . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<CR>
" Clean trailing whitespace
-nnoremap <leader>w mz:%s/\s\+$//<cr>:let @/=''<cr>`z
+nnoremap <leader>ww mz:%s/\s\+$//<cr>:let @/=''<cr>`z
" Send visual selection to paste.stevelosh.com
vnoremap <c-p> :w !curl -sF 'sprunge=<-' 'http://paste.stevelosh.com' \| tr -d '\n ' \| pbcopy && open `pbpaste`<cr>
@@ -343,6 +360,11 @@
" Panic Button
nnoremap <f9> mzggg?G`z
+" zt is okay for putting something at the top of the screen, but when I'm
+" writing prose I often want to put something at not-quite-the-top of the
+" screen. zh is "zoom to head level"
+nnoremap zh mzzt10<c-u>`z
+
" Diffoff
nnoremap <leader>D :diffoff!<cr>
@@ -420,17 +442,23 @@
nnoremap <leader>Hd :Start! hg push default<cr>
nnoremap <leader>Hu :Start! hg push upstream<cr>
-" Easy filetype switching {{{
-
-nnoremap _md :set ft=markdown<CR>
-nnoremap _hd :set ft=htmldjango<CR>
-nnoremap _jt :set ft=htmljinja<CR>
-nnoremap _js :set ft=javascript<CR>
-nnoremap _cw :set ft=confluencewiki<CR>
-nnoremap _pd :set ft=python.django<CR>
-nnoremap _d :set ft=diff<CR>
-
-" }}}
+" Zip Right
+"
+" Moves the character under the cursor to the end of the line. Handy when you
+" have something like:
+"
+" foo
+"
+" And you want to wrap it in a method call, so you type:
+"
+" println()foo
+"
+" Once you hit escape your cursor is on the closing paren, so you can 'zip' it
+" over to the right with this mapping.
+"
+" This should preserve your last yank/delete as well.
+nnoremap zl :let @z=@"<cr>x$p:let @"=@z<cr>
+
" Insert Mode Completion {{{
inoremap <c-f> <c-x><c-f>
@@ -487,7 +515,7 @@
" Don't move on *
" I'd use a function for this but Vim clobbers the last search when you're in
" a function so fuck it, practicality beats purity.
-nnoremap <silent> * :let stay_star_view = winsaveview()<cr>*<c-o>:call winrestview(stay_star_view)<cr>
+nnoremap <silent> * :let stay_star_view = winsaveview()<cr>*:call winrestview(stay_star_view)<cr>
" Jumping to tags.
"
@@ -510,7 +538,6 @@
endfunction
nnoremap <c-]> :silent! call JumpToTag()<cr>
nnoremap <c-\> :silent! call JumpToTagInSplit()<cr>
-" nnoremap <c-\> <c-w>v<c-]>mzzMzvzz15<c-e>`z:Pulse<cr>
" Keep search matches in the middle of the window.
nnoremap n nzzzv
@@ -698,6 +725,12 @@
au syntax clojure RainbowParenthesesLoadSquare
au syntax clojure RainbowParenthesesLoadBraces
+ " Since YCM is hosefucked for Clojure, we'll use omnicompletion on <c-n>
+ au FileType clojure inoremap <c-n> <c-x><c-o>
+
+ " And close the omnicomplete preview window after we're done with it.
+ au InsertLeave *.clj if pumvisible() == 0|pclose|endif
+
" Friendlier Paredit mappings.
au FileType clojure noremap <buffer> () :<c-u>call PareditWrap("(", ")")<cr>
au FileType clojure noremap <buffer> )( :<c-u>call PareditSplice()<cr>
@@ -844,6 +877,15 @@
augroup END
" }}}
+" DTrace {{{
+
+augroup ft_dtrace
+ au!
+
+ autocmd BufNewFile,BufRead *.d set filetype=dtrace
+augroup END
+
+" }}}
" Firefox {{{
augroup ft_firefox
@@ -1117,6 +1159,16 @@
augroup END
" }}}
+" Standard In {{{
+
+augroup ft_stdin
+ au!
+
+ " Treat buffers from stdin (e.g.: echo foo | vim -) as scratch.
+ au StdinReadPost * :set buftype=nofile
+augroup END
+
+" }}}
" stevelosh.com Blog Entries {{{
augroup ft_steveloshcom
@@ -1523,8 +1575,19 @@
" YouCompleteMe {{{
let g:ycm_min_num_of_chars_for_completion = 4
+" let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_seed_identifiers_with_syntax = 1
-let g:ycm_collect_identifiers_from_tags_files = 1
+let g:ycm_filetype_blacklist = {
+ \ 'tagbar' : 1,
+ \ 'qf' : 1,
+ \ 'notes' : 1,
+ \ 'markdown' : 1,
+ \ 'unite' : 1,
+ \ 'text' : 1,
+ \ 'vimwiki' : 1,
+ \ 'pandoc' : 1,
+ \ 'clojure' : 1,
+ \}
" }}}
--- a/weechat/weechat.conf Fri Feb 14 19:23:26 2014 -0500
+++ b/weechat/weechat.conf Fri Feb 14 19:28:21 2014 -0500
@@ -35,9 +35,8 @@
day_change_message_1date = "-- %a, %d %b %Y --"
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
eat_newline_glitch = off
-emphasized_attributes = ""
-highlight = "sjl,slosh,slj,clojerks,c2c,arroway,ingester"
-highlight_regex = "(^all[,:]|backend(ia)?[^/]|red[- ]tape|[mM]oney ?[dD]rop)"
+highlight = "sjl,slosh,slj,clojerks"
+highlight_regex = "(^all[,:]|backend(ia)?[^s/]|red[- ]tape|steve ?losh|rob ford|(jesus )?fucking christ)"
highlight_tags = ""
hotlist_add_buffer_if_away = on
hotlist_buffer_separator = ", "
@@ -88,7 +87,7 @@
read_marker = line
read_marker_always_show = on
read_marker_string = "◡◡◠"
-save_config_on_exit = on
+save_config_on_exit = off
save_layout_on_exit = none
scroll_amount = 3
scroll_bottom_after_switch = off