Скажем, вы находитесь в папке / очень / круто / и / глубоко / вложенный /. И вы хотите открыть новую вкладку терминала в той же папке.
Как бы Вы это сделали?
Я использую Mac OS и Zsh.
Используйте Oh-My-Zsh и добавьте плагин 'osx' в ваш ~ / .zshrc, например:
plugins=(osx)
Если вы используете OSX Terminal App, вам также нужно добавить terminalapp
плагин: credit
plugins=(osx terminalapp)
Если вы используете iTerm, вам нужно установить опцию конфигурации ( обратите внимание, что вам не понадобятся плагины zsh, чтобы это работало ): credit
Предпочтения> Профили> По умолчанию> Общие> Рабочий каталог> Повторно использовать параметр каталога предыдущего сеанса
Это все, что вам нужно сделать!
rails
запущенный, и я пытаюсь открыть новое окно с помощью команды n, я возвращаюсь в свой домашний каталог.Еще одна опция, доступная в Mac OS X Lion, - это использование встроенной функции. Он использует «escape-последовательности», чтобы узнать текущий каталог. Для меня это работает, если я использую эти команды в моем .zshrc:
также можно использовать
PS1
(для Bash, из этой вики ):где
\e]2;
последовательность перехода, чтобы напечатать вещи в заголовке. Это кажется , что Terminal.app получает информацию от там.Больше информации:
источник
/etc/bashrc
вы увидите, что он также поддерживает новый управляющий код для информирования терминала о рабочем каталоге с помощьюfile:
URL-адреса, который может обрабатывать все допустимые имена путей с помощью процентного кодирования (заголовки окна / вкладки могут содержать только подмножество символов ASCII ).\e]7;file://hostname/percent-encoded-pathname\a
chpwd () {print -Pn "\e]2; %~/ \a"}
?Это очень простая версия, которую я использовал в bash, а также она работает в zsh. Он сохраняет текущую папку в файле после каждой команды (не слишком больно для IMO) и открывает новый терминал в сохраненной текущей папке.
добавить следующее в .zshrc
источник
GDIRS кажется способом почти сделать это: новая вкладка, затем GDIR, чтобы выбрать глубокий каталог и вуаля. Моя первая идея состояла в том, чтобы сделать стек каталогов общим для всех вкладок и выполнить cd ~ 1 после новой вкладки, но я не могу найти, как это сделать, так как кажется, что каждый экземпляр zsh сохраняет свои собственные. Обмен историей происходит через общий файл, так что, возможно, это можно сделать и здесь ...
источник
Вот как ты это делаешь в bash.
Этот сценарий оболочки скажет (буквально тихо, используя Applescript) Terminal.app открыть новую вкладку и переключиться на текущий каталог:
… Поместите приведенный выше сценарий оболочки в директорию вашего каталога
$PATH
(например, / usr / local / bin) и убедитесь, что он исполняемый:( источник )
источник
Если вам нужно открыть эту новую вкладку прямо сейчас, без изменения файлов конфигурации или установки новых плагинов, запустите:
Затем откройте новую вкладку «Терминал» вручную (с помощью ⌘T) и на новой вкладке:
Предупреждение : это перезапишет содержимое системного буфера обмена.
Альтернативный, более длинный метод, который не перезаписывает буфер обмена:
Откройте вашу новую вкладку.
источник
Согласно приведенному выше комментарию Питера, после установки
plugins=(git osx)
плагинов вы можете просто напечатать,tab
и он откроет новую вкладку в вашем текущем каталоге.источник
Если вы хотите, чтобы каталог автоматически изменялся при открытии новой вкладки, используйте плагин dirpersist .
Плагин osx сохраняет только последний каталог, но вам нужно запустить команду,
tab
чтобы открыть новую вкладку, что не всегда возможно (если, скажем, вы что-то запускаете в текущей вкладке).источник
Добавление Terminalapp в .zshrc не работает для меня, поэтому я искал плагин,
~/.oh-my-zsh/plugins/terminalapp
и он говорит мне:источник
Новые вкладки уже открываются в той же папке (Cmd + T). Для новых окон (Cmd + N) решение от Питера верное:
источник