Answers:
您可以bind -x
用来将命令绑定到Bash中的快捷方式。例如,要将git status
命令绑定到Crtl+ p快捷方式,可以使用:
bind -x '"\C-p":git status'
放入~/.bashrc
文件以记住它。从手册页:
-x keyseq:shell命令
每当输入keyseq时,都会执行shell命令。当执行shell命令时,shell将READLINE_LINE变量设置为Readline行缓冲区的内容,并将READLINE_POINT变量设置为插入点的当前位置。如果执行的命令更改了READLINE_LINE或READLINE_POINT的值,则这些新值将反映在编辑状态中。
bind -x '"\C-k":firefox'
我使用了它,但是不起作用
bind
参见:stackoverflow.com/a/4201274/712334
由于您需要在命令运行后保持终端处于打开状态,因此请输入:
gnome-terminal -e 'bash -c "git status; read line"'
在快捷键组合下,即可完成工作。它将打开一个新 gnome-terminal
窗口并在其中运行命令。
选择:系统设置>“键盘”>“快捷方式”>“自定义快捷方式”。单击“ +”并添加命令:
gnome-terminal -e 'bash -c "git status; read line"'
到Ctrl+Enter
尽管建议的快捷方式有效,但是您可以选择另一个组合键,然后按Ctrl+ Enter,因为它至少与LibreOffice
快捷方式冲突以跳转到新页面。
要gnome-terminal
从命令行打开一个新窗口并在其中运行命令,可以使用:
gnome-terminal -e 'bash -c <command>'
但是,尽管该命令将成功运行,但在读取输出之前,终端窗口将立即关闭。
这部分:
read line
然后Enter在命令运行后保持终端处于打开状态(直到您点击)。
这样,您可以在终端中运行任何(复杂)命令,而无需立即关闭它:
$ gnome-terminal -e 'bash -c "wmctrl -d; read line"'
将输出(如果wmctrl
已安装):
按下后Enter,终端将关闭。
当然,您可以在快捷键下放置一个简单的衬纸(假设您已xdotool
安装):
xdotool type "<command>"
但是,这将在任何应用程序中盲目键入命令,并且键入命令不是最干净的选项。
因此,下面的小脚本:
gnome-terminal
窗口(按其pid)gnome-terminal
窗口中,按Return。由于脚本将目标命令作为参数,因此可以在多个快捷方式下放置多个命令。
#!/usr/bin/env python3
import subprocess
import sys
import time
app = "gnome-terminal"
s = (" ").join(sys.argv[1:])
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def front(app):
try:
# see if gnome-terminal is running at all (raising error if not)
app = get(["pgrep", app])
except subprocess.CalledProcessError:
app = False
if app:
# if so, see if the active window belongs to gnome-terminal comparing pids)
active = get(["xdotool", "getwindowpid", get(["xdotool", "getactivewindow"])])
return True if app == active else False
if front(app):
# copy command to clipboard
cm1 = ["/bin/bash", "-c", 'printf "'+s+'" | xclip -selection clipboard']
# paste in terminal window
cm2 = ["xdotool", "key", "Control_L+Shift_L+v"]
# press return
cm3 = ["xdotool", "key", "Return"]
for cm in [cm1, cm2, cm3]:
subprocess.call(cm)
脚本需要 xdotool
sudo apt-get安装xdotool
创建目录(~/bin
如果尚不存在),请注销/登录或运行source ~/.profile
gterm_keys
(无扩展名)~/bin
,使其成为可执行文件现在,您可以通过添加以下命令,在最前面的窗口中通过快捷键运行任何gnome-terminal
命令:
gterm_keys <command>
快捷键,如 [1]
如果使用zsh代替bash,则下面的行~/.zshrc
绑定git status
到ALT+ ENTER。
bindkey -s '^[^M' 'git status\n'
要在Bash中获取ALT+ ENTER,我使用以下行:
bind -x '"\e\C-m":git status'
bindkey -s '^[^M' 'git status\n'
绑定到ALT + ENTER。