我可以在键盘快捷键中使用 Bash 别名吗?

我可以在键盘快捷键中使用 Bash 别名吗?

是否可以在自定义快捷方式中使用别名?

例如,假设我有别名

alias cal="google-chrome --new-window calendar.google.com"

我可以创建一个将++Ctrl绑定到的自定义快捷方式吗?AltCcal

我已尝试过,但似乎不起作用。

答案1

是的,你可以。你只需要向命令请求一个交互式 shell。

假设您的别名是:

alias myalias='some cool command here'

您的快捷命令必须是:

bash -i -c "myalias"

在键盘设置中设置别名的屏幕截图

答案2

不,键盘绑定运行的命令不会通过 shell 进行解析。最好的办法是bin在您的主目录中创建一个目录 ( mkdir -p ~/bin)。编写一个名为 cal 的脚本来运行您的命令,将其保存~/bin并使其可执行。

$ mkdir -p ~/bin
$ cat > ~/bin/cal << 'EOF'
#!/bin/sh
exec google-chrome --new-window calendar.google.com
EOF
$ chmod +x ~/bin/cal

如果您的主目录中还没有bin目录,则需要注销并重新登录,以便将其添加到您的 PATH 中。完成此操作后,绑定键盘绑定以运行“cal”应该可以满足您的要求。

答案3

一个快速的替代方案,希望它能在未来帮助到任何人

将“将图像另存为..”键盘快捷键添加到 Chrome,即 Shift-Ctrl-S

命令:bash -c "xdotool click 3 && sleep 0.5 && xdotool key v;"

另外,如果你有足够的组织能力,将你的快捷方式保存在一个单独的文件中,然后在 ~/.bashrc 的末尾获取它,那么下面的方法就可以起作用并且会很方便 ;)

命令:bash -c ". /tmp/keyboardShortcutsFcns && tefAliasFcn"

上面例子中的“/tmp/keyboardShortcutsFcns”文件的内容:

# test fcn to be called ( maybe ? ) from a keyboard shortcut tefAliasFcn(){ notify-send "tef alias function called succesfully !"; }

相关内容