Yanıtlar:
bind -x
Bir komutu Bash'teki bir kısayola bağlamak için kullanabilirsiniz . Örneğin, git status
komutu Crtl+ pkısayoluna bağlamak için şunları kullanabilirsiniz:
bind -x '"\C-p":git status'
~/.bashrc
Hatırlamak için dosyaya koyun . Man sayfasından:
-x keyseq: kabuk komutu
Keyseq her girildiğinde yürütülecek shell-komutuna neden olur. Kabuk komutu yürütüldüğünde, kabuk READLINE_LINE değişkenini Readline satır arabelleğinin içeriğine ve READLINE_POINT değişkenini ekleme noktasının geçerli konumuna ayarlar. Yürütülen komut READLINE_LINE veya READLINE_POINT değerini değiştirirse, bu yeni değerler düzenleme durumuna yansıtılır.
bind -x '"\C-k":firefox'
Bunu kullanıyorum ama çalışmıyor
bind
burada bulabilirsiniz: stackoverflow.com/a/4201274/712334
Komut çalıştırıldıktan sonra terminali açık tutmanız gerektiğinden, şunu yazın:
gnome-terminal -e 'bash -c "git status; read line"'
kısayol tuşu kombinasyonu altında, işi yapacak. Bu bir açılacak yeni gnome-terminal
pencere ve içindeki komutunu çalıştırın.
Seçin: Sistem Ayarları> "Klavye"> "Kısayollar"> "Özel Kısayollar". "+" İşaretini tıklayın ve şu komutu ekleyin:
gnome-terminal -e 'bash -c "git status; read line"'
için Ctrl+Enter
Önerilen kısayolunuz çalışıyor olsa da , en azından yeni bir sayfaya atlamak için kısayolla çakıştığından Ctrl+ 'dan sonra başka bir tuş kombinasyonu seçebilirsiniz .EnterLibreOffice
gnome-terminal
Komut satırından yeni bir pencere açmak ve içinde bir komut çalıştırmak için aşağıdakileri kullanabilirsiniz:
gnome-terminal -e 'bash -c <command>'
Bununla birlikte, komut başarıyla çalışsa da, çıktıyı okuyabilmeniz için terminal penceresi hemen kapanacaktır.
Bölüm:
read line
Enterkomut çalıştıktan sonra terminali (vuruncaya kadar ) açık tutmaktır .
Bu şekilde, terminalde herhangi bir (karmaşık) komutu hemen kapatmadan çalıştırabilirsiniz:
$ gnome-terminal -e 'bash -c "wmctrl -d; read line"'
( wmctrl
kurulu ise) çıktı verir :
Basıldıktan Entersonra terminal kapanacaktır.
Tabii ki olabilir bir kısayol tuşu (eğer varsayarak altında basit tek astar koyun xdotool
yüklü):
xdotool type "<command>"
Ancak bu , herhangi bir uygulamada komutu körü körüne yazacaktır ve komutu yazmak en temiz seçenek değildir.
Bu nedenle aşağıdaki küçük komut dosyası:
gnome-terminal
pencere olup olmadığını gösterir (pidine göre)gnome-terminal
, tuşuna basar Return. Komut dosyası, hedeflenen komutu bağımsız değişken olarak aldığından, birden çok kısayolun altına birden çok komut koyabilirsiniz.
#!/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)
Betiğin ihtiyacı var xdotool
sudo uygun-get install xdotool
Henüz ~/bin
yoksa bir dizin oluşturun, oturumu kapatın / oturum açın veya çalıştırınsource ~/.profile
gterm_keys
(uzantı yok) olarak kaydedin ~/bin
, yürütülebilir yapınŞimdi komutu ekleyerek en ön pencerede bir kısayol tuşundan herhangi bir komutu çalıştırabilirsiniz gnome-terminal
:
gterm_keys <command>
bölümünde açıklandığı gibi bir kısayol tuşuna [1]
Durumda zsh olarak, yerine Bash aşağıdaki satırı kullanılan ~/.zshrc
bağlar git status
için ALT+ ENTER.
bindkey -s '^[^M' 'git status\n'
Bash'de ALT+ almak ENTERiçin bu satırı kullanıyorum:
bind -x '"\e\C-m":git status'
bindkey -s '^[^M' 'git status\n'
hangi ALT + ENTER bağlanır.