我想知道这是否可能。
我想设置一些脚本或命令来打开 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