Як iTerm2, як зробити так, щоб робочий каталог з'явився у заголовку вікна?


22

Нещодавно я перейшов на iTerm2 з додатка Terminal за замовчуванням і у мене є проблема користування.

На Терміналі робоча директорія, в якій ви перебуваєте, відображається на заголовковій панелі разом із процесом та розміром пікселів. Наприклад, натиснувши на вікно для переключення між різними сеансами терміналів, ви побачите: working_directory - process - pixel_size.

На жаль, iTerm2, на жаль, відображається лише у процесі заголовка. Отже, якщо я працюю в декількох вікнах iTerm2 в різних каталогах, я не можу легко розрізнити, що саме коли натискаю на вікно, щоб вибрати його. Я знаю, що можу легко перемикатися між вікнами iTerm2, як тільки я вибираю його, але я хотів би відразу визначити, яке саме вікно я хочу. (До речі, я використовую Witch, і Command-tabbing не допомагає, тому що тут знову в списку відображається лише процес).

Будь-які пропозиції? Я переглянув усі налаштування і нічого не побачив. Створення профілів - це не зовсім те, за чим я берусь - я просто хотів би побачити поточний робочий каталог у заголовках вікон iTerm2.

Відповіді:


20

З \033]0;TEXT\007послідовністю втечі.

Приклад використання в Bash: echo -ne "\033]0;$PWD\007"

Що ви можете додати до свого, $PROMPT_COMMANDякщо ви використовуєте Bash або іншим чином приєднаєтесь до вас, PS1щоб він часто переоцінювався.

Приклад: export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'


1
Це працює. Щоб бути педантичним, додайте перелічену вище експортну лінію до файлу ~ / .bashrc.
Спенсер

Це круто. Дуже дякую; це допомогло мені зрозуміти, що відповідь насправді стосується програмування bash і не має нічого спільного з iTerm vs Terminal. Як подальшу інформацію щодо будь-кого іншого, будь ласка, дивіться faqs.org/docs/Linux-mini/Xterm-Title.html#s3 та linfo.org/echo.html . Знову дякую!
whiny_nil

5
і отримати лише останній відрізок шляху echo -ne "\033]0;${PWD##*/}\007"(завдяки спасибі github.com/barryclark/bashstrap за показ шляху)
Anentropic

1
@Spencer: Немає жодних причин експортувати змінну оболонки PROMPT_COMMAND, і взагалі не слід експортувати змінну оболонки, якщо у вас немає конкретної необхідності ділитися змінною з кожною програмою, запущеною оболонкою . За замовчуванням змінні, які використовуються оболонкою, не повинні експортуватися; лише експортні змінні, які призначені для передачі в інші процеси. ~/.bashrcбуде управляти кожною інтерактивною оболонкою, тому їм не потрібно успадковувати змінні, встановлені цим сценарієм.
Кріс Пейдж

Що ж, експорт - це те, як ти використовуєш PROMPT_COMMAND ... І це, як правило, краще для складних посилань
дембе

2

Мені подобається ця відповідь від цієї сутності , щоб додати його до закладці заголовка

# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
  export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi

0

Якщо ви використовуєте zsh (що є типовим для macOS 10.15), замість цього введіть його у ~ / .zshrc:

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

Ви також можете писати \033як \eі \007як \a.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.