Karabiner-Elements
The integration between kindaVim and Karabiner-Elements allows you to remap keys according to kV’s Mode, on top of all the conditions already provided by KE out of the box.
Activate
- activate the integration in kV’s Settings, Mappings Pane:
- the following variables will then be available in Karabiner-Elements:
- kVnoremap
- kVnnoremap
- kVxnoremap
- kVonoremap
The variables relate to kV’s Mode and map to Vim’s owm map table .
Examples
remap Y to y$ in kV Normal Mode:
{
"description": "kV Normal Mode: map Y to y$",
"manipulators": [
{
"conditions": [
{
"name": "kVnnoremap",
"type": "variable_if",
"value": true
}
],
"from": {
"key_code": "y",
"modifiers": { "mandatory": ["shift"] }
},
"to": [
{ "key_code": "y" },
{
"key_code": "4",
"modifiers": "shift"
}
],
"type": "basic"
}
]
}remap q to open a new tab in Safari in kV Visual Mode:
{
"description": "kV Visual Mode: map q to open tab in Safari",
"manipulators": [
{
"conditions": [
{
"name": "kVxnoremap",
"type": "variable_if",
"value": true
},
{
"bundle_identifiers": [
"^com\\.apple\\.Safari$"
],
"type": "frontmost_application_if"
}
],
"from": { "key_code": "q" },
"to": [
{
"key_code": "t",
"modifiers": "command"
}
],
"type": "basic"
}
]
}enter kV Normal Mode only on specific apps (whitelist):
{
"description": "kV: enter Normal Mode only on specific apps (whitelist)",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.apple\\.Safari$",
"^com\\.tinyspeck\\.slackmacgap$",
"^com\\.otherapp\\.thatilove$"
],
"type": "frontmost_application_if"
},
{
"name": "kVnoremap",
"type": "variable_if",
"value": false
}
],
"from": { "key_code": "escape" },
"to": [
{
"key_code": "p",
"modifiers": ["shift", "option", "control", "command"]
}
],
"type": "basic"
}
]
}