Używam tmux 1.8 i nie znaleźć wbudowany rozwiązanie. Te obejścia zmieścić przynajmniej dla moich typowych przypadków użycia:
- uchwycić pełną zawartość okienka i szukać ostatniego polecenia ssh w nim (I wykorzystać wiedzę na temat zakończenia moja szybka wykryć polecenie mniej lub bardziej wiarygodnie)
- Gdybym sprawdzić polecenia szyba może być utworzony z używając opcji tmux
new-window
lub split-window
poleceń
Moja reconnect.sh
skrypt wygląda tak shell-command
to się nie powiedzie. Najbardziej brzydką rzeczą jest to, jak uzyskać ostatnie polecenie ssh z bufora. Do tej pory "> ssh" wystarczało, aby w moich sytuacjach niezawodnie wykryć linię zawierającą żądanie połączenia ssh, ale byłoby lepsze rozwiązanie.
#!/bin/bash
# @TODO: change this according to your own prompt
# This is used to find lines connect ssh command in the pane buffer
PROMPT_SEPARATOR="> "
# get current pane buffer size and dimensions
HISTORY_LIMIT=`tmux display-message -p "#{history_limit}"`
VISIBLE_LINES=`tmux display-message -p "#{pane_height}"`
# search last ssh command in pane content
LINE=`tmux capture-pane -p -J -S -$HISTORY_LIMIT -E $VISIBLE_LINES | grep "${PROMPT_SEPARATOR}ssh " | tail -1`
if [ -n "$LINE" ]; then
echo $LINE | sed "s/.*$PROMPT_SEPARATOR//;"
else
# fall back to the command that might have been used to create the pane
# (not necessarily ssh but helpful anyway)
tmux list-panes -F "#{pane_active} #{pane_start_command}" | grep "^1 " | tail -1 | cut -d ' ' -f2-
fi
Uratowałem ten skrypt w moim katalogu ~/.tmux i zmienił klawiszy dla różnych split-window
i new-window
skrótów w moim .tmux.conf
podobny do tego:
# try to reconnect to remote host when creating new window
bind c run-shell 'CMD=`~/.tmux/reconnect.sh`; tmux new-window "$CMD"'
można zainstalować tmux w katalogu domowym na zdalna maszyna? Bez tmux ssh oferuje tylko jeden terminal. – chepner
To jest problem, którego nie mogę zainstalować na zdalnej maszynie .. polityka – user1019129