工具控 OS X 下的 iTerm 2 如何让 cursor 跳字移动?

artone · 发布于 2012年10月17日 · 最后由 towonzhou 回复于 2014年5月07日 · 3823 次阅读
3417

编辑器可以用 alt + 左右键,在单字之间移动,可是在 iTerm 中貌似会触发到快捷键,有其他方法吗?

共收到 14 条回复
96
chentianwen · #1 · 2012年10月17日
# ~/.inputrc

## Key binding
# @see `bind -p`
# @format "key": command
$if mode=emacs # find the keyboard preference in mac terminal
    "\e[3~":              delete-char             # del
    "\e[1~":              beginning-of-line       # home
    "\e[4~":              end-of-line             # end
    "\x1B\x1B\x5B\x44":   backward-word           # opt + left
    "\x1B\x1B\x5B\x43":   forward-word            # opt + right
    "\e[B":               history-search-forward  # down
    "\e[A":               history-search-backward # up
    # no magic-space. not working in postgres console
    #Space:                magic-space
$endif
3417
artone · #2 · 2012年10月17日

#1楼 @chentianwen 看不明白,能不能说明一下?感谢。

96
yangyanhao · #3 · 2012年10月17日

在~/.inputrc中加入:

"\e[1;9D": backward-word "\e[1;9C": forward-word

http://superuser.com/questions/357355/how-can-i-get-controlleft-arrow-to-go-back-one-word-in-iterm2

3417
artone · #4 · 2012年10月17日

#3楼 @yangyanhao 谢谢,我来研究一下。

2880
luikore · #5 · 2012年10月17日 1 个赞

我的方案主要是编辑 iTerm profile 里的快捷键

右移一个词: opt + 右 send escape sequence f 左移一个词: opt + 左 send escape sequence b 左删一个词: opt + del send escape sequence 007f (用 unicode 输入法,按住 opt 的同时输入 007f,字符不显示)

行首和行末复杂点,先要把原本 cmd + 左/右 的快捷键解绑,然后

行首:cmd + 左 send escape sequence OH 行末:cmd + 右 send escape sequence OF

如果用 bash, 修改 ~/.inputrc

"\e[1~": beginning-of-line
"\e[4~": end-of-line

如果用 zsh:

bindkey "^[OH" beginning-of-line
bindkey "^[OF" end-of-line
1573
nightire · #6 · 2012年10月17日

还有一种方案可以启用CLI的vim模式,如果熟vim的话会很爽。

60
googya · #7 · 2012年10月17日

@luikore 的建议很不错

96
primemars · #8 · 2012年10月17日

alt+b, alt+f ?

3417
artone · #9 · 2012年10月18日

最后我的方法是改成这样:

alt + 右则是改成 Esc + f,跟 @luikore 应该是同个方法。

96
mike · #10 · 2012年10月18日

@luikore 007f那个始终不行,求教详细设置方法

3417
artone · #11 · 2012年10月19日

#10楼 @mike

要先切换到 Unicode 16 进位输入,没有这输入法的话要去 preference 勾选,然后切换过去。

开启 iTerm 如我上图,在 Esc + 那个栏位,压著 alt + 007f,要压著一起打,成功输进去的话 placeholder 应该要消失,这个时候在 iTerm 里试试,alt + delete 应该可行的。

96
sectic · #12 · 2012年10月19日

esc + f ,esc + b

96
chentianwen · #13 · 2012年10月19日

#2楼 @artone That's the example file of inputrc, you don't need to change the iterm2 or terminal configuration.

7966
towonzhou · #14 · 2014年5月07日

#6楼 @nightire 这个怎么开启?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册