Добавление метки времени к каждой строке в Zsh

#macos #terminal #zsh #oh-my-zsh

#macos #терминал #зш #о-мой-зшш

Вопрос:

Я только что установил Sierra и хотел использовать zsh с oh-my-zsh и power shell…

В итоге я получил такой терминал, как этот:

введите описание изображения здесь

Но я хочу добавить временную метку к каждому результату. Семетинг линке:

[14:23] acytryn ~ Projects %

Есть ли способ сделать это с помощью zsh?

Ответ №1:

Я счел более неразрушающим фактически добавлять время к существующему приглашению, не переопределяя его полностью. Это позволяет работать с любой существующей темой, не влияя на ее стиль.

Добавьте это в конец вашего .zshrc файла. Вы можете ввести команду nano ~/.zshrc для ее редактирования, используя nano :

 PROMPT='%{$fg[yellow]%}[%D{%f/%m/%y} %D{%L:%M:%S}] '$PROMPT
 

Я использую облачную тему, так что это дает мне:

введите описание изображения здесь

Он сохраняет текущую тему. Вы также можете добавить некоторый стиль к метке времени, изменив цвет или даже формат.

Обязательно перезагрузите .zshrc файл, набрав:

 . ~/.zshrc
 

или

 source ~/.zshrc
 

Комментарии:

1. Как поместить это в правой части экрана?

2. @ZulhilmiZainudin Похоже, что из этого поста может потребоваться немало работы: superuser.com/questions/187455/right-align-part-of-prompt . Вы можете попробовать что-то из приведенных там ответов и посмотреть, сработает ли это для вас. Однако я ничего из этого не пробовал

3. Потрясающе. Работает, как и ожидалось. Спасибо.

4. Если вам нужна только 24-часовая временная метка, вы можете использовать это PROMPT='%{$fg[yellow]%}[%D{%T}] '$PROMPT

5. Небольшое упрощение: вы можете удалить среднюю } %D{ часть. Так что у вас было бы PROMPT='%{$fg[yellow]%}[%D{%f/%m/%y %L:%M:%S}] '$PROMPT . Работает для меня так.

Ответ №2:

Если вы хотите, чтобы она была с правой стороны:

 RPROMPT="[%D{%f/%m/%y} | %D{%L:%M:%S}]"
 

https://gist.github.com/zulhfreelancer/9c410cad5efa9c5f7c74cd0849765865

Комментарии:

1. как я могу добавить название дня в эту команду? и время ожидания до конца левой стороны

Ответ №3:

ДА. Просто откройте свой ~/.zshrc файл и добавьте эту строку в его конец ( nano ~/.zshrc например, используя команду в терминале).:

 PROMPT='%{$fg[yellow]%}[%*] '$PROMPT
 

И вы получите это вот так:

введите описание изображения здесь

Вы можете изменить [%*] раздел, чтобы получить другие форматы:

  %D     The date in yy-mm-dd format.
 %T     Current time of day, in 24-hour format.
 %t %@  Current time of day, in 12-hour, am/pm format.
 %*     Current time of day in 24-hour format, with seconds.
 %w     The date in day-dd format.
 %W     The date in mm/dd/yy format.
 

Ответ №4:

добавьте это в конец вашего ~/.zsh файла:

 PROMPT='[%T] %n ~ %d %%'
 

Комментарии:

1. У меня нет файла .zsh… должно ли это быть в .zshrc? (Это все равно не сработало)

2. когда вы говорите «это все равно не сработало», что не сработало? помещаем его в .zshrc или даже вводим » PROMPT='[%T] %n ~ %d %%' » в вашу оболочку zsh, чтобы попробовать?

3. Я добавил в последний файл .zshrc файл, запустил source ~/.zshrc , но ничего не изменилось. Я использую powerline-shell, я не знаю, мешает ли это как-то. Кроме того, вставка этого в приглашение напрямую не приводит к выводу

4. powerline-shell использует precmd функцию для динамической установки значения PROMPT перед его отображением. Вам нужно следовать инструкциям на github.com/banga/powerline-shell чтобы изменить ваше приглашение.