Как открыть текущий каталог в новой вкладке?

Предполагается, что echo "$ PATH" показывает / usr / local / bin на вашем пути, и, учитывая, что это ваш личный ноутбук:

Создайте символическую ссылку в / usr / local / bin , которая указывает на исполняемый файл, который вы хотите.

ln -s /Applications/XAMPP/xamppfiles/bin/php /usr/local/bin/php

Если это общий компьютер и вы не хотите влиять на других пользователей, я рекомендую настроить собственное расширение для вашего PATH в ~ / .bash_profile . У меня есть один:

$ grep PATH ~/.bash_profile 
export PATH="$PATH:$HOME/.bin"

Затем я могу поместить свои собственные символические ссылки, сценарии и т.д. в ~ / .bin , и они будут работать, как ожидалось (без переопределения системных команд, существовавших ранее в моем PATH).

Я поставил . в начале .bin , поэтому мне не нужно видеть каталог при просмотре в Finder.

3
23.04.2019, 21:15
3 ответа

Решение найдено здесь:https://blog.callstack.io/supercharge-your-terminal-with-zsh-8b369d689770

# Open new tabs in same directory
if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then
  function chpwd {
    printf '\e]7;%s\a' "file://$HOSTNAME${PWD// /%20}"
  }
  chpwd
fi

Обратите внимание, что единственное процентное -кодирование пути — замена пробелов на "%20". Это должно быть заменено более надежной кодировкой.

1
27.01.2020, 21:24

Просто выполните следующее сочетание клавиш:

cmd + ctrl + o

0
27.01.2020, 21:24

Нажмите на синий текст:

Terminal preferences window with popup showing how to notify Terminal of the current working directory

Так что вам просто нужно добавить эту маленькую escape-последовательность в приглашение, чтобы Терминал знал, где вы находитесь. Легкий!

Или, если вы думаете, что это немного загадочно, давайте посмотрим, как bash справляется с этим. Проверка man bashпоказывает, что когда bash вызывается как интерактивная оболочка входа в систему (, это должно быть по умолчанию при открытии окна терминала или вкладки ), один из файлов, на которые он ссылается, — /etc/profile.

Быстрый взгляд на /etc/profileпоказывает, что он может загрузить /etc/bashrc.

А заглянув внутрь /etc/bashrc, видно, что он пытается загрузить /etc/bashrc_$TERM_PROGRAM. Быстрая проверка:

> echo $TERM_PROGRAM
Apple_Terminal

А less /etc/bashrc_Apple_Terminalпозже, и джек-пот! В самом верху:

# Tell the terminal about the current working directory at each prompt.

За ней следует функция, которая делает именно это и готова для включения в приглашение (bash ). Я воздержусь от копирования функции здесь, так как я не совсем уверен в законности этого, хотя я включу последнюю строку функции, так как я считаю, что это достаточно тривиально, чтобы быть добросовестным:

printf '\e]7;%s\a' "file://$HOSTNAME$url_path"

По сути, это загадочная управляющая последовательность из всплывающего окна настроек. Остальная часть функции полностью посвящена настройке переменной $url_pathс необходимой процентной кодировкой _. Вам нужно будет перевести этот материал в zsh или просто извлечь его во внешний скрипт bash и вызвать его, хотя запуск экземпляра bash каждый раз может немного замедлить ваше приглашение.

1
27.01.2020, 21:24

Теги

Похожие вопросы