From e4ee2cf995790687e36b380a1cdca2a41c3e5270 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 19 Dec 2022 11:23:31 +0530 Subject: [PATCH] Move the alt+left/right binding into zsh integration It works OOTB in bash and fish already. --- docs/changelog.rst | 2 +- kitty/options/definition.py | 8 -------- kitty/options/types.py | 2 -- shell-integration/zsh/kitty-integration | 5 +++++ 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 0c47528c5..7bb1bab59 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -69,7 +69,7 @@ Detailed list of changes - Remote control: When matching windows allow using negative id numbers to match recently created windows (:iss:`5753`) -- macOS: Bind :kbd:`option+left` and :kbd:`option+right` to :kbd:`alt+b` and :kbd:`alt+f`. This mimics the default bindings in Terminal.app (:iss:`5793`) +- ZSH Integration: Bind :kbd:`alt+left` and :kbd:`alt+right` to move by word if not already bound. This mimics the default bindings in Terminal.app (:iss:`5793`) 0.26.5 [2022-11-07] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/kitty/options/definition.py b/kitty/options/definition.py index eff67f738..1671650bf 100644 --- a/kitty/options/definition.py +++ b/kitty/options/definition.py @@ -4002,13 +4002,5 @@ map('Open kitty Website', f'open_kitty_website shift+cmd+/ open_url {website_url()}', only='macos', ) -map('Move right one word', - 'move_right_one_word alt+right send_text normal,application \\x1bf', - only='macos' - ) -map('Move left one word', - 'move_left_one_word alt+left send_text normal,application \\x1bb', - only='macos' - ) egr() # }}} egr() # }}} diff --git a/kitty/options/types.py b/kitty/options/types.py index a2e2adcab..e06d29f90 100644 --- a/kitty/options/types.py +++ b/kitty/options/types.py @@ -937,8 +937,6 @@ if is_macos: defaults.map.append(KeyDefinition(trigger=SingleKey(mods=12, key=44), definition='load_config_file')) # noqa defaults.map.append(KeyDefinition(trigger=SingleKey(mods=10, key=44), definition='debug_config')) # noqa defaults.map.append(KeyDefinition(trigger=SingleKey(mods=9, key=47), definition='open_url https://sw.kovidgoyal.net/kitty/')) # noqa - defaults.map.append(KeyDefinition(trigger=SingleKey(mods=2, key=57351), definition='send_text normal,application \\x1bf')) # noqa - defaults.map.append(KeyDefinition(trigger=SingleKey(mods=2, key=57350), definition='send_text normal,application \\x1bb')) # noqa defaults.mouse_map = [ # click_url_or_select MouseMapping(repeat_count=-2, definition='mouse_handle_click selection link prompt'), # noqa diff --git a/shell-integration/zsh/kitty-integration b/shell-integration/zsh/kitty-integration index a9631c2d0..7dc98c5e4 100644 --- a/shell-integration/zsh/kitty-integration +++ b/shell-integration/zsh/kitty-integration @@ -388,6 +388,11 @@ _ksi_deferred_init() { alias edit-in-kitty="kitty-tool edit-in-kitty" + # Map alt+left/right to move by word if not already mapped. This is expected behavior on macOS and I am tired + # of answering questions about it. + [[ $(builtin bindkey "^[1;3C") == *" undefined-key" ]] && builtin bindkey "^[1;3C" "forward-word" + [[ $(builtin bindkey "^[1;3D") == *" undefined-key" ]] && builtin bindkey "^[1;3D" "backward-word" + # Unfunction _ksi_deferred_init to save memory. Don't unfunction # kitty-integration though because decent public functions aren't supposed to # to unfunction themselves when invoked. Unfunctioning is done by calling code.