b69dc77f379c

A bunch more crap
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Sat, 09 Apr 2016 22:11:59 +0000
parents 7d16f9d89280
children f453bfba01a7
branches/tags (none)
files .hgsub .hgsubstate bin/ccl bin/lispindent bin/quicklisp-update lispwords vim/bundle/ooze/plugin/ooze.vim vim/ftplugin/lisp/lispfolding.vim vim/vimrc weechat/trigger.conf weechat/weechat.conf

Changes

--- a/.hgsub	Tue Mar 29 11:29:47 2016 +0000
+++ b/.hgsub	Sat Apr 09 22:11:59 2016 +0000
@@ -46,6 +46,7 @@
 vim/bundle/strftimedammit        = [hg]https://bitbucket.org/sjl/strftimedammit.vim/
 vim/bundle/surround              = [git]git://github.com/tpope/vim-surround.git
 vim/bundle/syntastic             = [git]git://github.com/scrooloose/syntastic.git
+vim/bundle/targets               = [git]git://github.com/wellle/targets.git
 vim/bundle/timl                  = [git]git://github.com/tpope/timl.git
 vim/bundle/tslime2               = [git]git://github.com/sjl/tslime2.vim.git
 vim/bundle/vimtex                = [git]git://github.com/lervag/vimtex.git
--- a/.hgsubstate	Tue Mar 29 11:29:47 2016 +0000
+++ b/.hgsubstate	Sat Apr 09 22:11:59 2016 +0000
@@ -36,7 +36,7 @@
 2af074850fde676743f655775e3e151925751adf vim/bundle/powerline
 fd70ac2ab74a91fb049cb8e82237c34d88354673 vim/bundle/python-mode
 eb8baa5428bde10ecc1cb14eed1d6e16f5f24695 vim/bundle/rainbow-parentheses
-613eb1c81261adfa5dead315089c432ff6dbbc51 vim/bundle/repeat
+7a6675f092842c8f81e71d5345bd7cdbf3759415 vim/bundle/repeat
 b87b9164084c093e0cbd5bff08dbbe01ea59d412 vim/bundle/scala
 1f797fda2c457202cf62d9a082a3fccd4278e3bf vim/bundle/scaladoc
 10d6c6b52fcdd12f3ba457126f66fee4ccceec04 vim/bundle/securemodelines
@@ -44,8 +44,9 @@
 0377b100382c19295b42018289fe8d42a7d57e80 vim/bundle/sparkup
 8e1c1dc358de2132b7fbc1adaf94f528e3238e4d vim/bundle/splice
 26fbdd7d1f1aa5600d2ebf39bbdd292c38aac16e vim/bundle/strftimedammit
-1a73f607f8f5477d6942df2eb6e7245c4864f4d3 vim/bundle/surround
+2d05440ad23f97a7874ebd9b5de3a0e65d25d85c vim/bundle/surround
 47c70b3e1e388d8f9cc7c6d9687efc047df843ac vim/bundle/syntastic
+f6f2d6618a321f5b0065586a7bc934325fec81ab vim/bundle/targets
 01deb947b22201c8a3dfee5ae97b11228bd9cc36 vim/bundle/timl
 d143308c5f385cce76dba5abf7b8b3737d711a4f vim/bundle/tslime2
 5d5c71044880443035e07009497962feacb56b20 vim/bundle/vimtex
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/ccl	Sat Apr 09 22:11:59 2016 +0000
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -e
+
+rlwrap ccl64 "$@"
--- a/bin/lispindent	Tue Mar 29 11:29:47 2016 +0000
+++ b/bin/lispindent	Sat Apr 09 22:11:59 2016 +0000
@@ -1,13 +1,4 @@
-":";if test -z "$LISP"; then
-":";  if test "$USER" = evalwhen; then LISP=ecl
-":";  elif test "$(arch 2>/dev/null)" = ppc; then LISP=clozure
-":";  else LISP=sbcl
-":";  fi; fi
-":";if test "$LISP" = clisp; then exec clisp -q $0
-":";elif test "$LISP" = clozure; then exec ccl -b -Q -l $0
-":";elif test "$LISP" = ecl; then exec ecl -shell $0
-":";elif test "$LISP" = sbcl; then exec sbcl --script $0
-":";fi
+#!/usr/local/bin/sbcl --script
 
 ;Dorai Sitaram
 ;Oct 8, 1999
@@ -17,6 +8,15 @@
 ;stdin and produces an indented version thereof on its
 ;stdout
 
+(defun safe-read (stream)
+  (let ((*read-eval* nil))
+    (read stream nil)))
+
+(defun safe-read-from-string (string)
+  (let ((*read-eval* nil))
+    (read-from-string string)))
+
+
 (defvar *lisp-keywords* '())
 
 (defun define-with-lisp-indent-number (n syms)
@@ -53,12 +53,16 @@
     multiple-value-bind
     with-slots))
 
-(with-open-file (i (merge-pathnames ".lispwords" (user-homedir-pathname))
-                   :if-does-not-exist nil)
-  (when i
-    (loop
-      (let ((w (or (read i nil) (return))))
-        (define-with-lisp-indent-number (car w) (cdr w))))))
+(defparameter *config-files*
+  (list (merge-pathnames ".lispwords" (user-homedir-pathname))
+        ".lispwords" ))
+
+(dolist (path *config-files*)
+  (with-open-file (i path :if-does-not-exist nil)
+    (when i
+      (loop
+        (let ((w (or (safe-read i) (return))))
+          (define-with-lisp-indent-number (car w) (cdr w)))))))
 
 (defun past-next-token (s i n)
   (let ((escapep nil))
@@ -92,7 +96,7 @@
   (let ((colon-pos (position #\: s)))
     (if colon-pos
         (if (= colon-pos 0) t nil)
-      (let ((s (read-from-string s)))
+      (let ((s (safe-read-from-string s)))
         (or (characterp s) (numberp s) (stringp s))))))
 
 ;(trace lisp-indent-number literal-token-p read-from-string past-next-token)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/quicklisp-update	Sat Apr 09 22:11:59 2016 +0000
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+sbcl --eval '(ql:update-client)' --eval '(ql:update-all-dists)' --eval '(quit)'
--- a/lispwords	Tue Mar 29 11:29:47 2016 +0000
+++ b/lispwords	Sat Apr 09 22:11:59 2016 +0000
@@ -1,8 +1,29 @@
-(1 match *let if test)
+; unfuck normal shit
+(1 if)
+(-1 loop)
+
+; fiveam
+(1 test)
+
+; optima
+(1 match)
+
+; defstar
 (2 defun*)
 
-(1 with-db)
+; alexandria / utils
 (1 switch eswitch cswitch)
+(1 while until)
+(1 with-gensyms)
+
+; arrows
+(1 -> ->> -<> -<>>)
 
-(-1 loop)
+; sketch
+(1 with-pen)
+(3 defsketch)
+(1 scancode-case)
 
+; my shit
+(1 vector-push-extend-all)
+
--- a/vim/bundle/ooze/plugin/ooze.vim	Tue Mar 29 11:29:47 2016 +0000
+++ b/vim/bundle/ooze/plugin/ooze.vim	Sat Apr 09 22:11:59 2016 +0000
@@ -1,29 +1,29 @@
-" vim: set foldmethod=indent
 " TODO: 
-" Unfuck folding
+" fix showmode awfulness
 " Disassembly mapping
 " in-package horseshit
 " error handling
 " multi-packet messages
 "
+if !exists("g:ooze_connection")
+    let g:ooze_connection = 0
+endif
 
-function! s:IsString(a)
+function! s:IsString(a) " {{{
     return type(a:a) == 1
-endfunction
+endfunction " }}}
 
-function! s:GetString(msg, key, extra)
+function! s:GetString(msg, key, extra) " {{{
     let val = get(a:msg, a:key)
     if s:IsString(val)
         return val . a:extra
     else
         return ''
     endif
-endfunction
+endfunction " }}}
 
 let g:ooze_scratch_buffer_name = '__OozeScratch__'
-function! s:OpenOozeScratch(contents)
-    echom "test"
-    echom bufname('%')
+function! s:OpenOozeScratch(contents) " {{{
     if bufname('%') != g:ooze_scratch_buffer_name
         wincmd s
         execute "edit " . g:ooze_scratch_buffer_name
@@ -40,9 +40,9 @@
     normal! ggdG
     call append(0, a:contents)
     setlocal readonly
-endfunction
+endfunction " }}}
 
-function! s:HandleMessage(msg)
+function! s:HandleMessage(msg) " {{{
     let moutput = s:GetString(a:msg, 'macroexpand-1', "")
     if moutput != ''
         call s:OpenOozeScratch(split(moutput, "\n"))
@@ -51,7 +51,6 @@
 
     let output = ''
     let output .= s:GetString(a:msg, 'stdout', "")
-    let output .= s:GetString(a:msg, 'stdout', "")
     let output .= s:GetString(a:msg, 'stderr', "")
     let output .= s:GetString(a:msg, 'value', "")
 
@@ -62,17 +61,19 @@
     let output .= s:GetString(a:msg, 'function-arglist', "\n\n")
     let output .= s:GetString(a:msg, 'function-docstring', "\n")
     if output != ''
-        echo output
+        echo substitute(output, '\n\+$', '', '')
     endif
-endfunction
+endfunction " }}}
 
-function! s:HandleData(data)
+function! s:HandleData(data) " {{{
     for msg in bencode#BdecodeAll(a:data)
         call s:HandleMessage(msg)
     endfor
-endfunction
+endfunction " }}}
 
-silent! function s:JobHandler(job_id, data, event)
+" NeoVim job-handling {{{
+
+silent! function s:JobHandler(job_id, data, event) " {{{
     if a:event == 'stdout'
         call s:HandleData(join(a:data, "\n"))
     elseif a:event == 'stderr'
@@ -80,7 +81,7 @@
     else
         1
     endif
-endfunction
+endfunction " }}}
 
 let s:callbacks = {
 \ 'on_stdout': function('s:JobHandler'),
@@ -88,103 +89,136 @@
 \ 'on_exit': function('s:JobHandler')
 \ }
 
-if !exists("g:ooze_connection")
-    let g:ooze_connection = 0
-endif
+" }}}
 
-function! OozeDisconnect()
+function! OozeDisconnect() " {{{
     if g:ooze_connection
         call jobstop(g:ooze_connection)
         let g:ooze_connection = 0
     endif
-endfunction
-
-function! OozeConnect()
+endfunction " }}}
+function! OozeConnect() " {{{
     if g:ooze_connection
         call OozeDisconnect()
     endif
     let g:ooze_connection = jobstart(['nc', 'localhost', '8675'], s:callbacks)
-endfunction
+endfunction " }}}
 
-function! OozeMacroexpand(form)
+function! OozeMacroexpand(form) " {{{
     if !g:ooze_connection
         throw "Not connected!"
     endif
     let msg = {"op": "macroexpand", "form": a:form}
     call jobsend(g:ooze_connection, bencode#Bencode(msg))
-endfunction
-
-function! OozeMacroexpandSelection()
+endfunction " }}}
+function! OozeMacroexpandSelection() " {{{
     let z = @z
     normal! gv"zy
     call OozeMacroexpand(@z)
     let @z = z
-endfunction
+endfunction " }}}
 
-function! OozeDocument(symbol)
+function! OozeDocument(symbol) " {{{
     if !g:ooze_connection
         throw "Not connected!"
     endif
     let msg = {"op": "documentation", "symbol": a:symbol}
     call jobsend(g:ooze_connection, bencode#Bencode(msg))
-endfunction
-
-function! OozeDocumentSelection()
+endfunction " }}}
+function! OozeDocumentSelection() " {{{
     let z = @z
     normal! gv"zy
     call OozeDocument(@z)
     let @z = z
-endfunction
+endfunction " }}}
+function! OozeDocumentFormHead() " {{{
+    let view = winsaveview()
+    execute "normal v\<plug>(sexp_inner_list)o\<plug>(sexp_inner_element)"
+    call OozeDocumentSelection()
+    call winrestview(view)
+endfunction " }}}
 
-function! OozeEval(code)
+function! OozeArglist(symbol) " {{{
+    if !g:ooze_connection
+        return
+        " throw "Not connected!"
+    endif
+    let msg = {"op": "arglist", "symbol": a:symbol}
+    set noshowmode
+    call jobsend(g:ooze_connection, bencode#Bencode(msg))
+endfunction " }}}
+function! OozeArglistSelection() " {{{
+    let z = @z
+    normal! gv"zy
+    call OozeArglist(@z)
+    let @z = z
+endfunction " }}}
+function! OozeArglistFormHead() " {{{
+    let view = winsaveview()
+    execute "normal v\<plug>(sexp_inner_list)o\<plug>(sexp_inner_element)"
+    call OozeArglistSelection()
+    call winrestview(view)
+endfunction " }}}
+
+function! OozeEval(code) " {{{
     if !g:ooze_connection
         throw "Not connected!"
     endif
     let msg = {"op": "eval", "code": a:code}
     call jobsend(g:ooze_connection, bencode#Bencode(msg))
-endfunction
-
-function! OozeEvalSelection()
+endfunction " }}}
+function! OozeEvalSelection() " {{{
     let z = @z
     normal! gv"zy
     call OozeEval(@z)
     let @z = z
-endfunction
+endfunction " }}}
 
-function! OozeLoad(path)
+function! OozeLoad(path) " {{{
     if !g:ooze_connection
         throw "Not connected!"
     endif
     let msg = {"op": "load-file", "path": a:path}
     call jobsend(g:ooze_connection, bencode#Bencode(msg))
-endfunction
-
-function! OozeLoadCurrent()
+endfunction " }}}
+function! OozeLoadCurrent() " {{{
     call OozeLoad(expand('%:p'))
-endfunction
+endfunction " }}}
 
-function! OozeMapKeys()
+function! OozeSelectTopLevelForm() " {{{
+    execute "normal v\<Plug>(sexp_outer_top_list)"
+endfunction " }}}
+
+function! OozeMapKeys() " {{{
     nnoremap <buffer> <localleader>C :call OozeConnect()<cr>
     nnoremap <buffer> <localleader>K :call OozeDisconnect()<cr>
 
     nnoremap <buffer> <localleader>E :call OozeEval(input("? "))<cr>
     vnoremap <buffer> <localleader>e :<c-u>call OozeEvalSelection()<cr>
-    nnoremap <buffer> <localleader>e mz:silent normal! l<cr>:call PareditFindDefunBck()<cr>vab:<c-u>call OozeEvalSelection()<cr>`z
+    nnoremap <buffer> <localleader>e mz:call OozeSelectTopLevelForm()<cr>:<c-u>call OozeEvalSelection()<cr>`z
     nnoremap <buffer> <localleader>f mzvab:<c-u>call OozeEvalSelection()<cr>`z
 
     nnoremap <buffer> <localleader>D :call OozeDocument(input("? "))<cr>
     " nnoremap <buffer> <localleader>d mzviw:<c-u>call OozeDocumentSelection()<cr>`z
-    inoremap <buffer> <silent> <c-d> <esc>mzbviw:<c-u>call OozeDocumentSelection()<cr>`za
+    inoremap <buffer> <silent> <c-d> <c-o>:<c-u>call OozeDocumentFormHead()<cr>
+    inoremap <buffer> <silent> <space> <esc>:<c-u>call OozeArglistFormHead()<cr>a<c-v><space>
     nnoremap <buffer> M mzviw:<c-u>call OozeDocumentSelection()<cr>`z
 
     nnoremap <buffer> <localleader>M :call OozeMacroexpand(input("? "))<cr>
     nnoremap <buffer> <localleader>m mzvab:<c-u>call OozeMacroexpandSelection()<cr>`z
 
     nnoremap <buffer> <localleader>r :call OozeLoadCurrent()<cr>
-endfunction
+endfunction " }}}
 
-augroup ooze_dev
+augroup ooze_dev " {{{
     au!
     autocmd BufWritePost ooze.vim source %
+augroup END " }}}
+
+augroup ooze_showmode_save
+    au!
+    " We save showmode around insert mode because the arglist command needs
+    " to disable it.
+    au InsertEnter * :let g:ooze_save_showmode=&showmode
+    au InsertLeave * :let &showmode=g:ooze_save_showmode
 augroup END
-
--- a/vim/ftplugin/lisp/lispfolding.vim	Tue Mar 29 11:29:47 2016 +0000
+++ b/vim/ftplugin/lisp/lispfolding.vim	Sat Apr 09 22:11:59 2016 +0000
@@ -22,6 +22,9 @@
         endif
     elseif getline(v:lnum) =~ '^; .*'
         return "0"
+    elseif getline(v:lnum) =~ '^(let.*\s'
+        " let over lambda
+        return ">1"
     elseif getline(v:lnum) =~ '^(defun.*\s'
         return ">1"
     elseif getline(v:lnum) =~ '^(test.*\s'
--- a/vim/vimrc	Tue Mar 29 11:29:47 2016 +0000
+++ b/vim/vimrc	Sat Apr 09 22:11:59 2016 +0000
@@ -516,6 +516,15 @@
 
 " }}}
 
+" Window Resizing
+
+" right/up : bigger
+" left/down : smaller
+nnoremap <m-right> :vertical resize +3<cr>
+nnoremap <m-left> :vertical resize -3<cr>
+nnoremap <m-up> :resize +3<cr>
+nnoremap <m-down> :resize -3<cr>
+
 " }}}
 " Quick editing ----------------------------------------------------------- {{{
 
@@ -890,7 +899,7 @@
 " }}}
 " Common Lisp {{{
 
-" (Neo)REPL Functions {{{
+" Helper Functions {{{
 function! HighlightLispRepl() "{{{
     " set syntax=lisp
     syn match replPrompt /\v^[-._a-zA-Z]+\>/
@@ -934,6 +943,9 @@
     setlocal lispwords+=labels*
     setlocal lispwords+=lambda*
     setlocal lispwords+=*let
+
+    " alexandria
+    setlocal lispwords+=define-constant
 endfunction "}}}
 function! SendLispForm() "{{{
     let view = winsaveview()
@@ -943,20 +955,25 @@
 
     call winrestview(view)
 endfunction "}}}
+function! SelectToplevelLispForm() "{{{
+    execute "normal v\<Plug>(sexp_outer_top_list)"
+endfunction "}}}
 function! SendToplevelLispForm() "{{{
     let view = winsaveview()
 
-    " If we're on the first char of the form, calling PareditFindDefunBck will
-    " move us to the previous form, which we don't want.  So instead we'll just
-    " always move a char to the right.
-    silent! normal! l
-
-    call PareditFindDefunBck()
-    execute "normal! vab\<esc>"
+    call SelectToplevelLispForm()
     call NeoReplSendSelection()
 
     call winrestview(view)
 endfunction "}}}
+function! IndentToplevelLispForm() "{{{
+    let view = winsaveview()
+
+    call SelectToplevelLispForm()
+    execute "normal! gv="
+
+    call winrestview(view)
+endfunction "}}}
 function! SendLispBuffer() "{{{
     call NeoReplSendRaw('(load "'. expand("%:p") . '")' . "\n")
 endfunction "}}}
@@ -998,6 +1015,8 @@
 
     au FileType lisp silent! call TurnOnLispFolding()
 
+    au FileType lisp setlocal iskeyword+=!,?,%
+
     " Paredit mappings
     au FileType lisp noremap <buffer> () :<c-u>call PareditWrap("(", ")")<cr>
     au FileType lisp noremap <buffer> )( :<c-u>call PareditSplice()<cr>
@@ -1011,10 +1030,6 @@
     au FileType lisp noremap <buffer> ]] :<c-u>call PareditSmartJumpClosing(0)<cr>
     " ))
 
-    " Indent top-level form.
-    au FileType lisp nmap <buffer> gi mz:silent normal99[(<cr>v%='z
-    " ])
-
     au FileType lisp setlocal equalprg=lispindentclean
 
     " s/it/happening/
@@ -1028,6 +1043,7 @@
     au FileType lisp nnoremap <buffer> <silent> <localleader>o :call OpenLispRepl()<cr>
     au FileType lisp nnoremap <buffer> <silent> <localleader>s :call SendToplevelLispForm()<cr>
     au FileType lisp nnoremap <buffer> <silent> <localleader>c :call NeoReplSendRaw("nil\n")<cr>:sleep 20m<cr>:call NeoReplSendRaw("")<cr>
+    au FileType lisp nnoremap <buffer> gi :call IndentToplevelLispForm()<cr>
 
     " Navigate trees of sexps with arrows
     au FileType lisp call s:vim_sexp_mappings()
@@ -2538,6 +2554,11 @@
 let g:splice_wrap = "nowrap"
 
 " }}}
+" Targets {{{
+
+let g:targets_pairs = '()b {}B []r <>'
+
+" }}}
 " tslime {{{
 
 let g:tslime_ensure_trailing_newlines = 1
@@ -2586,143 +2607,6 @@
 vnoremap ar a[
 
 " }}}
-" Next and Last {{{
-"
-" Motion for "next/last object".  "Last" here means "previous", not "final".
-" Unfortunately the "p" motion was already taken for paragraphs.
-"
-" Next acts on the next object of the given type, last acts on the previous
-" object of the given type.  These don't necessarily have to be in the current
-" line.
-"
-" Currently works for (, [, {, and their shortcuts b, r, B. 
-"
-" Next kind of works for ' and " as long as there are no escaped versions of
-" them in the string (TODO: fix that).  Last is currently broken for quotes
-" (TODO: fix that).
-"
-" Some examples (C marks cursor positions, V means visually selected):
-"
-" din'  -> delete in next single quotes                foo = bar('spam')
-"                                                      C
-"                                                      foo = bar('')
-"                                                                C
-"
-" canb  -> change around next parens                   foo = bar('spam')
-"                                                      C
-"                                                      foo = bar
-"                                                               C
-"
-" vin"  -> select inside next double quotes            print "hello ", name
-"                                                       C
-"                                                      print "hello ", name
-"                                                             VVVVVV
-
-onoremap an :<c-u>call <SID>NextTextObject('a', '/')<cr>
-xnoremap an :<c-u>call <SID>NextTextObject('a', '/')<cr>
-onoremap in :<c-u>call <SID>NextTextObject('i', '/')<cr>
-xnoremap in :<c-u>call <SID>NextTextObject('i', '/')<cr>
-
-onoremap al :<c-u>call <SID>NextTextObject('a', '?')<cr>
-xnoremap al :<c-u>call <SID>NextTextObject('a', '?')<cr>
-onoremap il :<c-u>call <SID>NextTextObject('i', '?')<cr>
-xnoremap il :<c-u>call <SID>NextTextObject('i', '?')<cr>
-
-
-function! s:NextTextObject(motion, dir)
-    let c = nr2char(getchar())
-    let d = ''
-
-    if c ==# "b" || c ==# "(" || c ==# ")"
-        let c = "("
-    elseif c ==# "B" || c ==# "{" || c ==# "}"
-        let c = "{"
-    elseif c ==# "r" || c ==# "[" || c ==# "]"
-        let c = "["
-    elseif c ==# "'"
-        let c = "'"
-    elseif c ==# '"'
-        let c = '"'
-    else
-        return
-    endif
-
-    " Find the next opening-whatever.
-    execute "normal! " . a:dir . c . "\<cr>"
-
-    if a:motion ==# 'a'
-        " If we're doing an 'around' method, we just need to select around it
-        " and we can bail out to Vim.
-        execute "normal! va" . c
-    else
-        " Otherwise we're looking at an 'inside' motion.  Unfortunately these
-        " get tricky when you're dealing with an empty set of delimiters because
-        " Vim does the wrong thing when you say vi(.
-
-        let open = ''
-        let close = ''
-
-        if c ==# "(" 
-            let open = "("
-            let close = ")"
-        elseif c ==# "{"
-            let open = "{"
-            let close = "}"
-        elseif c ==# "["
-            let open = "\\["
-            let close = "\\]"
-        elseif c ==# "'"
-            let open = "'"
-            let close = "'"
-        elseif c ==# '"'
-            let open = '"'
-            let close = '"'
-        endif
-
-        " We'll start at the current delimiter.
-        let start_pos = getpos('.')
-        let start_l = start_pos[1]
-        let start_c = start_pos[2]
-
-        " Then we'll find it's matching end delimiter.
-        if c ==# "'" || c ==# '"'
-            " searchpairpos() doesn't work for quotes, because fuck me.
-            let end_pos = searchpos(open)
-        else
-            let end_pos = searchpairpos(open, '', close)
-        endif
-
-        let end_l = end_pos[0]
-        let end_c = end_pos[1]
-
-        call setpos('.', start_pos)
-
-        if start_l == end_l && start_c == (end_c - 1)
-            " We're in an empty set of delimiters.  We'll append an "x"
-            " character and select that so most Vim commands will do something
-            " sane.  v is gonna be weird, and so is y.  Oh well.
-            execute "normal! ax\<esc>\<left>"
-            execute "normal! vi" . c
-        elseif start_l == end_l && start_c == (end_c - 2)
-            " We're on a set of delimiters that contain a single, non-newline
-            " character.  We can just select that and we're done.
-            execute "normal! vi" . c
-        else
-            " Otherwise these delimiters contain something.  But we're still not
-            " sure Vim's gonna work, because if they contain nothing but
-            " newlines Vim still does the wrong thing.  So we'll manually select
-            " the guts ourselves.
-            let whichwrap = &whichwrap
-            set whichwrap+=h,l
-
-            execute "normal! va" . c . "hol"
-
-            let &whichwrap = whichwrap
-        endif
-    endif
-endfunction
-
-" }}}
 " Numbers {{{
 
 " Motion for numbers.  Great for CSS.  Lets you do things like this:
--- a/weechat/trigger.conf	Tue Mar 29 11:29:47 2016 +0000
+++ b/weechat/trigger.conf	Sat Apr 09 22:11:59 2016 +0000
@@ -31,6 +31,13 @@
 cmd_pass.hook = modifier
 cmd_pass.regex = "==^((/(msg|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==$1$.*+"
 cmd_pass.return_code = ok
+dumbass_buffer.arguments = "4000|input_text_for_buffer;4000|history_add"
+dumbass_buffer.command = ""
+dumbass_buffer.conditions = ""
+dumbass_buffer.enabled = on
+dumbass_buffer.hook = modifier
+dumbass_buffer.regex = "==^ +/?b (.+)==/b ${re:1}"
+dumbass_buffer.return_code = ok
 idiot_buffer.arguments = "4000|input_text_for_buffer;4000|history_add"
 idiot_buffer.command = ""
 idiot_buffer.conditions = ""
@@ -38,13 +45,6 @@
 idiot_buffer.hook = modifier
 idiot_buffer.regex = "==^b (.+)==/b ${re:1}"
 idiot_buffer.return_code = ok
-dumbass_buffer.arguments = "4000|input_text_for_buffer;4000|history_add"
-dumbass_buffer.command = ""
-dumbass_buffer.conditions = ""
-dumbass_buffer.enabled = on
-dumbass_buffer.hook = modifier
-dumbass_buffer.regex = "==^ +/?b (.+)==/b ${re:1}"
-dumbass_buffer.return_code = ok
 msg_auth.arguments = "5000|irc_message_auth"
 msg_auth.command = ""
 msg_auth.conditions = ""
--- a/weechat/weechat.conf	Tue Mar 29 11:29:47 2016 +0000
+++ b/weechat/weechat.conf	Sat Apr 09 22:11:59 2016 +0000
@@ -36,7 +36,7 @@
 day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
 eat_newline_glitch = off
 highlight = "sjl,slosh,slj,clojerks,horrifying,remotes"
-highlight_regex = "(^all[,:]|backend(ia)?[^s/]|red[- ]tape|steve ?losh|rob ford|(jesus )?fucking christ|bring me my [A-Za-z0-9_]+ (pant|breeche|kilt|skirt|short|jort|plort)s?|(horse|mouse|clown)fuckers?|([[:<:]]((mother)?fuck([ie]ng?|er)?|(god?)?damn(ed)?|dammit|(bull|horse)?shite?)[[:>:]].*){3,}|actual footage|pork ?belly)"
+highlight_regex = "(red[- ]tape|steve ?losh|rob ford|(jesus )?fucking christ|bring me my [A-Za-z0-9_]+ (pant|breeche|kilt|skirt|short|jort|plort)s?|(horse|mouse|clown)fuckers?|([[:<:]]((mother)?fuck([ie]ng?|er)?|(god?)?damn(ed)?|dammit|(bull|horse)?shite?)[[:>:]].*){3,}|actual footage|pork ?belly)"
 highlight_tags = ""
 hotlist_add_buffer_if_away = on
 hotlist_buffer_separator = ", "