【问题标题】:vim make delete operate as backspacevim make delete 作为退格操作
【发布时间】:2015-11-02 13:27:31
【问题描述】:

我在 Ubuntu 服务器上,通过我的 mac sshd 进入。我键盘上| 键上方的键称为delete,但它在我的mac 上以backspace 运行,删除光标之前的字符。我必须按control-delete 来删除光标 之后的字符。

在我修复任何东西之前,在插入模式下(通过 ssh 在服务器上)点击 delete 键,将 ^? 插入到文本中。

我读过这个网站:http://vim.wikia.com/wiki/Backspace_and_delete_problems 我输入的地方

:fixdel
:set backspace=indent,eol,start

进入我的 .vimrc。但现在我的键充当delete 键,按下它会删除光标 after 字符,但我希望它删除光标 before 字符。如何切换此功能?

基本上,即使我的密钥在物理上被称为删除,它在我的 mac 上作为退格键运行,我希望它在通过服务器上的 ssh 使用 vim 时作为退格键运行。

【问题讨论】:

  • 如果您删除:fixdel 并执行:inoremap ^? <backspace> 会发生什么(这里^? 是您输入backspace 的地方,而不是^ 后跟?)?或者离开:fixdel 并做:inoremap <delete> <backspace>(这个会离开没有真正的删除键)?这听起来像一个简单的问题,我基本上想知道你是否已经尝试过我的问题。
  • 你用的是什么终端模拟器?
  • @FDinoff $TERM 打印 xterm。
  • @xaizek 将 vimrc 设置为简单的:inoremap ^? <backspace>,在插入模式下按退格键再次插入^?
  • @Tommy 终端仿真器不是 TERM(iterm2 或终端)?

标签: vim


【解决方案1】:

解决方案 1

如果你已经有:fixdel,那么你可以用这个命令指示Vim在插入模式下将Delete解释为Backspace

:inoremap <delete> <backspace>

在某些配置上,这可以重新映射所有删除键。

解决方案 2

或者,如果没有:fixdel^? 也应该可以重新映射,如下所示:

:inoremap ^? <backspace>

请注意这里^? 是您键入“损坏”键时出现的内容,应该可以将其作为两个键的序列输入,其中第一个是特殊的“退出”键: Ctrl-V 删除。效果应该是一样的,除非键盘代码在中间某处被破坏(即 Vim 在其输入中获得无效序列)。

【讨论】:

  • 对不起,我现在才接受;我认为浅蓝色 +50 意味着你已经得到它。对于赏金,接受答案应该会自动奖励它。
猜你喜欢
  • 1970-01-01
  • 2014-09-11
  • 2012-04-25
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2019-07-23
  • 2021-03-12
  • 2013-10-25
相关资源
最近更新 更多