From 081083b767a64468bf7c4726d661faeef9b28d43 Mon Sep 17 00:00:00 2001 From: Kevin MacMartin Date: Thu, 12 Jun 2014 19:18:16 -0400 Subject: [PATCH] Improved modifier key + mouse selection logic and changed ctrl+leftclick to select between cursor and mouse. --- README.md | 16 +++--- vim/config/keyboard.vim | 109 +++++++++++++++++++++------------------- 2 files changed, 66 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index b5c72a5..7708382 100644 --- a/README.md +++ b/README.md @@ -61,21 +61,23 @@ | Binding | Mode | Action | |:----------------------|:----:|-------------------------------------------------:| -| Shift-MiddleClick | ALL | Unbind this from vim so xorg can use it to paste | | Ctrl-ScrollUp | ALL | Scroll right a few characters at a time | | Ctrl-ScrollDown | ALL | Scroll left a few characters at a time | | Alt-ScrollUp | ALL | Scroll right one character at a time | | Alt-ScrollDown | ALL | Scroll left one character at a time | -| MiddleClick | ALL | Behaves like right-click (selects to the cursor) | +| | | | +| MiddleClick | ALL | Select between the cursor and the mouse | +| Ctrl-LeftClick | ALL | Select between the cursor and the mouse | +| Alt-LeftClick | ALL | Select the line at the mouse | +| Ctrl-Alt-LeftClick | ALL | Select the paragraph at the mouse | +| | | | | Ctrl-RightClick | ALL | Copy selection or character under the cursor | | Ctrl-MiddleClick | ALL | Copy selection or character under the cursor | | Alt-RightClick | ALL | Cut selection or character under the cursor | | Alt-MiddleClick | ALL | Cut selection or character under the cursor | -| Ctrl-Alt-RightClick | ALL | Paste at the cursor (not mouse) | -| Ctrl-Alt-MiddleClick | ALL | Paste at the cursor (not mouse) | -| Ctrl-LeftClick | ALL | Select the word being clicked | -| Alt-LeftClick | ALL | Select the line being clicked | -| Ctrl-Alt-LeftClick | ALL | Select the paragraph being clicked | +| Ctrl-Alt-RightClick | ALL | Paste at the cursor | +| Ctrl-Alt-MiddleClick | ALL | Paste at the cursor | +| Shift-MiddleClick | ALL | Paste the contents of the xorg buffer | ### Keyboard ### diff --git a/vim/config/keyboard.vim b/vim/config/keyboard.vim index e6437c3..ab2ee2a 100644 --- a/vim/config/keyboard.vim +++ b/vim/config/keyboard.vim @@ -42,25 +42,26 @@ " " Mappings: " (mouse) -" | (A) -> unbind this from vim so xorg can paste +" | (A) -> scroll right quickly +" | (A) -> scroll left quickly +" | (A) -> scroll right slowly +" | (A) -> scroll left slowly " -" | (A) -> scroll right a few characters at a time -" | (A) -> scroll left a few characters at a time -" | (A) -> scroll right one character at a time -" | (A) -> scroll left one character at a time -" -" | (A) -> behaves like right-click (selects to the cursor) +" | (A) -> selects from the cursor +" | (A) -> selects from the cursor +" | (A) -> select the line being clicked +" | (A) -> select the paragraph being clicked " " | (A) -> copy selection or character under the cursor " | (A) -> copy selection or character under the cursor +" " | (A) -> cut selection or character under the cursor " | (A) -> cut selection or character under the cursor +" " | (A) -> paste at the cursor (not mouse) " | (A) -> paste at the cursor (not mouse) " -" | (A) -> select the word being clicked -" | (A) -> select the line being clicked -" | (A) -> select the paragraph being clicked +" | (A) -> paste from xorg paste buffer " " (tabs) " | (N) -> go to the next open tab @@ -279,63 +280,67 @@ "MAPPINGS: GENERAL KEYBINDINGS AND REBINDINGS {{{ "MOUSE:{ - "configure middle click to paste from X - noremap - noremap! - "hold ctrl to scroll left/right instead of up/down - noremap 4zl - noremap 4zh + nnoremap 4zl + xnoremap 4zl inoremap 4zl + nnoremap 4zh + xnoremap 4zh inoremap 4zh "hold alt to scroll left/right more precisely - noremap zl - noremap zh + nnoremap zl + xnoremap zl inoremap zl + nnoremap zh + xnoremap zh inoremap zh - "middle click behaves like right and selects from cursor - noremap - - "ctrl+middle/right = copy line in normal and selection in visual - nnoremap Vy - nnoremap Vy - vnoremap y - vnoremap y - inoremap p - inoremap p - - "ctrl+alt+middle/right = paste - nnoremap x - nnoremap x - xnoremap x - xnoremap x - inoremap x - inoremap x - - "ctrl+alt+middle/right = paste - nnoremap p - nnoremap p - xnoremap p - xnoremap p - inoremap p - inoremap p - - "ctrl+left = word - nnoremap bvw - xnoremap bvw - inoremap bvw + "middle & ctrl+left = select from cursor + nnoremap + xnoremap + inoremap + nnoremap + xnoremap + inoremap "alt+left = line nnoremap V - xnoremap V + xnoremap $ inoremap V - "ctrl-alt+left = paragraph + "ctrl+alt+left = select paragraph nnoremap vip - xnoremap vip + xnoremap ip$ inoremap vip + + "ctrl+(middle/right) = copy + nnoremap Vy + vnoremap y + inoremap y + nnoremap Vy + vnoremap y + inoremap y + + "alt+(middle/right) = cut + nnoremap x + xnoremap x + inoremap x + nnoremap x + xnoremap x + inoremap x + + "ctrl+alt+(middle/right) = paste + nnoremap p + xnoremap p + inoremap p + nnoremap p + xnoremap p + inoremap p + + "configure middle click to paste from X + noremap + noremap! "} "TABS:{