Shift + Backspace 不适用于 Vim for Windows
Shift + Backspace won't work on Vim for Windows
在您将此问题标记为双重问题之前,请听我说完,因为我环顾四周但找不到任何可以解决我的问题的方法。
在 Vim 中 Windows(通过控制台中的 CMD 通过 Powershell 运行 访问),退格键工作正常。按 Shift(或 Ctrl)+ Backspace 会在屏幕上打印出一个看起来很奇怪的 I,然后按 Ctrl+C。
使用 :set 查看我的 Vim 上退格键的键码是什么:“εCx”。考虑到上述行为,这是有道理的。有趣的是,这个键码显然是用于普通退格键的。但是,我的问题在正常按退格键时不会出现,考虑到正常的键码是这个奇怪的字符集合,这对我来说没有意义。仅在退格键与 shift 键组合时出现。
我不明白为什么退格键不发送 ^H 或 ^?。我听说这两个选项很受欢迎。我假设我的终端以某种方式搞砸了,但我不明白为什么它会在按下 shift 键时发送不同的退格键码。
提前致谢。
我不知道为什么这会发生在你的配置中,但你应该能够使用inoremap
让它做你想做的事。
交互式地,你可以通过输入这个来测试我的想法
:inoremap <hit control-V><hit shift-backspace> <hit control-v><hit backspace>
这将做的是在插入模式下为 <shift-backspace>
生成的转义序列创建一个非递归映射到 <backspace>
生成的转义序列。
在我的例子中,结果看起来像
:inoremap ^? ^?
因为我的 <shift-backspace>
产生与 <backspace>
相同的序列,但在你的情况下它应该产生对你更有用的东西。
一旦你弄明白了,把它移到你的 .vimrc
不带冒号,这将有望以持久的方式解决你的问题。
你有和我一样的问题吗?我想知道这种情况在 Windows Powershell 中发生在哪里,但在 gvim
中没有发生,或者当你在 运行 vim
下cmd
。如果是这样,我认为其他响应者是正确的,vim 使用 shift+BS 与 BS 没有什么不同,但 Powershell 命令 运行ning 是。这不是答案,除了使用 gvim 之外,我不知道解决它的方法。但是如果你想进一步挖掘,我建议它是 Windows Powershell 那是问题(当然除非我错了)而不是 vim.
我是这样解决这个问题的:
imap Î^Cy <BS>
在我的 (Windows) 终端中,Î^Cy
是 shift-backspace 而 Î^Cz
是 ctrl-backspace,我已经重新映射了它们。如果 Î^Cx
在您的终端中是 shift-backspace,看起来是这样,请尝试将其添加到您的 vimrc 文件中:
imap Î^Cx <BS>
在您将此问题标记为双重问题之前,请听我说完,因为我环顾四周但找不到任何可以解决我的问题的方法。
在 Vim 中 Windows(通过控制台中的 CMD 通过 Powershell 运行 访问),退格键工作正常。按 Shift(或 Ctrl)+ Backspace 会在屏幕上打印出一个看起来很奇怪的 I,然后按 Ctrl+C。
使用 :set 查看我的 Vim 上退格键的键码是什么:“εCx”。考虑到上述行为,这是有道理的。有趣的是,这个键码显然是用于普通退格键的。但是,我的问题在正常按退格键时不会出现,考虑到正常的键码是这个奇怪的字符集合,这对我来说没有意义。仅在退格键与 shift 键组合时出现。
我不明白为什么退格键不发送 ^H 或 ^?。我听说这两个选项很受欢迎。我假设我的终端以某种方式搞砸了,但我不明白为什么它会在按下 shift 键时发送不同的退格键码。
提前致谢。
我不知道为什么这会发生在你的配置中,但你应该能够使用inoremap
让它做你想做的事。
交互式地,你可以通过输入这个来测试我的想法
:inoremap <hit control-V><hit shift-backspace> <hit control-v><hit backspace>
这将做的是在插入模式下为 <shift-backspace>
生成的转义序列创建一个非递归映射到 <backspace>
生成的转义序列。
在我的例子中,结果看起来像
:inoremap ^? ^?
因为我的 <shift-backspace>
产生与 <backspace>
相同的序列,但在你的情况下它应该产生对你更有用的东西。
一旦你弄明白了,把它移到你的 .vimrc
不带冒号,这将有望以持久的方式解决你的问题。
你有和我一样的问题吗?我想知道这种情况在 Windows Powershell 中发生在哪里,但在 gvim
中没有发生,或者当你在 运行 vim
下cmd
。如果是这样,我认为其他响应者是正确的,vim 使用 shift+BS 与 BS 没有什么不同,但 Powershell 命令 运行ning 是。这不是答案,除了使用 gvim 之外,我不知道解决它的方法。但是如果你想进一步挖掘,我建议它是 Windows Powershell 那是问题(当然除非我错了)而不是 vim.
我是这样解决这个问题的:
imap Î^Cy <BS>
在我的 (Windows) 终端中,Î^Cy
是 shift-backspace 而 Î^Cz
是 ctrl-backspace,我已经重新映射了它们。如果 Î^Cx
在您的终端中是 shift-backspace,看起来是这样,请尝试将其添加到您的 vimrc 文件中:
imap Î^Cx <BS>