Commits

Steve Losh committed 9f94203

More.

Comments (0)

Files changed (9)

 vim/bundle/python-mode    = [git]git://github.com/klen/python-mode.git
 vim/bundle/repeat         = [git]git://github.com/tpope/vim-repeat.git
 vim/bundle/salt           = [git]git://github.com/saltstack/salt-vim.git
+vim/bundle/scriptease     = [git]git://github.com/tpope/vim-scriptease.git
 vim/bundle/slimv          = [hg]https://bitbucket.org/sjl/slimv
 vim/bundle/smartinput     = [git]git://github.com/kana/vim-smartinput.git
 vim/bundle/sparkup        = [git]git://github.com/sjl/vim-sparkup.git
 cd6aec27d127053d18bd2a12713137e41d054208 vim/bundle/python-mode
 613eb1c81261adfa5dead315089c432ff6dbbc51 vim/bundle/repeat
 61a7567a3cdd68cb65ceb3061071ce66d8110e65 vim/bundle/salt
-f40c4c0d58e4e05639cbcef41fecd05aa0f47258 vim/bundle/slimv
+2cbaf7e09b4767b15c92cd407b27506840b93c8b vim/bundle/scriptease
+7eb00bb460f91dcb347b23198dff343b4d8e92a9 vim/bundle/slimv
 78ab4b3df24fa2753d3dfc1be75ed5a3df1565b8 vim/bundle/smartinput
 c6197a10ace82e0fe0c08e5cf5c017b7069a978e vim/bundle/sparkup
 22feac7bc42467a8b17c8b833bd24f36b02759a4 vim/bundle/splice
 
 test -d ~/lib/dotfiles || hg clone http://bitbucket.org/sjl/dotfiles ~/lib/dotfiles
 
+ensure_link "lib/dotfiles/slate"               ".slate"
 ensure_link "lib/dotfiles/tmux/tmux.conf"      ".tmux.conf"
 ensure_link "lib/dotfiles/vim"                 ".vim"
 ensure_link "lib/dotfiles/vim/vimrc"           ".vimrc"
 alias ek 'vim ~/lib/dotfiles/keymando/keymandorc.rb'
 alias et 'vim ~/.tmux.conf'
 alias eg 'vim ~/.gitconfig'
+alias es 'vim ~/.slate'
 
 alias spotlight-off 'sudo mdutil -a -i off ; and sudo mv /System/Library/CoreServices/Search.bundle/ /System/Library/CoreServices/SearchOff.bundle/ ; and killall SystemUIServer'
 alias spotlight-on 'sudo mdutil -a -i on ; and sudo mv /System/Library/CoreServices/SearchOff.bundle/ /System/Library/CoreServices/Search.bundle/ ; and killall SystemUIServer'
     end
 end
 
+function prompt_pwd --description 'Print the current working directory, shortend to fit the prompt'
+    echo $PWD | sed -e "s|^$HOME|~|"
+end
+
 function fish_prompt
     set last_status $status
 
+config windowHintsShowIcons true
+config windowHintsIgnoreHiddenWindows false
+config windowHintsSpread true
+config defaultToCurrentScreen true
+
+alias hyper ctrl;shift;alt;cmd
+
+alias full      move screenOriginX;screenOriginY screenSizeX;screenSizeY
+alias lefthalf  move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
+alias righthalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
+
+alias thirdleft  move screenOriginX;screenOriginY screenSizeX/3;screenSizeY
+alias thirdmid   move screenSizeX/3;screenOriginY screenSizeX/3;screenSizeY
+alias thirdright move 2*screenSizeX/3;screenOriginY screenSizeX/3;screenSizeY
+
+alias bigleft  move screenOriginX;screenOriginY 2*screenSizeX/3;screenSizeY
+alias bigmid   move screenSizeX/4;screenOriginY screenSizeX/2;screenSizeY
+alias bigright move screenSizeX/3;screenOriginY 2*screenSizeX/3;screenSizeY
+
+bind pad1:${hyper} ${bigleft}
+bind pad2:${hyper} ${bigmid}
+bind pad3:${hyper} ${bigright}
+bind pad4:${hyper} ${lefthalf}
+bind pad5:${hyper} ${full}
+bind pad6:${hyper} ${righthalf}
+bind pad7:${hyper} ${thirdleft}
+bind pad8:${hyper} ${thirdmid}
+bind pad9:${hyper} ${thirdright}
+
+bind ;:${hyper}      throw next
+bind space:${hyper}  hint ASDFJKLGHNMVC
+bind delete:${hyper} relaunch
 set -sg escape-time 0
 set -sg repeat-time 600
 
