d11d74fcebab

Merge.
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Fri, 14 Feb 2014 19:28:21 -0500
parents 88e2c4dcdb52 (diff) 3653651e4dfc (current diff)
children 76ebf5e214a1
branches/tags (none)
files .hgignore .hgsubstate bin/bootstrap.sh fish/functions/weechat.fish keyremap4macbook/private.xml vim/vimrc weechat/weechat.conf

Changes

--- 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