Зберігайте всю підказку, очищаючи zsh-термінал oh-my-zsh


1

Отже, нещодавно я почав використовувати zsh та oh-my-zsh . Я використовую чисту (вдосконалену) тему, і підказка показує додаткову інформацію над підказкою.

Коли я очищаю термінал за допомогою Ctrl+ L, весь термінал видаляється, але рядок перед підказкою, що показує поточну каталог та інформацію про git, також очищається. Коли я clearнабираю текст, лінія залишається підказкою під час очищення терміналу.

Чи є спосіб зберегти цю лінію, коли я натискаю Ctrl+ L? На що вказує ця ярлик і як я можу це змінити? У моїх налаштуваннях терміналів (я перебуваю на Manjaro Budgie), це прив'язка клавіш відсутня у списку ярликів.


1
Це не відбувається, коли я використовую pureтему; обидва clearта ^Lнамалюйте повний 2-рядовий рядок. Ви можете бачити, з чим ^Lпов'язаний bindkey | fgrep '^L'. Це значення за замовчуванням clear-screen, про яке ви можете прочитати в man zshzle. Але я підозрюю, що тут є щось інше; він повинен працювати без будь-яких злому. Я б протестував інший емулятор терміналу (xterm, sakura, Konsole). Тоді я б створив чисту за .zshrcдопомогою source /path/to/pure.zshі лише побачив, чи працює це. Потім поступово додайте більше інших конфігурацій назад, поки ви не знайдете фрагмент, який його порушує.
Тім Сміт

Тілікс також поводиться так само. Я спробую змінити свій .zshrcфайл.
swa_mi

Відповіді:


2

Швидше за все, ці додаткові рядки виводяться precmdгачком, який виконується після кожної команди та перед підказкою. Він не викликається автоматично clear-screen(приєднаний ^L).

Ви можете переосмислити clear-screenтак, що це називає:

clear-screen() { echoti clear; precmd; zle redisplay; }
zle -N clear-screen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.