+# Shut up.
+set -g quiet on
+
 # Mouse
 set -g mode-mouse on
 setw -g mouse-select-window on

vim/bundle/restdammit/doc/restdammit.txt

-restdammit.txt   A ReStructuredText Primer
-
-==============================================================================
-CONTENTS                                                 *restdammit-contents*
-
-    1. Intro .......................... |rest-intro|
-
-==============================================================================
-0. Quick Reference                                                  *rest-ref*
-
-Taken from http://docutils.sourceforge.net/docs/user/rst/quickref.html
-
-Inline Markup: >
-
-    *emphasis*                    Normally rendered as italics.
-    **strong emphasis**           Normally rendered as boldface.
-    `interpreted text`            The rendering and meaning of interpreted text
-                                  is domain- or application-dependent. It can
-                                  be used for things like index entries or
-                                  explicit descriptive markup (like program
-                                  identifiers).
-    ``inline literal``            Normally rendered as monospaced text. Spaces
-                                  should be preserved, but line breaks will
-                                  not be.
-    reference_                    A simple, one-word hyperlink reference.
-    `phrase reference`_           A hyperlink reference with spaces or
-                                  punctuation needs to be quoted with
-                                  backquotes.
-    anonymous__                   With two underscores instead of one, both
-                                  simple and phrase references may be
-                                  anonymous (the reference text is not
-                                  repeated at the target).
-    _`inline internal target`     A crossreference target within text.
-    |substitution reference|      The result is substituted in from the
-                                  substitution definition. It could be text,
-                                  an image, a hyperlink, or a combination of
-                                  these and others.
-    footnote reference [1]_       Footnote reference.
-    citation reference [CIT2002]_ Citation Reference
-    http://docutils.sf.net/       A standalone hyperlink.
-
-External links: >
-
-    External hyperlinks, like Python_.
-
-    .. _Python: http://www.python.org/
-
-==============================================================================
-1. Intro                                                          *rest-intro*
-
-This document was taken from
-http://docutils.sourceforge.net/docs/user/rst/quickstart.txt
-and manually converted to Vim's help format.
-
-==============================================================================
-2. Structure                                                  *rest-structure*
-
-From the outset, let me say that "Structured Text" is probably a bit of
-a misnomer.  It's more like "Relaxed Text" that uses certain consistent
-patterns.  These patterns are interpreted by a HTML converter to produce "Very
-Structured Text" that can be used by a web browser.
-
-The most basic pattern recognised is a **paragraph**.  That's a chunk of text
-that is separated by blank lines (one is enough).  Paragraphs must have the
-same indentation -- that is, line up at their left edge.  Paragraphs that
-start indented will result in indented quote paragraphs. For example: >
-
-  This is a paragraph.  It's quite
-  short.
-
-     This paragraph will result in an indented block of
-     text, typically used for quoting other text.
-
-  This is another one.
-
-Results in: >
-
-  This is a paragraph.  It's quite
-  short.
-
-     This paragraph will result in an indented block of
-     text, typically used for quoting other text.
-
-  This is another one.
-
-==============================================================================
-3. Text styles                                                   *rest-styles*
-
-Inside paragraphs and other bodies of text, you may additionally mark text for
-italics with "*italics*" or bold with "**bold**".  This is called "inline
-markup".
-
-If you want something to appear as a fixed-space literal, use "``double
-back-quotes``".  Note that no further fiddling is done inside the double
-back-quotes -- so asterisks "*" etc. are left alone.
-
-If you find that you want to use one of the "special" characters in text, it
-will generally be OK -- reStructuredText is pretty smart.  For example, this
-lone asterisk * is handled just fine, as is the asterisk in this equation:
-5*6=30.  If you actually want text \*surrounded by asterisks* to not be
-italicised, then you need to indicate that the asterisk is not special.  You
-do this by placing a backslash just before it, like so "\*", or by enclosing
-it in double back-quotes (inline literals), like this: >
-
-  ``*``
-
-==============================================================================
-4. Lists                                                          *rest-lists*
-
-Lists of items come in three main flavours: enumerated, bulleted and
-definitions.  In all list cases, you may have as many paragraphs, sublists,
-etc. as you want, as long as the left-hand side of the paragraph or whatever
-aligns with the first line of text in the list item.
-
-Lists must always start a new paragraph -- that is, they must appear
-after a blank line.
-
-------------------------------------------------------------------------------
-4.1 Enumerated Lists                                         *rest-lists-enum*
-
-Start a line off with a number or letter followed by a period ".", right
-bracket ")" or surrounded by brackets "( )" -- whatever you're comfortable
-with.  All of the following forms are recognised: >
-
-  1. numbers
-
-  A. upper-case letters
-     and it goes over many lines
-
-     with two paragraphs and all!
-
-  a. lower-case letters
-
-     3. with a sub-list starting at a different number
-     4. make sure the numbers are in the correct sequence though!
-
-  I. upper-case roman numerals
-
-  i. lower-case roman numerals
-
-  (1) numbers again
-
-  1) and again
-
-Results in (note: the different enumerated list styles are not always
-supported by every web browser, so you may not get the full effect here): >
-
-  1. numbers
-
-  A. upper-case letters
-     and it goes over many lines
-
-     with two paragraphs and all!
-
-  a. lower-case letters
-
-     3. with a sub-list starting at a different number
-     4. make sure the numbers are in the correct sequence though!
-
-  I. upper-case roman numerals
-
-  i. lower-case roman numerals
-
-  (1) numbers again
-
-  1) and again
-
-------------------------------------------------------------------------------
-4.2 Bulleted Lists                                           *rest-lists-bull*
-
-Just like enumerated lists, start the line off with a bullet point character
-- either "-", "+" or "*": >
-
-  * a bullet point using "*"
-
-    - a sub-list using "-"
-
-      + yet another sub-list
-
-    - another item
-
-Results in: >
-
-  * a bullet point using "*"
-
-    - a sub-list using "-"
-
-      + yet another sub-list
-
-    - another item
-
-------------------------------------------------------------------------------
-4.3 Definition Lists                                          *rest-lists-def*
-
-Unlike the other two, the definition lists consist of a term, and
-the definition of that term.  The format of a definition list is: >
-
-  what
-    Definition lists associate a term with a definition.
-
-  how
-    The term is a one-line phrase, and the definition is one or more
-    paragraphs or body elements, indented relative to the term.
-    Blank lines are not allowed between term and definition.
-
-Results in: >
-
-  what
-    Definition lists associate a term with a definition.
-
-  how
-    The term is a one-line phrase, and the definition is one or more
-    paragraphs or body elements, indented relative to the term.
-    Blank lines are not allowed between term and definition.
-
-
-==============================================================================
-5. Preformatting                                                   *rest-code*
-
-To just include a chunk of preformatted, never-to-be-fiddled-with text, finish
-the prior paragraph with "::".  The preformatted block is finished when the
-text falls back to the same indentation level as a paragraph prior to the
-preformatted block.  For example: >
-
-  An example::
-
-      Whitespace, newlines, blank lines, and all kinds of markup
-        (like this or \this) is preserved by literal blocks.
-    Lookie here, I've dropped an indentation level
-    (but not far enough)
-
-  no more example
-
-Results in: >
-
-  An example::
-
-      Whitespace, newlines, blank lines, and all kinds of markup
-        (like this or \this) is preserved by literal blocks.
-    Lookie here, I've dropped an indentation level
-    (but not far enough)
-
-  no more example
-
-Note that if a paragraph consists only of "::", then it's removed from the
-output: >
-
-  ::
-
-      This is preformatted text, and the
-      last "::" paragraph is removed
-
-Results in: >
-
-    This is preformatted text, and the
-    last "::" paragraph is removed
-
-==============================================================================
-6. Sections                                                    *rest-sections*
-
-To break longer text up into sections, you use section headers.  These are
-a single line of text (one or more words) with adornment:
-
-    1. an underline alone
-    2. an underline and an overline together
-
-in:
-
-    1. dashes "------"
-    2. equals "======"
-    3. tildes "~~~~~~"
-    4. any of the non-alphanumeric characters = - ` : ' " ~ ^ _ * + # < >
-
-An underline-only adornment is distinct from an overline-and-underline
-adornment using the same character.  The underline/overline must be at least
-as long as the title text.  Be consistent, since all sections marked with the
-same adornment style are deemed to be at the same level: >
-
-  Chapter 1 Title
-  ===============
-
-  Section 1.1 Title
-  -----------------
-
-  Subsection 1.1.1 Title
-  ~~~~~~~~~~~~~~~~~~~~~~
-
-  Section 1.2 Title
-  -----------------
-
-  Chapter 2 Title
-  ===============
-
-This results in the following structure, illustrated by simplified
-pseudo-XML: >
-
-  <section>
-      <title>
-          Chapter 1 Title
-      <section>
-          <title>
-              Section 1.1 Title
-          <section>
-              <title>
-                  Subsection 1.1.1 Title
-      <section>
-          <title>
-              Section 1.2 Title
-  <section>
-      <title>
-          Chapter 2 Title
-
-(Pseudo-XML uses indentation for nesting and has no end-tags.  It's not
-possible to show actual processed output, as in the other examples, because
-sections cannot exist inside block quotes.  For a concrete example, compare
-the section structure of this document's source text and processed output.)
-
-Note that section headers are available as link targets, just using their
-name.  To link to the Lists heading, I write "Lists_".  If the heading has
-a space in it like "text styles", we need to quote
-the heading "`text styles`_".
-
-------------------------------------------------------------------------------
-6.1 Document Title / Subtitle                                     *rest-title*
-
-The title of the whole document is distinct from section titles and may be
-formatted somewhat differently (e.g. the HTML writer by default shows it as
-a centered heading).
-
-To indicate the document title in reStructuredText, use a unique adornment
-style at the beginning of the document.  To indicate the document subtitle,
-use another unique adornment style immediately after the document title.  For
-example: >
-
-  ================
-   Document Title
-  ================
-  ----------
-   Subtitle
-  ----------
-
-  Section Title
-  =============
-
-  ...
-
-Note that "Document Title" and "Section Title" above both use equals signs,
-but are distict and unrelated styles.  The text of overline-and-underlined
-titles (but not underlined-only) may be inset for aesthetics.
-
-==============================================================================
-7.0 Images                               *rest-images* *rest-image* *rest-img*
-
-To include an image in your document, you use the the image directive.
-For example: >
-
-  .. image:: images/biohazard.png
-
-results in: >
-
-  <img src="images/biohazarg.png"/>
-
-The "images/biohazard.png" part indicates the filename of the image you wish
-to appear in the document. There's no restriction placed on the image (format,
-size etc).  If the image is to appear in HTML and you wish to supply
-additional information, you may: >
-
-  .. image:: images/biohazard.png
-     :height: 100
-     :width: 200
-     :scale: 50
-     :alt: alternate text
-
-See the full image directive documentation for more info.

vim/bundle/watchit/plugin/watchit.vim

-" This file is all from
-" http://vim.wikia.com/wiki/Have_Vim_check_automatically_if_the_file_has_changed_externally
-
-" If you are using a console version of Vim, or dealing
-" with a file that changes externally (e.g. a web server log)
-" then Vim does not always check to see if the file has been changed.
-" The GUI version of Vim will check more often (for example on Focus change),
-" and prompt you if you want to reload the file.
-"
-" There can be cases where you can be working away, and Vim does not
-" realize the file has changed. This command will force Vim to check
-" more often.
-"
-" Calling this command sets up autocommands that check to see if the
-" current buffer has been modified outside of vim (using checktime)
-" and, if it has, reload it for you.
-"
-" This check is done whenever any of the following events are triggered:
-" * BufEnter
-" * CursorMoved
-" * CursorMovedI
-" * CursorHold
-" * CursorHoldI
-"
-" In other words, this check occurs whenever you enter a buffer, move the cursor,
-" or just wait without doing anything for 'updatetime' milliseconds.
-"
-" Normally it will ask you if you want to load the file, even if you haven't made
-" any changes in vim. This can get annoying, however, if you frequently need to reload
-" the file, so if you would rather have it to reload the buffer *without*
-" prompting you, add a bang (!) after the command (WatchForChanges!).
-" This will set the autoread option for that buffer in addition to setting up the
-" autocommands.
-"
-" If you want to turn *off* watching for the buffer, just call the command again while
-" in the same buffer. Each time you call the command it will toggle between on and off.
-"
-" WatchForChanges sets autocommands that are triggered while in *any* buffer.
-" If you want vim to only check for changes to that buffer while editing the buffer
-" that is being watched, use WatchForChangesWhileInThisBuffer instead.
-"
-command! -bang WatchForChanges                  :call WatchForChanges(@%,  {'toggle': 1, 'autoread': <bang>0})
-command! -bang WatchForChangesWhileInThisBuffer :call WatchForChanges(@%,  {'toggle': 1, 'autoread': <bang>0, 'while_in_this_buffer_only': 1})
-command! -bang WatchForChangesAllFile           :call WatchForChanges('*', {'toggle': 1, 'autoread': <bang>0})
-
-" WatchForChanges function
-"
-" This is used by the WatchForChanges* commands, but it can also be
-" useful to call this from scripts. For example, if your script executes a
-" long-running process, you can have your script run that long-running process
-" in the background so that you can continue editing other files, redirects its
-" output to a file, and open the file in another buffer that keeps reloading itself
-" as more output from the long-running command becomes available.
-"
-" Arguments:
-" * bufname: The name of the buffer/file to watch for changes.
-"     Use '*' to watch all files.
-" * options (optional): A Dict object with any of the following keys:
-"   * autoread: If set to 1, causes autoread option to be turned on for the buffer in
-"     addition to setting up the autocommands.
-"   * toggle: If set to 1, causes this behavior to toggle between on and off.
-"     Mostly useful for mappings and commands. In scripts, you probably want to
-"     explicitly enable or disable it.
-"   * disable: If set to 1, turns off this behavior (removes the autocommand group).
-"   * while_in_this_buffer_only: If set to 0 (default), the events will be triggered no matter which
-"     buffer you are editing. (Only the specified buffer will be checked for changes,
-"     though, still.) If set to 1, the events will only be triggered while
-"     editing the specified buffer.
-"   * more_events: If set to 1 (the default), creates autocommands for the events
-"     listed above. Set to 0 to not create autocommands for CursorMoved, CursorMovedI,
-"     (Presumably, having too much going on for those events could slow things down,
-"     since they are triggered so frequently...)
-function! WatchForChanges(bufname, ...)
-  " Figure out which options are in effect
-  if a:bufname == '*'
-    let id = 'WatchForChanges'.'AnyBuffer'
-    " If you try to do checktime *, you'll get E93: More than one match for * is given
-    let bufspec = ''
-  else
-    if bufnr(a:bufname) == -1
-      echoerr "Buffer " . a:bufname . " doesn't exist"
-      return
-    end
-    let id = 'WatchForChanges'.bufnr(a:bufname)
-    let bufspec = a:bufname
-  end
-
-  if len(a:000) == 0
-    let options = {}
-  else
-    if type(a:1) == type({})
-      let options = a:1
-    else
-      echoerr "Argument must be a Dict"
-    end
-  end
-  let autoread    = has_key(options, 'autoread')    ? options['autoread']    : 0
-  let toggle      = has_key(options, 'toggle')      ? options['toggle']      : 0
-  let disable     = has_key(options, 'disable')     ? options['disable']     : 0
-  let more_events = has_key(options, 'more_events') ? options['more_events'] : 1
-  let while_in_this_buffer_only = has_key(options, 'while_in_this_buffer_only') ? options['while_in_this_buffer_only'] : 0
-
-  if while_in_this_buffer_only
-    let event_bufspec = a:bufname
-  else
-    let event_bufspec = '*'
-  end
-
-  let reg_saved = @"
-  "let autoread_saved = &autoread
-  let msg = "\n"
-
-  " Check to see if the autocommand already exists
-  redir @"
-    silent! exec 'au '.id
-  redir END
-  let l:defined = (@" !~ 'E216: No such group or event:')
-
-  " If not yet defined...
-  if !l:defined
-    if l:autoread
-      let msg = msg . 'Autoread enabled - '
-      if a:bufname == '*'
-        set autoread
-      else
-        setlocal autoread
-      end
-    end
-    silent! exec 'augroup '.id
-      if a:bufname != '*'
-        "exec "au BufDelete    ".a:bufname . " :silent! au! ".id . " | silent! augroup! ".id
-        "exec "au BufDelete    ".a:bufname . " :echomsg 'Removing autocommands for ".id."' | au! ".id . " | augroup! ".id
-        exec "au BufDelete    ".a:bufname . " execute 'au! ".id."' | execute 'augroup! ".id."'"
-      end
-        exec "au BufEnter     ".event_bufspec . " :checktime ".bufspec
-        exec "au CursorHold   ".event_bufspec . " :checktime ".bufspec
-        exec "au CursorHoldI  ".event_bufspec . " :checktime ".bufspec
-
-      " The following events might slow things down so we provide a way to disable them...
-      " vim docs warn:
-      "   Careful: Don't do anything that the user does
-      "   not expect or that is slow.
-      if more_events
-        exec "au CursorMoved  ".event_bufspec . " :checktime ".bufspec
-        exec "au CursorMovedI ".event_bufspec . " :checktime ".bufspec
-      end
-    augroup END
-    let msg = msg . 'Now watching ' . bufspec . ' for external updates...'
-  end
-
-  " If they want to disable it, or it is defined and they want to toggle it,
-  if l:disable || (l:toggle && l:defined)
-    if l:autoread
-      let msg = msg . 'Autoread disabled - '
-      if a:bufname == '*'
-        set noautoread
-      else
-        setlocal noautoread
-      end
-    end
-    " Using an autogroup allows us to remove it easily with the following
-    " command. If we do not use an autogroup, we cannot remove this
-    " single :checktime command
-    " augroup! checkforupdates
-    silent! exec 'au! '.id
-    silent! exec 'augroup! '.id
-    let msg = msg . 'No longer watching ' . bufspec . ' for external updates.'
-  elseif l:defined
-    let msg = msg . 'Already watching ' . bufspec . ' for external updates'
-  end
-
-  " echo msg
-  let @"=reg_saved
-endfunction
-
-let autoreadargs={'autoread':1} 
-execute WatchForChanges("*",autoreadargs)
 " Kill window
 nnoremap K :q<cr>
 
+" Man
+nnoremap M K
+
 " Toggle line numbers
 nnoremap <leader>n :setlocal number!<cr>
 
 nnoremap <leader>ez :vsplit ~/lib/dotfiles/zsh<cr>4j
 nnoremap <leader>ek :vsplit ~/lib/dotfiles/keymando/keymandorc.rb<cr>
 nnoremap <leader>et :vsplit ~/.tmux.conf<cr>
+nnoremap <leader>es :vsplit ~/.slate<cr>
 
 " }}}
 " Searching and movement -------------------------------------------------- {{{
 
 runtime macros/matchit.vim
 map <tab> %
+unmap [%
+unmap ]%
 
 " Made D behave
 nnoremap D d$
     au FileType clojure nnoremap <buffer> <localleader>ee :call SlimvEvalDefun()<cr>
     au FileType clojure nnoremap <buffer> <localleader>en mzgg:call SlimvEvalDefun()<cr>`z
 
