在 vim 的终端应用程序中使用 Shift 或 Command 映射功能键
Mapping Function keys with Shift or Command in Terminal app for vim
我想映射功能键和 shift/command 的组合,以便在 macOS 默认终端应用程序中切换 vim。
例如,
map <S-F5> [something Toggle]
或
map <C-S-F5> [something Toggle]
然而,在终端应用程序中,F5 (~F11) 和 shift 键的组合仅表示为波浪线 (~),因此用 vim 打开的文本文件中的内容变为大写。此外,Cmd+F5
是 VoiceOver 的快捷方式,这就是为什么我无法使用 <C-S-F5>
进行切换的原因。
如果有人有想法,请回答。
谢谢
一般来说,您应该假定 Vim 看到的是修改后的键的输出,而不是所使用的修饰符或键。例如,在大多数情况下,当您按 Shift+A
时,Vim 会看到 A
,而不是 <Shift>
和 A
。如果您的终端或 OS 或任何设置为在您按 Shift+A
时发送 )
,那么 Vim 将看到 )
并且不知道您在做什么确实发送了 )
.
该设计的一个结果是 a) 键组合必须发送 某物 才能映射,以及 b) 所讨论的“某物”与其他组合发送的其他“东西”。
实际上,TUI Vim 无法区分 <F5>
、<S-F5>
和 <C-S-F5>
,它们都发送相同的字符序列。
FWIW,<C-
是 Ctrl
的表示法。 Cmd
的表示法是 <D-
但 TUI Vim 永远不会收到 Cmd
所以无论如何你都不能使用它。
所以你基本上可以忘记:
- Shift+功能键,
- Ctrl+功能键,
- Ctrl+Shift+功能键,
- Cmd+任何东西。
注意:最近添加了 :help modifyOtherKeys
,但在我的有限测试中,它似乎破坏了比修复的更多的东西。 YMMV.
我想映射功能键和 shift/command 的组合,以便在 macOS 默认终端应用程序中切换 vim。
例如,
map <S-F5> [something Toggle]
或
map <C-S-F5> [something Toggle]
然而,在终端应用程序中,F5 (~F11) 和 shift 键的组合仅表示为波浪线 (~),因此用 vim 打开的文本文件中的内容变为大写。此外,Cmd+F5
是 VoiceOver 的快捷方式,这就是为什么我无法使用 <C-S-F5>
进行切换的原因。
如果有人有想法,请回答。
谢谢
一般来说,您应该假定 Vim 看到的是修改后的键的输出,而不是所使用的修饰符或键。例如,在大多数情况下,当您按 Shift+A
时,Vim 会看到 A
,而不是 <Shift>
和 A
。如果您的终端或 OS 或任何设置为在您按 Shift+A
时发送 )
,那么 Vim 将看到 )
并且不知道您在做什么确实发送了 )
.
该设计的一个结果是 a) 键组合必须发送 某物 才能映射,以及 b) 所讨论的“某物”与其他组合发送的其他“东西”。
实际上,TUI Vim 无法区分 <F5>
、<S-F5>
和 <C-S-F5>
,它们都发送相同的字符序列。
FWIW,<C-
是 Ctrl
的表示法。 Cmd
的表示法是 <D-
但 TUI Vim 永远不会收到 Cmd
所以无论如何你都不能使用它。
所以你基本上可以忘记:
- Shift+功能键,
- Ctrl+功能键,
- Ctrl+Shift+功能键,
- Cmd+任何东西。
注意:最近添加了 :help modifyOtherKeys
,但在我的有限测试中,它似乎破坏了比修复的更多的东西。 YMMV.