From 4f457f70247047e991b4f304ef849bedfbcf0420 Mon Sep 17 00:00:00 2001 From: Knyffen Date: Wed, 25 Aug 2021 17:17:16 +0200 Subject: [PATCH] More Vim modes and more roboustness via macros --- keymapper.conf | 56 ++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/keymapper.conf b/keymapper.conf index 77fa6c1..c6dc231 100644 --- a/keymapper.conf +++ b/keymapper.conf @@ -12,7 +12,7 @@ # Define virtual keys Vim = Virtual1 -Ins = Virtual2 +Ins = Virtual2 # (mostly used as a negative !Ins) Jump = Virtual3 # Set LED indicator @@ -22,40 +22,48 @@ Jump = Virtual3 # Regular remappings CapsLock >> ContextMenu -# Multi-step G-jumps -!Jump !Shift Vim{G} >> Jump -(Vim Jump){Escape} >> Jump +# Define Macros +VimI = !Jump !Control (Ins Vim) # Insert mode +VimJ = !Ins !Shift !Control (Jump Vim) # G+commands (jumps) +VimJS = !Ins !Control (Jump Vim) # G+commands (jumps) hold shift +VimN = !Ins !Jump !Shift !Control Vim # Normal mode +VimNS = !Ins !Jump !Control (Vim Shift) # Normal mode hold shift -# Ins is for emulating e.g. insert mode, search or typing commands -!Ins Vim{I} >> Ins -Ins{Enter} >> Ins -Ins{Escape} >> InsEsc +# Vim insert mode +VimN{I} >> Ins +VimN{A} >> ArrowRight Ins +VimI{Enter} >> Enter Ins +VimI{Escape} >> InsEsc + +# Vim jumps +VimN{G} >> Jump +VimJ{Escape} >> Jump [title="Firefox"] -!Ins Vim{U} >> PageUp -!Ins Vim{D} >> PageDown +VimN{U} >> PageUp +VimN{D} >> PageDown # Search -!Ins Vim{Slash} >> Control{F} Ins -!Ins Vim{N} >> F3 -!Ins Vim{Shift{N}} >> Shift{F3} -InsEsc >> Ins +VimN{Slash} >> Control{F} Ins +VimN{N} >> F3 +VimNS{N} >> Shift{F3} # Jump -(Vim Jump){G} >> Home Jump -!Jump (Vim Shift){G} >> Shift End # shift is necessary to avoid the shift+end key combination +VimJ{G} >> Home Jump +VimNS{G} >> Shift End # shift is necessary to avoid the shift+end key combination [title="KRunner"] InsEsc >> Ins Escape # Systemwide Vim mode [system="Linux"] -!Ins Vim{H} >> ArrowLeft -!Ins Vim{J} >> ArrowDown -!Ins Vim{K} >> ArrowUp -!Ins Vim{L} >> ArrowRight -!Ins !Control Vim{W} >> Control{ArrowRight} -!Ins Vim{B} >> Control{ArrowLeft} -!Ins Vim{Backspace} >> ArrowLeft -!Ins Vim{Backslash} >> AltLeft{F2} Ins +VimN{H} >> ArrowLeft +VimN{J} >> ArrowDown +VimN{K} >> ArrowUp +VimN{L} >> ArrowRight +VimN{W} >> Control{ArrowRight} +VimN{B} >> Control{ArrowLeft} +VimN{Backspace} >> ArrowLeft +VimN{Backslash} >> AltLeft{F2} Ins +VimN{X} >> Delete InsEsc >> Ins # VIM: let g:neomake_verbose = 3