iTerm2 Vim alt +向右/向左箭头


13

作为Linux用户,我非常习惯使用ALT+ left或在vim / nano中从一个单词跳到另一个单词right

使用iTerm似乎无法正常工作,我正在使用zsh,我尝试添加;

bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word

它确实有效,但是仅在zsh内,然后我注释了这些行并在iTerm中添加了键盘快捷键;

在此处输入图片说明

它确实有效,但仅适用于 ALTleft

我如何也可以使用右箭头?

Answers:


10

在iTerm的属性中,转到“配置文件”->“密钥”并在那里进行设置

  • 对于⌥→发送转义序列[1;5C
  • 对于⌥←发送转义序列[1;5D

在此处输入图片说明


那对我不起作用。发送了转义序列,但是vim只能前后移动一个空间。运行OS X 10.8随附的默认vim 7.3。理想情况下,我想在vim方面进行更改,而不是调整终端仿真器的默认设置(因为这样做会带来更好的可移植性)。
slhck

太奇怪了,它既可以在vim中使用(从自制程序开始,不是默认的),也可以在zsh中使用oh-my-zsh的默认配置(在〜/ .oh-my-zsh / lib / key-bindings.sh中)。
eiennohito

在这里也不起作用,我可以在zsh内使用alt +箭头,在Vim中,它只能与shift +箭头一起使用:(
seds 2013年

我在可用的远程系统(ubuntu 13.04,稳定的debian和科学linux)上又检查了一次,它在任何地方都可以使用。按Control + V 、,→时输出是什么?对我来说是^ [[1; 5C
eiennohito

为我工作:iTerm / Vi + zsh
Petro Semeniuk 2014年

7

首先查看终端发送给vim的密钥代码:

$ sed -n l
^[[1;9D 

在上面的示例中,我运行了sed命令并按下Alt + Left

^[[1;9D被发送到VIM逃脱的序列,因此我们可以通过用户对于我们的映射。

添加到vimrc:

map <Esc>[1;9D :tabn<CR>

谢谢,对我有用。
j5shi '19


0

这些答案都不适合我。我最终加载了Linux VM,并检查了要得到什么<Alt-ARROW>

对我有用的4个转义序列是:

  • <Alt+Up>[1;3A
  • <Alt+Down>[1;3B
  • <Alt+Right>[1;3C
  • <Alt+Left>[1;3D

请小心编辑Profile键,而不要编辑将被P​​rofile键覆盖的主要键(默认情况下,Alt + Arrows设置为不适用于vim的十六进制序列)。


-1

vim是另一个可能的解决方案,它自己提供单词运动,请参见:

:help word-motions

2
您应该包括基本信息,而不仅仅是在此处提供参考。
pabouk 2014年
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.