我想知道這是否可能。
我想設定一些腳本或命令來開啟 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
}
解釋一下發生了什麼事:
我們建立一個名為 的 shell 函數
launch
,因此您可以將其放在您的~/.bash_profile
或任何您希望在啟動時執行的位置。我們循環 Bash 大括號擴展的結果
~/folderA{1..5}
,這將為您提供~/folderA1
幫助~/folderA5
。我們透過呼叫 iTerm2 AppleScript 函式庫
osascript
來建立一個新選項卡,啟動它,啟動預設會話,並cd
轉到指定的目錄。
答案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