From a55c338cdfe461ad83ead8bcfff8bf415671c1aa Mon Sep 17 00:00:00 2001 From: yan Date: Thu, 15 Dec 2011 22:20:51 -0800 Subject: [PATCH] Improving keybindings to not interfere with standard things --- README.md | 31 +++++++++++------- vim/plugin/settings/skwp-keymap.vim | 50 ++++++++++++++++++++--------- 2 files changed, 54 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 92d9d63e..34bd7ebf 100644 --- a/README.md +++ b/README.md @@ -134,10 +134,13 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke Navigation * ,f - instantly Find definition of class (must have exuberant ctags installed) - * Ctrl-j and Ctrl-k to move up and down roughly by functions - * Ctrl-\ - Show NerdTree (project finder) and expose current file - * ,, or z,, - use EasyMotion - type that and then type one of the highlighted letters. * ,z - jump back and forth between last two buffers + * ,, or z,, - use EasyMotion - type that and then type one of the highlighted letters. + + * Ctrl-j and Ctrl-k to move up and down roughly by functions + * Ctrl-\ - Show current file in nerd tree + * Ctrl-O - Old cursor position - this is a standard mapping but very useful, so included here + * Ctrl-I - opposite of Ctrl-O (again, this is standard) LustyJuggler @@ -148,14 +151,15 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke Rails - * \ss to run specs, \ll to run a given spec on a line - using my vim-ruby-conque plugin (https://github.com/skwp/vim-ruby-conque) + * ,ru - Rails Unittest - synonym for :AV from rails.vim, opens up the corresponding test/spec to the file you're looking for, in a vertical split * ,lm ,lc ,ls - rails specific lusty juggler file finders (models, controllers, specs, etc) - just use the letter for what you want after ,l + * \ss to run specs, \ll to run a given spec on a line - using my vim-ruby-conque plugin (https://github.com/skwp/vim-ruby-conque) Search * Cmd-* - highlight all occurrences of current word (similar to regular * except doesn't move) * ,hl - toggle search highlight on and off - * K - git grep for the Kurrent word under the cursor + * ,gcw - GitGrep the current word under the cursor * ,gg - GitGrep command line with a quote pretyped (close the quote yourself) * ,gcp - GitGrep Current Partial to find references to the current view partial * // - clear the search @@ -168,7 +172,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke RSI-reduction * Cmd-k and Cmd-d to type underscores and dashes (use ), since they are so common in code but so far away from home row - * W - write a file (instead of :w, saving you keystrokes for the most common vim operation) + * ; instead of : - avoid Shift for common tasks, just hit semicolon to get to ex mode Buffer/Window Manipulation @@ -176,12 +180,17 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * \Q - Kill a buffer completely (normally :bw) * vv and ss - vertical and horizontal split windows by double tapping * H,L,I,M - to move left, right, up, down between windows - - Convenience + * Cmd-H and Cmd-L - left an right on tabs + * Use Cmd-1..Cmd-0 to switch to a specific tab number (like iTerm) - * cf - Copy Filename of current file into system (not vi) paste buffer - * Cc - (Current command) copies the command under your cursor and executes it in vim. Great for testing single line changes to vimrc. - * gcc (comment a line) via tComment, and gcp custom alias to comment a paragraph + Utility + + * ,cf - Copy Filename of current file into system (not vi) paste buffer + * ,cc - (Current command) copies the command under your cursor and executes it in vim. Great for testing single line changes to vimrc. + * ,yw - yank a word from anywhere within the word (so you don't have to go to the beginning of it) + * ,ow - overwrite a word with whatever is in your yank buffer - you can be anywhere on the word. saves having to visually select it + * gcc (comment a line) via tComment (standard) + * gcp (comment a paragraph) added * ,t - Command-T fuzzy file selector (alternative to PeepOpen / LustyJuggler) Included vim plugins diff --git a/vim/plugin/settings/skwp-keymap.vim b/vim/plugin/settings/skwp-keymap.vim index 456f20b5..2a4d17ea 100644 --- a/vim/plugin/settings/skwp-keymap.vim +++ b/vim/plugin/settings/skwp-keymap.vim @@ -2,9 +2,15 @@ " General vim sanity improvements " ======================================== " -" alias yw to yank the entire word even if the -" cursor is inside the word -nnoremap yw yaw +" alias yw to yank the entire word 'yank inner word' +" even if the cursor is halfway inside the word +" FIXME: will not properly repeat when you use a dot (tie into repeat.vim) +nnoremap ,yw yiww + +" ,ow = 'overwrite word', replace a word with what's in the yank buffer +" FIXME: will not properly repeat when you use a dot (tie into repeat.vim) +nnoremap ,ow viwp + "make Y consistent with C and D nnoremap Y y$ @@ -24,16 +30,13 @@ imap _ imap - imap - -" alias W to write the file instead of :w -nnoremap W :w - " Don't have to use Shift to get into command mode, just hit semicolon nnoremap ; : " ================== rails.vim " -" Open corresponding unit test/spec in a vertical split -nmap ,rt :AV +" Open corresponding unittest (or spec), alias for :AV in rails.vim +nmap ,ru :AV " ==== NERD tree nmap ,n :NERDTreeToggle @@ -72,6 +75,22 @@ nnoremap L l nnoremap I k nnoremap M j +" Move between tabs with Cmd-Shift-H and Cmd-Shift-L +map :tabprevious +map :tabnext + +" Use numbers to pick the tab you want (like iTerm) +map :tabn 1 +map :tabn 2 +map :tabn 3 +map :tabn 4 +map :tabn 5 +map :tabn 6 +map :tabn 7 +map :tabn 8 +map :tabn 9 +map :tabn 0 + " Create window splits easier. The default " way is Ctrl-w,v and Ctrl-w,s. I remap " this to vv and ss @@ -99,16 +118,16 @@ imap <% %>2hi " copy current filename into system clipboard - mnemonic: (c)urrent(f)ilename " this is helpful to paste someone the path you're looking at -nnoremap cf :let @* = expand("%:p") +nnoremap ,cf :let @* = expand("%:p") "Clear current search highlight by double tapping // nmap // :nohlsearch -" (C)opy (c)ommand - which allows us to execute +" (c)opy (c)ommand - which allows us to execute " the line we're looking at (it does so by yy-copy, colon " to get to the command mode, C-f to get to history editing " p to paste it, C-c to return to command mode, and CR to execute -nmap Cc yy:p +nmap ,cc yy:p " Type ,hl to toggle highlighting on/off, and show current value. noremap ,hl :set hlsearch! hlsearch? @@ -117,10 +136,6 @@ noremap ,hl :set hlsearch! hlsearch? " http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches nnoremap :let @/='\<=expand("")\>':set hls -" After repeating a command, return the cursor to where it started -" http://vim.wikia.com/wiki/VimTip1142 -nmap . .`[ - " These are very similar keys. Typing 'a will jump to the line in the current " file marked with ma. However, `a will jump to the line and column marked " with ma. It’s more useful in any case I can imagine, but it’s located way @@ -129,5 +144,8 @@ nmap . .`[ nnoremap ' ` nnoremap ` ' -" Abbreviations to use...snippets that are expanded with space +" ============================ +" Abbreviations to use... +" ============================ +" snippets that are expanded with space abbr pry! require 'pry'; binding.pry