2つの端末の作業ディレクトリを一度に変更

2つの端末の作業ディレクトリを一度に変更

私は通常、gnome-terminalを開き、約8つのタブを開き、2つの連続したタブを使用して同じことを行います(1つはemacs、もう1つはgitチェックイン、単体テストの実行など)。

タスクを変更するときは、両方のタブで新しいディレクトリに移動する必要があります。できるだけ数ステップで、2番目のタブの作業ディレクトリを1番目のタブの作業ディレクトリに変更するにはどうすればよいですか?ただキーボードがあるのが一番です。

答え1

回避策は次のとおりです。一方のタブでCWDを一時ファイルに書き込み、もう一方のタブで保存したディレクトリにcdを書き込みます。私の.bashrcまたは.bash_profileに次の2つのエイリアスを追加します。

alias ds='pwd > /tmp/cwd'
alias dr='cd "$(</tmp/cwd)"'

ds(dir save)コマンドはCWDを表示し、dr(dir recall)コマンドはcdを表示します。 Cシェルを使用して同様の操作を実行できます。

答え2

ターミナルエミュレータを試すターミネーター。複数のシェルを開き、「すべてのブロードキャスト」機能を使用して、同じコマンドをすべてのシェルに送信できます。

答え3

あなたが探しているものはシェルスクリプトを書くことによって得ることができます

xdoツール

使用できるサンプルスクリプトは次のとおりです。

#!/bin/bash
xdotool type "cd $1
"
xdotool key Ctrl+Next
xdotool type "cd $1
"

答え4

zshでは、次のことができます。

  1. シェルからコマンドを実行します。
  2. fc -AIそのシェルで実行します。
  3. fc -RI別のシェルで実行します。
  4. 2番目のシェルで実行するか、!!キーUpを押して最初のシェルで実行された最後のコマンドを呼び出します。Enter

fc -AI最初のシェルのコマンド履歴を記録し、2番目のfc -RIシェルから再読み込みします。この機能をオンにすると、各コマンドの後にinc_append_history同じ操作が自動的に実行されます。fc -AI

このオプションをオンにすると、すべての履歴行share_historyがすべてのシェルインスタンス間で自動的に共有されるため、手順1から4に直接移動できます。邪魔になると感じることもあります。

相対パスを使用してディレクトリを変更する場合は、まず絶対パスを取得する必要があります。 1つの方法は、入力してcd $PWD(または$PWDそのauto_cdオプションがオンになっている場合)、[拡張]をクリックしてからTab(またはC-x *一部の完成設定を使用)$PWDをクリックすることですEnter

関連情報