为什么我的箭头键在iTerm下无法在vim中工作?


11

如果我使用Terminal并启动vim会话,它们工作得很好,但是在iTerm下,我不得不诉诸使用HJKL进行左右上下移动。

在终端和iTerm中,TERM = xterm-color。我.vimrc非常精简,没有设置任何会导致此问题的键绑定。

iTerm v0.10。

Answers:


5

请尝试以下操作:

  1. 从“ 书签”菜单项中,选择“ 管理书签...”
  2. 选择默认书签,然后单击编辑图标。
  3. 键盘设置更改为全局

我在iTerm2上遇到了同样的问题。没有“书签”菜单:(
韦虎

1
@Wei:它们在iTerm2中称为“个人资料”。配置文件->打开配置文件...,您可以从那里为配置文件的键盘加载xterm默认值。
伊恩·C

@Ian,谢谢。我找到了设置,但是加载xterm默认设置并不能解决问题。
胡虎

@WeiHu:来自哨兵的最初建议是加载全局设置,而不是xterm,我希望这会延续到iTerm2-我将在安装iTerm2后立即尝试。我知道Ian C.写过xterm,但这也许是一个错字。
Blaisorblade

对于iTerm2,有一个FAQ部分:iterm2.com/#/ section/ faq我使用“报告终端类型:xterm-256color”以及默认的xterm键盘绑定;您可以尝试使用Terminal.app中的应用程序,但是按键绑定似乎无关。对我而言,唯一重要的事情是将Alt设置为+ Esc而不是Meta,但是这不适用于箭头(对我来说,它固定了Alt-B和屏幕下的朋友)。
Blaisorblade 2012年

4

以下对我有用。

在iTerm2中:

  • 个人资料->打开个人资料...
  • 编辑个人资料...
  • 按键标签
  • 从“加载预设...”下拉列表中,选择“ Terminal.app兼容性”

谢谢杰拉尔德(Gerald),您是一位绅士,也是一位乡绅。
Snickers3192

2

这是我固定的方法:

nnoremap <silent> <ESC>^[A <Nop>
nnoremap <silent> <ESC>^[B <Nop>
nnoremap <silent> <ESC>^[D <Nop>
nnoremap <silent> <ESC>^[C <Nop>

注意:

“^ [”字符不能是类型,而不是你做让他们:- V并按下相应的光标箭头位置(上,下,左,右)。

已测试:iTerm2(内部版本1.0.0.20140629)


1

我能够使用iTerm2 Build 3.0.15和我的.vimrc的以下摘录来解决这个问题:

" Map alternate key combination for Esc.
noremap <c-[> <Esc>
" Map arrow keys for nomal mode.
nnoremap <silent> <Esc><Up>A <Nop>
nnoremap <silent> <Esc><Down>B <Nop>
nnoremap <silent> <Esc><Right>C <Nop>
nnoremap <silent> <Esc><Left>D <Nop>

HTH。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.