有没有办法在 OSX 中为终端命令添加键盘快捷键。基本上,大多数时候我都会在 MAC 中打开终端应用程序,以便通过 ssh 进入某个服务器 foo。我想要做的是添加一个键盘快捷键(比如 ^k),这样当我在终端上执行此操作时,它会在终端中运行“ssh foo”。
谢谢
PS:我认为如果 Linux 中有适用于 xterm 的东西,那么它也应该适用于终端。所以这可能不是 OSX 特有的问题。
PS2:我希望快捷方式使用“ssh foo”进行回车。如果只是“ssh foo”,那么我可以在 .bashrc 中写一个别名。我的目标是尽量减少一天结束时必须执行的击键次数。
答案1
您说得对,这不是 OS X 特有的问题。答案可以在bash
OS X 上的标准 shell 中找到(大多数(如果不是全部)Linux 发行版中也包含该 shell)。
bash
提供了一个内置命令,bind
可用于将组合键(如AltK)绑定到命令(如ssh foo
)。
打开终端并输入:
bind '"\ek":"ssh foo\n"'
这会将组合键\ek
(在终端中同时AltK为 和EscK)绑定到命令ssh foo
。\n
添加一个return。
现在按下AltK并将ssh foo
执行(ssh foo
根据您的需要进行修改)。
如果您希望在启动终端时自动加载此组合键,请.inputrc
在主文件夹中创建一个名为的文件:
cd ~
touch .inputrc
并打开它:
open -e ~/.inputrc
您将看到 TextEdit 打开。输入:
"\ek":"ssh foo\n"
并保存(或使用您最喜欢的编辑器)。就这样!
还有很多内容,我在这里解释的还不够。我建议你看一下这个问题:https://stackoverflow.com/questions/4200800/in-bash-how-do-i-bind-a-function-key-to-a-command并检查 中的(相当枯燥的) READLINE 部分man bash
。请注意,转义序列\M-
(在其他操作系统中映射到Alt)在终端中不起作用。您需要使用\e
来绑定Alt。
由于转义序列依赖于终端仿真,因此我想分享用于测试上述命令的设置:
答案2
这些解决方案并不完美,但可以提供帮助。我只有俄语界面,所以你必须自己想出具体的选项名称。
解决方案 1。
终端 - 设置 - [第二个选项卡] - Shell - 启动时运行的命令
解决方案 2。
终端 - 设置 - [第二个选项卡] - 键盘,它将允许您使用特殊键来运行 shell 命令(但不是 ctrl-k)
答案3
使用iTerm2。它能够完全按照您的要求执行操作:定义一个配置文件,在启动终端时运行某个命令,并为该配置文件分配一个快捷键 - 这样按下组合键就会打开一个新的终端选项卡,通过 ssh 连接到您的服务器。
答案4
我使用 TextExpander 就是为了实现这个目的:
TextExpander 宏:
ssh -l user -p 99999 void.example.com%key:return%
echo "some command"%key:return%
强烈推荐。不幸的是它不是免费的,而且肯定还有其他方法,但它效果很好。
编辑:此 ssh 连接使用密钥文件,因此不需要密码。
编辑2:这看起来像是解决您问题的另一种方法:终结者