【问题标题】:Mac OS X / Open terminal with specified windowsMac OS X / 使用指定窗口打开终端
【发布时间】:2010-11-12 03:09:06
【问题描述】:

是否可以打开带有 3 个选项卡的终端窗口。每个选项卡应该有不同的路径。

例子:

Tab1: /etc
Tab2: /bin
Tab3: /www/ tail -f file.txt

【问题讨论】:

    标签: macos terminal


    【解决方案1】:

    这绝对是可能的,但您需要做一些工作。您需要做的第一件事是在“设置”中设置所需的每个窗口/选项卡:

    每次打开终端时,我都会自动打开 4 个选项卡。 DB ShellEditorServerShell。这些都在Sasquatch(不要问)项目中,因此命名。然后,它们中的每一个都应该有一个与之关联的唯一命令:

    在这种情况下,我正在执行vim。如果你碰巧有一个你想开始的特定目录,你可以使用vim ~/projects/main/之类的东西。实际上,无论您想进入什么,shell 打开时都会执行的命令。现在您需要打开所有窗口/选项卡:

    1. 关闭一切。
    2. 为您的每个配置文件打开一个新窗口。
      • 转到Shell 菜单 => New Tab/New Window => 选择您在上面创建的配置文件。
      • 对所需的每个窗口或标签重复此操作。
    3. 打开所有窗口和/或选项卡后,将它们保存为一个窗口组。
      • 转到Window 菜单 => Save Window As Group...
      • 为您的窗口组命名(这对以后有帮助)。
      • 如果您希望每次打开终端时都打开此组,请选中此屏幕底部的框,然后点击保存。
    4. 关闭所有 Windows/选项卡(测试时间!)。
    5. 打开您的新窗口组。
      • 转到Window 菜单 => Open Window Group => 选择您刚刚创建的组。

    这应该会在相同位置弹出您刚刚拥有的所有窗口。您在Settings 中设置的每个命令都应在各自的选项卡中启动。

    【讨论】:

    • 太棒了。我唯一要添加的是窗口组的键盘快捷键。 i.stack.imgur.com/mPVDN.png 系统偏好设置 > 键盘 > 快捷方式 > 应用程序快捷方式。单击 + 以添加快捷方式。只需将窗口组名称放在MenuTitle中,然后在下一个框中输入快捷方式即可。
    • 我使用 zsh 并尝试了这个答案来创建一个包含四个选项卡的窗口组,每个选项卡都有不同的密码。所以,我的启动命令都是cd 命令。但是,这些启动命令会覆盖设置为 open a new tab in the same directory 并导致 Command-T 再次为新选项卡运行启动命令。
    【解决方案2】:

    从 Mac OS X Lion 10.7 开始,终端使这变得更容易,无需为每个命令创建新的配置文件。

    1. 默认情况下,终端会记住并恢复窗口组中每个终端的当前工作目录。 (如果工作目录已使用转义序列与终端通信。默认 shell bash 将在每个命令提示符处执行此操作。对于其他 shell,您需要调整 /etc/bashrc 中的代码。)

    2. 如果您使用 Shell > New Command 创建终端,终端将在打开窗口组时自动运行该命令。终端将自动运行一组有限的“安全”命令†,并且在保存窗口组时,可以选择运行组中的所有命令。

    在启用 Resume 的情况下重新启动终端时,终端也会自动为所有窗口执行这些操作。因此,根据您的具体情况,您甚至可能不必创建窗口组。

    对于您的示例:

    1. 使用 Shell > New Command 运行“tail -f /www/file.txt”。
    2. 创建一个新选项卡和“cd /etc”。
    3. 创建一个新选项卡和“cd /bin”。
    4. 使用 Window > Save Windows as Group 保存它们。请务必选中“恢复所有命令”复选框。

    每次打开该窗口组时,它都会重新创建这些窗口并运行命令。如果您需要运行命令指定起始目录,请在“新建命令”对话框中选中“在 shell 中运行命令”复选框并将命令设为“cd ;”。

    还请注意,您可以通过 Terminal > Preferences > Startup > On startup, open > Window group 告诉终端在启动时打开您的窗口组。保存新窗口组时甚至还有一个复选框可以设置它。

    † “安全”命令包括 /etc/shells 中列出的任何内容,以及:screen、tmux、emacs、vi/vim、nano、pico 和 top。您可以使用“defaults write com.apple.Terminal RestorableCommands”自定义列表。将其设置为包含命令名称或完整路径的字符串数组。一些命令具有“不安全”的参数,无需用户干预即可自动运行,因此默认情况下,这些命令只有在没有任何参数时才被认为是“安全的”。为了使命令可以安全地使用参数运行,请添加一个星号,例如,“top *”是此首选项的默认值。

    【讨论】:

    • 我使用 zsh。如何让终端记住并恢复窗口组中每个选项卡的当前工作目录?
    • @mattdipasquale:尝试在 StackOverflow 上查找您的问题,如果您没有找到与您的问题相匹配的问答,请发布问题。例如,如果我搜索“终端恢复工作目录 zsh”,我会找到 stackoverflow.com/a/7544224/754997(我的答案),其中我链接到另一个问答,我在其中提供 zsh 的代码 superuser.com/a/328148/81175,其中还提到此代码现在是哦,我的 Zsh 包。所以如果你使用 OMZ,你会自动得到这个。
    • 您好,我点击Window > Save Windows as Group时保存的文件在哪里。我想保留此文件的副本,以便在我移动到另一台机器或其他设备时对这些文件进行物理备份
    • @firstpostcommenter 要提出问题,请创建问答。
    • 您好,感谢您的更新。我意识到我的评论是重复的问题stackoverflow.com/questions/17718835/…
    【解决方案3】:

    你可以在终端中做你想做的事。

    如果您在终端首选项(设置选项卡)中创建一个新配置文件(或使用重复设置复制一个),然后您可以将每个配置文件设置为在启动时运行命令(配置文件中的“Shell”子组)。

    然后使用 Shell > New Tab 菜单设置您的选项卡,从您为三个不同的可执行文件创建的每个特定配置文件创建新选项卡。

    然后执行保存窗口组以保存选项卡组(它也会保存它们的配置文件)。

    【讨论】:

      【解决方案4】:

      我建议使用 if iTerm 而不是终端。如果只是因为它更可配置。您可以编写脚本,但对您来说更重要的是您可以创建一个书签文件夹(每个选项卡一个),然后“在选项卡中打开”,这将为您提供您所寻求的行为。

      【讨论】:

      • +1。看起来这已被一个单独的项目 iTerm2 取代。我会试试看的!
      【解决方案5】:

      我怀疑你也可以控制要执行的命令。我使用的其中一个程序创建了一个单选项卡终端窗口,并安排在继续命令提示符之前执行配置文件设置脚本 - 这对于多选项卡终端应该是可行的。该文件是一个 MacOS X 属性 XML 文件。

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
          <key>CommandString</key>
          <string>. /Applications/IBM/informix/demo/server/profile_settings</string>
          <key>FontAntialias</key>
          <false/>
          <key>RunCommandAsShell</key>
          <false/>
          <key>ShowShellCommandInTitle</key>
          <true/>
          <key>TerminalType</key>
          <string>xterm</string>
          <key>WindowTitle</key>
          <string>IDS Command Window</string>
          <key>name</key>
          <string>IDS Command Window</string>
          <key>type</key>
          <string>Window Settings</string>
      </dict>
      </plist>
      

      您可以单击它并启动终端窗口,设置配置文件设置,然后您可以在命令提示符处键入。据推测,将问题的“点”命令更改为“tail”命令会起作用;可能将 'RunCommandAsShell' 键设置为 '&lt;true\&gt;' 会用命令替换普通 shell - 这可能更适合这个问题。

      【讨论】:

        【解决方案6】:

        另一种方法是使用 Elscripto ruby​​ gem:https://github.com/Achillefs/elscripto。它允许您使用 YAML 文件轻松指定终端选项卡

        【讨论】:

          【解决方案7】:

          打开您想要的选项卡并根据需要设置每个选项卡,即选项卡 1、cd /etc、选项卡 2cd /bin 等等。现在转到窗口 > 将 Windows 保存为组。点击“终端启动时使用窗口组”复选框,嘿嘿!

          【讨论】:

          • 虽然我不认为您可以设置选项卡来实际执行特定命令(即尾,如示例中)。这可能吗?
          • 我认为这可能仅在 10.7 上出现 - 在 10.6 上不会记住 CWD。​​span>
          【解决方案8】:

          http://www.iterm2.com/#/section/features/split_panes

          “将一个选项卡分成多个窗格,每个窗格显示不同的会话。您可以垂直和水平切片,并以任何可以想象的排列创建任意数量的窗格。”

          【讨论】:

            【解决方案9】:

            如何创建自定义 iTerm2 窗口排列

            创建自定义键盘快捷键以自动生成一组窗口并随着进程的运行而拆分。

            使用快捷键 cmd+shift+w transform 将您的窗口排列分成 3 个面板

            https://www.youtube.com/watch?v=Rg8AT-nds1Q

            【讨论】:

              猜你喜欢
              • 2012-08-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-04-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-07-20
              相关资源
              最近更新 更多