【发布时间】:2010-11-12 03:09:06
【问题描述】:
是否可以打开带有 3 个选项卡的终端窗口。每个选项卡应该有不同的路径。
例子:
Tab1: /etc
Tab2: /bin
Tab3: /www/ tail -f file.txt
【问题讨论】:
是否可以打开带有 3 个选项卡的终端窗口。每个选项卡应该有不同的路径。
例子:
Tab1: /etc
Tab2: /bin
Tab3: /www/ tail -f file.txt
【问题讨论】:
这绝对是可能的,但您需要做一些工作。您需要做的第一件事是在“设置”中设置所需的每个窗口/选项卡:
每次打开终端时,我都会自动打开 4 个选项卡。 DB Shell、Editor、Server 和 Shell。这些都在Sasquatch(不要问)项目中,因此命名。然后,它们中的每一个都应该有一个与之关联的唯一命令:
在这种情况下,我正在执行vim。如果你碰巧有一个你想开始的特定目录,你可以使用vim ~/projects/main/之类的东西。实际上,无论您想进入什么,shell 打开时都会执行的命令。现在您需要打开所有窗口/选项卡:
Shell 菜单 => New Tab/New Window => 选择您在上面创建的配置文件。Window 菜单 => Save Window As Group...。Window 菜单 => Open Window Group => 选择您刚刚创建的组。这应该会在相同位置弹出您刚刚拥有的所有窗口。您在Settings 中设置的每个命令都应在各自的选项卡中启动。
【讨论】:
cd 命令。但是,这些启动命令会覆盖设置为 open a new tab in the same directory 并导致 Command-T 再次为新选项卡运行启动命令。
从 Mac OS X Lion 10.7 开始,终端使这变得更容易,无需为每个命令创建新的配置文件。
默认情况下,终端会记住并恢复窗口组中每个终端的当前工作目录。 (如果工作目录已使用转义序列与终端通信。默认 shell bash 将在每个命令提示符处执行此操作。对于其他 shell,您需要调整 /etc/bashrc 中的代码。)
如果您使用 Shell > New Command 创建终端,终端将在打开窗口组时自动运行该命令。终端将自动运行一组有限的“安全”命令†,并且在保存窗口组时,可以选择运行组中的所有命令。
在启用 Resume 的情况下重新启动终端时,终端也会自动为所有窗口执行这些操作。因此,根据您的具体情况,您甚至可能不必创建窗口组。
对于您的示例:
每次打开该窗口组时,它都会重新创建这些窗口并运行命令。如果您需要运行命令并指定起始目录,请在“新建命令”对话框中选中“在 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 *”是此首选项的默认值。
【讨论】:
Window > Save Windows as Group时保存的文件在哪里。我想保留此文件的副本,以便在我移动到另一台机器或其他设备时对这些文件进行物理备份
你可以在终端中做你想做的事。
如果您在终端首选项(设置选项卡)中创建一个新配置文件(或使用重复设置复制一个),然后您可以将每个配置文件设置为在启动时运行命令(配置文件中的“Shell”子组)。
然后使用 Shell > New Tab 菜单设置您的选项卡,从您为三个不同的可执行文件创建的每个特定配置文件创建新选项卡。
然后执行保存窗口组以保存选项卡组(它也会保存它们的配置文件)。
【讨论】:
我建议使用 if iTerm 而不是终端。如果只是因为它更可配置。您可以编写脚本,但对您来说更重要的是您可以创建一个书签文件夹(每个选项卡一个),然后“在选项卡中打开”,这将为您提供您所寻求的行为。
【讨论】:
我怀疑你也可以控制要执行的命令。我使用的其中一个程序创建了一个单选项卡终端窗口,并安排在继续命令提示符之前执行配置文件设置脚本 - 这对于多选项卡终端应该是可行的。该文件是一个 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' 键设置为 '<true\>' 会用命令替换普通 shell - 这可能更适合这个问题。
【讨论】:
另一种方法是使用 Elscripto ruby gem:https://github.com/Achillefs/elscripto。它允许您使用 YAML 文件轻松指定终端选项卡
【讨论】:
打开您想要的选项卡并根据需要设置每个选项卡,即选项卡 1、cd /etc、选项卡 2cd /bin 等等。现在转到窗口 > 将 Windows 保存为组。点击“终端启动时使用窗口组”复选框,嘿嘿!
【讨论】:
http://www.iterm2.com/#/section/features/split_panes
“将一个选项卡分成多个窗格,每个窗格显示不同的会话。您可以垂直和水平切片,并以任何可以想象的排列创建任意数量的窗格。”
【讨论】:
如何创建自定义 iTerm2 窗口排列
创建自定义键盘快捷键以自动生成一组窗口并随着进程的运行而拆分。
使用快捷键 cmd+shift+w transform 将您的窗口排列分成 3 个面板
【讨论】: