我在我使用的每个 Linux 系统上都使用Ctrl-←和Ctrl-→但这些组合键在我的 Macbook Pro 上的 bash 中不起作用。它正在运行 Snow Leopard,而我正在使用内置的终端应用程序。
组合键似乎没有被任何东西之前或终端捕获,因为如果我 ssh 到我的一台 Linux 服务器,我可以使用Ctrl- ←/→跳转到命令行上的下一个/上一个单词。但是,当我在 Macbook 上的 bash 中尝试此组合键时,我只会得到“C”代表右箭头和“D”代表左箭头。
关于如何让这些密钥在 darwin bash 中工作的任何想法?
小智 15
OS X 使用 emacs 键绑定我的默认值。这几乎适用于 OS X 上的每个应用程序,它相当不错。这意味着像 Ca 和 Ce 之类的东西是行的开头/结尾。您还可以使用 M-backspace 获得漂亮的反向词kill,哦,以及使用 Ck 的 kill-line。
这应该意味着在您的终端中,forward/backward-word 分别绑定到 Mf 和 Mb(M = Meta = alt/option),但事实并非如此。在 OS X 上前进/后退词绑定到 M-?和M-?默认情况下。
您可以通过更改为您的帐户配置 GNU Readline 库的方式来更改此行为。这发生在您的~/.inputrc文件中。您可以获得大量可绑定命令man readline以及在线文档,例如此处。.
因此,要回答您的问题,您想重新映射 Readline 在看到 C- 时所做的事情吗?和 C-?在你的 linux 服务器上做它所做的事情。
~/.inputrc对于您要执行的操作,文件的语法非常简单:key-sequence: action.
这应该是您获得所需行为所需要的:
"\e[5C": forward-word
"\e[5D": backward-word
Run Code Online (Sandbox Code Playgroud)
(您可能可以将 /etc/inputrc 从您的 linux 机器复制到您的 OS X ~/.inputrc)
| 归档时间: |
|
| 查看次数: |
8764 次 |
| 最近记录: |