编辑器可以用 alt + 左右键,在单字之间移动,可是在 iTerm 中貌似会触发到快捷键,有其他方法吗?
# ~/.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
在~/.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
我的方案主要是编辑 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
要先切换到 Unicode 16 进位输入,没有这输入法的话要去 preference 勾选,然后切换过去。
开启 iTerm 如我上图,在 Esc +
那个栏位,压著 alt + 007f
,要压著一起打,成功输进去的话 placeholder 应该要消失,这个时候在 iTerm 里试试,alt + delete
应该可行的。