More Vim modes and more roboustness via macros

This commit is contained in:
Knyffen 2021-08-25 17:17:16 +02:00
parent 6b92168548
commit 4f457f7024

View File

@ -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