繁体   English   中英

对于 Windows,Shift + Backspace 对 Vim 不起作用

[英]Shift + Backspace won't work on Vim for Windows

在您将此问题标记为双重问题之前,请听我说完,因为我环顾四周,找不到任何可以解决我的问题的东西。

在 Vim 中,用于 Windows(通过 Powershell 访问,从控制台运行的 ZA28966BAC17B8EEF99C5AFA5EB5941Z 可以正常工作)。 按 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>生成的转义序列创建一个非递归 map 到<backspace>生成的转义序列。

就我而言,结果看起来像

:inoremap ^? ^?

因为我的<shift-backspace>产生与<backspace>相同的序列,但在你的情况下,它应该产生对你更有用的东西。

一旦你弄清楚了这一点,把它移到你的.vimrc中,不带冒号,这有望以持久的方式解决你的问题。

Are you having the same issue as me I wonder where this happens in Windows Powershell but doesn't happen in gvim or when you run vim under cmd . 如果是这样,我认为其他响应者是正确的,即 vim 对 shift+BS 的作用与 BS 没有什么不同,但运行它的 Powershell 命令是正确的。 这不是答案,除了使用 gvim 之外,我不知道有什么办法。 但如果你想进一步挖掘,我建议它是 Windows Powershell 问题(除非我当然错了)而不是 vim。

我这样解决了这个问题:

imap Î^Cy <BS>

在我的 (Windows) 终端中, Î^Cy是 shift-backspace,而Î^Cz是 ctrl-backspace,我已经重新映射了它们。 如果Î^Cx在您的终端中是 shift-backspace,看起来就是这样,请尝试将其添加到您的 vimrc 文件中:

imap Î^Cx <BS>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM