397 Stimmen

Wie kann ich tmux so einstellen, dass beim Start ein bestimmtes Windows geöffnet wird?

Wie kann ich tmux so einrichten, dass es mit dem angegebenen geöffneten Windows startet?

9voto

Artur Małecki Punkte 1266

Und so mache ich es:

#!/bin/bash

function has-session {
  tmux has-session -t name_of_my_session 2>/dev/null
}

if has-session ; then
  echo "Session already exists"
else
  cd /path/to/my/project
  tmux new-session -d -s name_of_my_session 'vim'
  tmux split-window -h -p 40 start_web_server
  tmux split-window -v
  tmux attach-session -d -t name_of_my_session
fi

Ich habe eine Datei für jedes meiner Projekte. Man kann sie auch gruppieren, um einige für die Arbeit und andere für Hobbyprojekte zu haben.

Sie können es auch nach ~/bin Ordner, fügen Sie ihn zu PATH und geben tmux_my_awesome_project Name. Dann können Sie es von jedem Ort aus ausführen.

8voto

kevmitch Punkte 1178

Sie können verwenden tmux-Haken um Befehle auszuführen, wenn eine neue Sitzung erstellt wird. Konkret wird dies durch die Verwendung der session-created Haken.

Um zum Beispiel den Bildschirm in drei Teile zu teilen, wobei der obere Teil unten rechts läuft, können Sie die folgende Zeile in Ihr ~/.tmux.conf Datei:

set-hook -g session-created 'split -h ; split -v top'

Der Vorteil dieser Methode ist, dass Sie tmux nicht auf eine spezielle Art und Weise ausführen müssen (d.h. Shell-Skript oder Alias), um das gewünschte Ergebnis zu erhalten. Sie können dies auch kombinieren mit tmux new-session -A -s mysession beschrieben in diese andere Antwort so dass die Hook-Befehle nur beim ersten Erstellen der Sitzung ausgeführt werden und nicht bei späteren Anhängen.

Diese Funktion wurde hinzugefügt von d15d54c2c aus dem Jahr 2016. Die erste Version, die es enthält, ist 2.4.

6voto

Asur Punkte 1647

Essayez Bruder ist es ein Projekt-Bootstrapper.

Es bietet einfache Apis zur Interaktion mit tmux .

Es sieht in etwa so aus:

#!/bin/sh
# @ project_name/tasks/init.sh
structure project_name
  window editor
    run 'vim'
  window terminal
    run 'echo happy coding ...'
focus editor
connect project_name

Um ein Projekt zu starten, muss man nur den folgenden Befehl ausführen -

bro start <project_name>

Im folgenden Screencast sehen Sie, wie Sie mit bro und verwenden seine tmux api.

https://user-images.githubusercontent.com/8296449/50532502-2cf3e400-0b6e-11e9-84af-c5f77a04e5cc.gif

5voto

Syakur Rahman Punkte 1956

Hierfür gibt es ein tmux-Plugin.

Überprüfen Sie tmux-resurrect

Wiederherstellung der tmux-Umgebung nach dem Neustart des Systems.

Tmux ist großartig, außer wenn man den Computer neu starten muss. Sie verlieren alle laufenden Programme, Arbeitsverzeichnisse, Fensterlayouts usw. Es gibt hilfreiche Verwaltungstools, aber sie erfordern eine anfängliche Konfiguration und ständige Aktualisierungen, wenn sich Ihr Arbeitsablauf weiterentwickelt oder Sie neue Projekte beginnen.

tmux-resurrect speichert alle kleinen Details Ihrer tmux-Umgebung, so dass sie nach einem Systemneustart (oder wenn Ihnen danach ist) vollständig wiederhergestellt werden kann. Es ist keine Konfiguration erforderlich. Sie sollten das Gefühl haben, dass Sie tmux nie verlassen haben.

Oder tmux-Kontinuum

Merkmale:

  • kontinuierliche Speicherung der tmux Umgebung
  • automatischer tmux-Start beim Einschalten des Computers/Servers
  • automatische Wiederherstellung beim Start von tmux

4voto

cevaris Punkte 5468

Das funktioniert bei mir. Erstellen von 5 Fenstern mit den angegebenen Namen und automatische Auswahl der home Fenster.

new  -n home
neww -n emacs
neww -n puppet
neww -n haskell
neww -n ruby
selectw -t 1

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X