我保存了一个窗口组,其中设置了 3 个我喜欢的终端,并且我有一个快捷方式可以在桌面上打开此窗口组。现在我想在打开每个终端时添加启动命令(每个窗口可能有不同的命令),但我不想像我知道您可以那样为我启动的每个终端设置默认命令。最简单的方法是什么?
答案1
那么,您已经为每个终端设置了单独的设置?您需要编辑每个设置来指定要运行的命令。
在 中"Terminal > Preferences > Settings"
,编辑每个终端的设置,并使用 指定每个终端的命令"Shell > Startup > Run command"
。
当从这些设置中打开终端时(单独打开或作为窗口组的一部分),它将运行您在设置的启动命令中指定的命令。您可以从中打开窗口组"Window > Open Window Group"
,或配置一个窗口组以在中自动启动"Preferences > Startup"
。
答案2
从 Mac OS X Lion 10.7 开始,您可以执行此操作,而无需为每个终端创建单独的设置配置文件。如果您使用Shell > 新命令…,当您将命令保存在窗口组中时,终端可以记住该命令。当您打开一个组时,任何保存的命令都会在相应的终端中运行。
保存窗口组时,终端将自动保存“安全”命令†,您可以通过选择恢复所有命令复选框。
† “安全”命令是指无需用户确认即可运行的命令,并且在终端恢复时会自动恢复。它们还会自动保存在窗口组中。“安全”命令包括通过以下方式发出的任何命令新建远程连接,列出的所有内容,以及常用命令的/etc/shells
简短列表:screen
,,,,,,,,。tmux
emacs
vi
vim
nano
pico
top
可以使用 defaults(1) 命令 ( x-man-page://1/defaults
) 自定义此列表。RestorableCommands
首选项是一个字符串列表,每个字符串都命名一个命令。在每个字符串中,您可以提供一个命令名称或绝对路径名(如果您只想允许来自特定目录的命令)。默认情况下,命令只有在不包含命令行参数时才是“安全的”(因为参数可能指定破坏性操作);要指示允许使用参数,请在命令名称后添加一个星号,例如“top *”在默认列表中。
例如,要自动允许带有参数的 emacs:
defaults write com.apple.Terminal RestorableCommands -array screen tmux 'emacs *' vi vim nano pico 'top *'
为了方便起见,一旦创建了首选项设置,您就可以使用以下命令添加其他项目-array-add
:
defaults write com.apple.Terminal RestorableCommands -array-add nethack
答案3
@Matt G 的答案很好,但另一种方法是使用开源终端,它有一个书签功能,比为每个终端设置不同的终端配置文件要容易得多。自从我开始使用它代替 Terminal.app 以来,我就再也没有回头了。值得一试……