如何更改iTerm2 clear行的快捷方式?

时间:2016-07-08 10:26:05

标签: macos zsh iterm2

Ctrl + l是iTerm2中清除行的默认快捷方式,我想将其更改为Cmd + l,但无法找到此操作:

enter image description here

顺便说一句,我正在使用zsh。

2 个答案:

答案 0 :(得分:1)

Ctrl-L或"表单Feed"是ANSI / VT100协议(http://wiki.bash-hackers.org/scripting/terminalcodes)的一部分,它不是iTerm2特有的。

最好的方法是在按下Cmd-L时使用Applescript将Ctrl-L发送到终端。

答案 1 :(得分:1)

这是 zsh 绑定不是 iTerm 绑定。 Ctrl + l 是zsh中clear-screen小部件的默认绑定。它也适用于 bash (以及其他shell)这一事实仅仅是惯例。在 bash - 或者更确切地说 readline bash的命令行编辑器中 - 它是命名为clear-screen的命令的默认绑定

通常,您可以使用命令bindkey KEYSEQUENCE WIDGET更改 zsh 中的键绑定。遗憾的是, iTerm2 可能不支持所有修饰符与shell一起使用。您可以通过运行cat -v然后按所需的组合键来测试是否支持它。如果支持 Cmd + l ,则显示的输出应不仅仅是“l”。如果它更多或不仅仅是“l”,那么您可以使用输出来绑定它。例如,如果cat -v显示“^[l”而不是bindkey '^[l' clear-screen,则可以将其与bindkey -r '^l'绑定,如果要删除默认绑定,则可以使用while len(answered_q) < len(questions): question = random.choice(questions) if question not in answered_q: answered_q.append(question) raw_input = str(input(question + ": ")) if sorted(questions) == sorted(answered_q): break 执行此操作。