これが可能かどうか知りたいです。
5つのタブを開き、各タブに独自のディレクトリが指定されるスクリプトまたはコマンドを設定したい
すべて同じウィンドウに
tab 1: open ~/folderA1
tab 2: open ~/folderA2
tab 3: open ~/folderA3
tab 4: open ~/folderA4
tab 5: open ~/folderA5
これはMac OS XのiTerm2です。
CMD+T などを実行してから、それぞれを開くことができることはわかっていますcd ~/folderA1
が、設定できるコマンドや、実行後にすべてを一度に実行するスクリプトがあれば、その方法があるかどうか知りたいです。
答え1
アップデート:新しい iTerm では構文を変更する必要があるため、次のようになります。
tell application "iTerm"
tell current window
create tab with default profile
end tell
tell current tab of current window
set _new_session to last item of sessions
end tell
tell _new_session
select
write text "cd \"$dir\""
end tell
end tell
参照この答えはここにあります。
古いバージョンの iTerm の場合:
脚本を撮る私の答えから次のようなことができます:
launch () {
for dir in ~/folderA{1..5}; do
/usr/bin/osascript <<-EOF
tell application "iTerm"
make new terminal
tell the current terminal
activate current session
launch session "Default Session"
tell the last session
write text "cd \"$dir\""
end tell
end tell
end tell
EOF
done
}
何が起こっているのか説明します:
という名前のシェル関数を作成するので、これをまたは起動時に実行したい場所
launch
に配置できます。~/.bash_profile
Bash 中括弧展開の結果をループし、から までを
~/folderA{1..5}
実行します。~/folderA1
~/folderA5
osascript
新しいタブを作成してアクティブ化し、デフォルトのセッションを起動して、cd
指定されたディレクトリに移動するには、iTerm2 AppleScript ライブラリを呼び出します。
答え2
イテルモシルこれを処理できます。
というファイルに次の内容を入力すると~/.itermocil/foo.yml
、コマンドはitermocil foo
指定されたフォルダーに 5 つのタブを開きます。(ただし、これは非常に単純なレイアウトです。itermocil はこれよりも多くの機能を実行できます。)
windows:
- name: '1'
root: ~/folderA1
layout: even-horizontal
panes:
- focus: true
- name: '2'
root: ~/folderA2
layout: even-horizontal
panes:
- focus: true
- name: '3'
root: ~/folderA3
layout: even-horizontal
panes:
- focus: true
- name: '4'
root: ~/folderA4
layout: even-horizontal
panes:
- focus: true
- name: '5'
root: ~/folderA5
layout: even-horizontal
panes:
- focus: true