在iTerm2中使用特定目录打开多个选项卡


9

我想知道这是否可能。

我想设置一些脚本或命令,这些脚本或命令将打开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诸如此类的方法打开它们中的每一个,但是如果有我可以设置的命令或执行后它们将立即执行的所有操作的脚本,我很想知道如果有办法的话。

Answers:


8

更新:较新的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到达指定目录。


1

itermocil可以解决这个问题。

在名为的文件中添加以下~/.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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.