Ich führe eine Zsh-Funktion aus, um eine .tex-Datei in vim zu öffnen, während ich die zugehörige .pdf-Datei in evince öffne. Ich verwende derzeit xdotool, um eine neue Registerkarte im aktuellen Gnome-Terminalfenster zu öffnen, und führe dann vim in dieser Registerkarte aus. Ich würde lieber die Befehlszeilenausgabe von evince stummschalten und vim im aktuellen Fenster öffnen.
Leider wird evince mit einer Standardumleitung wie evince name.pdf &> /dev/null
nicht grafisch geöffnet. Kann ich ein GUI-Programm von einem Terminal aus ausführen, ohne dass die Standardausgabe/der Standardfehler in diesem Terminal angezeigt wird?
Die Funktion ist unten:
edittex () {
# open a new terminal tab in current terminal
WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
# open vim in the new terminal tab
xdotool type "vim [email protected]"
xdotool key KP_Enter
# open evince in old terminal tab
evince "[email protected]"
}
Verwendung: edittex filename
, vorausgesetzt, die .pdf- und .tex-Dateien haben die Namen Dateiname.pdf und Dateiname.tex.
Antwort1
Umleitennurstderr von evince zu/dev/null
UndUm es gleichzeitig in den Hintergrund zu senden, müssen Sie Folgendes angeben:
evince name.pdf 2> /dev/null &
Wo :
evince name.pdf 2>
leitet die Ausgabe der Fehler nur um/dev/null
leitet die Ausgabe an dasnull
Gerät um&
schickt das Programm in den Hintergrund