我能';t使用Delete键删除tmux上Vim中的字符(其正常功能)

我能';t使用Delete键删除tmux上Vim中的字符(其正常功能),vim,tmux,Vim,Tmux,我玩了tmux配置。我喜欢tmux,我不想停止使用它,但由于某些原因,删除键不再删除。它删除一个字符并在vim中正常工作,但从tmux打开时不在vim中工作。退格很好。只有delete键仅在运行于tmux上的vim中停止工作。有什么想法吗 您可能需要在.vimrc中重新映射delete键。比如像这样, inoremap ^? <c-h> cnoremap ^? <c-h> " Debian-specific variation inoremap <esc>[

我玩了tmux配置。我喜欢tmux,我不想停止使用它,但由于某些原因,删除键不再删除。它删除一个字符并在vim中正常工作,但从tmux打开时不在vim中工作。退格很好。只有delete键仅在运行于tmux上的vim中停止工作。有什么想法吗

您可能需要在.vimrc中重新映射delete键。比如像这样,

inoremap ^? <c-h>
cnoremap ^? <c-h>

" Debian-specific variation
inoremap <esc>[3~ <c-h>
cnoremap <esc>[3~ <c-h>
inoremap^?
重新映射^?
“Debian特定变体
inoremap[3~
cnoremap[3~
我在我的.vimrc中有这两个功能,并且已经有很多年了,无论有没有tmux,它对我来说无处不在

我会注意到,前两行中的
^?
不是
^
字符,它是一个嵌入的删除字符。插入此字符的方法是使用vim编辑.vimrc,并使用此序列插入它:

按CtrlV,然后按Delete

如果操作正确,Vim应将其显示为
^?
,但它是文件中的一个字符。其余行的键入方式与显示的完全相同


这将重新映射delete键以发送backspace,您可以互换使用它们。

最后一个答案对您有帮助吗?它也在这里,标记为解决方案:对不起,我是linux新手。我没有运行osx,只有ubuntu和iterm2。它还能工作吗?还有,那里的人说Vim可以在tmux上删除,但我不能。我不知道老实说,请尝试重新定义delete,如果是,请自己写一个答案。
set t_kb=^V
fixdel
修复此问题?当我尝试插入嵌入的delete字符时,我得到了^[[3~如果我使用Delete键。但是如果我使用backspace键,我会得到^?。有什么问题吗?我也按ctrl v,释放它们,然后按Delete。如果我不释放它们,我会得到不同的嵌入字符。@Raksh这意味着你的backspace字符正在发送
^?
(ASCII 0x7F,DEL)。正如我的回答所建议的,Debian(可能因此Ubuntu)使用
[3~
作为删除键。所以按backspace将字符放入其中…并添加另一个字符…然后每个变体都会发送
,我认为,无论你在键盘上按什么键,它都应该工作。所以你指的是转义序列(^[)还是我错了?@Raksh我是说ESC字符,ASCII 0x1B,Vim用
表示,但在其他地方显示为
^[
,是的。尝试了你的答案,它仍然不起作用。仅供参考,当我没有在tmux上使用Vim时,它会起作用。只有当我在tmux上运行Vim时,它的行为才奇怪(当我按delete键,然后将大写改为小写,反之亦然时,它会退出插入模式)。但是,非常感谢您的快速响应。