+    " Friendlier Paredit mappings.
+    au FileType clojure noremap <buffer> () :<c-u>call PareditWrap("(", ")")<cr>
+    au FileType clojure noremap <buffer> )( :<c-u>call PareditSplice()<cr>
+    au FileType clojure noremap <buffer> (( :<c-u>call PareditMoveLeft()<cr>
+    au FileType clojure noremap <buffer> )) :<c-u>call PareditMoveRight()<cr>
+    au FileType clojure noremap <buffer> (j :<c-u>call PareditJoin()<cr>
+    au FileType clojure noremap <buffer> (s :<c-u>call PareditSplit()<cr>
+    au FileType clojure noremap <buffer> [ :<c-u>call PareditSmartJumpOpening(0)<cr>
+    au FileType clojure noremap <buffer> ] :<c-u>call PareditSmartJumpClosing(0)<cr>
+
     " And the inspect mapping.
     au FileType clojure nmap <buffer> \i \di
 
     au FileType jinja,htmldjango inoremap <buffer> <c-t> {%<space><space>%}<left><left><left>
 
     " Django variables
-    au FileType jinja,htmldjango inoremap <buffer> <c-f> {{<space><space>}}<left><left><left>
+    au FileType jinja,htmldjango inoremap <buffer> <c-b> {{<space><space>}}<left><left><left>
 augroup END
 
 " }}}
 " Python-Mode {{{
 
 let g:pymode_doc = 1
-let g:pymode_doc_key = '<localleader>ds'
+let g:pymode_doc_key = 'M'
 let g:pydoc = 'pydoc'
 let g:pymode_syntax = 1
 let g:pymode_syntax_all = 0
 " let g:slimv_repl_syntax = 0
 let g:slimv_repl_wrap = 0
 let g:slimv_preferred = 'clisp'
+let g:paredit_smartjump = 1
 
 " Use a swank command that works, and doesn't require new app windows.
 let g:slimv_swank_clojure = '!dtach -n /tmp/dtach-swank.sock -r winch lein ritz 4005'