Откройте несколько вкладок в iTerm2 с определенными каталогами
Я хотел бы знать, возможно ли это.
Я хочу настроить какой-либо скрипт или команду, которая откроет 5 вкладок, и каждая открываемая вкладка будет иметь свой собственный каталог, указанный
Все в одном окне
tab 1: open ~/folderA1
tab 2: open ~/folderA2
tab 3: open ~/folderA3
tab 4: open ~/folderA4
tab 5: open ~/folderA5
Это на iTerm2 в Mac OS X.
Я знаю, что могу сделать что-то вроде 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
}
Чтобы объяснить, что происходит:
Мы создаем функцию оболочки с именем
launch
так что вы можете положить это в свой~/.bash_profile
или где вы хотите, чтобы он выполнялся при запуске.Мы зациклились на результате расширения Bash-скобок
~/folderA{1..5}
, который дает вам~/folderA1
через~/folderA5
,Мы вызываем библиотеку iTerm2 AppleScript через
osascript
создать новую вкладку, активировать ее, запустить сеанс по умолчанию иcd
в указанный каталог.
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