удаление странных символов из приглашения zsh

Я установил zsh 5.3 и использую его.

Теперь в .zshrc я сделал следующее:

autoload -Uz compinit promptinit compinit promptinit # End of lines added by compinstall 

Теперь я прокрутил некоторые подсказки и полюбил один большой_fade

Big_fade выглядит так:

 ۲  shirish@think-debian   ۲   Mon Dec 26 02:24:01am /usr/share/zsh/functions/Prompts> 

Встроенный код приглашения находится в / usr / share / zsh / functions / Prompts / prompt_bigfade_setup

 /usr/share/zsh/functions/Prompts> cat prompt_bigfade_setup # Generic large colour fade-bar prompt theme from bashprompt # Created by James Manning <jmm@raleigh.ibm.com> # Changed by Spidey 08/06 # Converted to zsh prompt theme by <adam@spiers.net> prompt_bigfade_help () { cat <<EOH This prompt is color-scheme-able. You can invoke it thus: prompt bigfade [<fade-bar> [<userhost> [<date> [<cwd>]]]] where the parameters are the colors for the fade-bar, user@host text, date text, and current working directory respectively. The default colors are blue, white, white, and yellow. This theme works best with a dark background. Recommended fonts for this theme: either UTF-8, or nexus or vga or similar. If you don't have any of these, the 8-bit characters will probably look stupid. EOH } prompt_bigfade_setup () { local fadebar=${1:-'blue'} local userhost=${2:-'white'} local date=${3:-'white'} local cwd=${4:-'yellow'} local -A schars autoload -Uz prompt_special_chars prompt_special_chars PS1="%B%F{$fadebar}$schars[333]$schars[262]$schars[261]$schars[260]%B%F{$userhost}%K{$fadebar}%n@%m%b%k%f%F{$fadebar}%K{black}$schars[260]$schars[261]$schars[262]$schars[333]%b%f%k%F{$fadebar}%K{black}$schars[333]$schars[262]$schars[261]$schars[260]%B%F{$date}%K{black} %D{%a %b %d} %D{%I:%M:%S%P}$prompt_newline%B%F{$cwd}%K{black}%d>%b%f%k " PS2="%B%F{$fadebar}$schars[333]$schars[262]$schars[261]$schars[260]%b%F{$fadebar}%K{black}$schars[260]$schars[261]$schars[262]$schars[333]%F{$fadebar}%K{black}$schars[333]$schars[262]$schars[261]$schars[260]%B%F{$fadebar}>%b%f%k " prompt_opts=(cr subst percent) } prompt_bigfade_preview () { if (( ! $#* )); then prompt_preview_theme bigfade print prompt_preview_theme bigfade red white grey white else prompt_preview_theme bigfade "$@" fi } prompt_bigfade_setup "$@" 

Теперь, когда все это хорошо, я хочу внести некоторые изменения в приглашение. Например, мне не нужны специальные символы «2».

Кроме того, в самом конце приглашение заканчивается на>. Я хочу закончить его как $ (аналогично bash). Может ли кто-нибудь помочь?

  • zsh: отключить «файл существует:» предупреждение с перенаправлением
  • Очистить или отключить псевдонимы в zsh
  • Как избавиться от «Ничего не найдено» при запуске «rm *»
  • Как убить кучу заданий на основе вывода ps?
  • Удалить часть каталога из текущего каталога в zsh
  • zsh globbing - поиск файлов с повторяющимися строками имен файлов
  • Как функция может вызвать функцию, которую она «переопределяет»?
  • Трубопроводы, рабочие места и процессы в Zsh
  • 2 Solutions collect form web for “удаление странных символов из приглашения zsh”

      Рекомендуемые шрифты для этой темы: либо UTF-8, либо nexus или vga или аналогичные. 
    Если у вас их нет, 8-битные символы, вероятно, будут выглядеть глупо.

    Вы прочитали этот комментарий в сценарии, не так ли? ☺

    Модуль prompt_special_chars настраивает переменную массива с именем schars которая содержит последовательности вывода для различных символов, которые затем используются в вашем приглашении, как вы можете видеть. В основном это рисование линий и блокирующие символы. Модуль prompt_special_chars находится рядом с тем, на котором вы уже смотрите.

    Ваш терминал (эмулятор), по-видимому, правильно настроен для распознавания UTF-8-кодированного вывода, который prompt_special_chars помещает в эти строки. (Это хорошо, учитывая, что люди Debian, которые в настоящее время в декабре 2016 года, воскрешают предложение полностью отказаться от любых эмуляторов терминалов в Debian, которые не являются UTF-8 .) Но в нем отсутствует поддержка шрифтов для соответствующих глифов и заменяет заменяющий символ, потому что ваши шрифты не имеют фактических символов рисования линий и полей.

    Итак, как сказано в комментарии, установите эмулятор терминала с помощью шрифтов, которые включают в себя эти символы штриховки и кодировки Unicode. Посмотрите шрифт, который, например, имеет репертуар Windows Glyph List 4 (WGL4).

    Если вам не нравятся символы блока, то подсказка, где это основной пункт , не для вас. Вы, по сути, говорите, что вам нравится подсказка, за исключением того, что вам не нравится отличительная вещь, которую она делает, что является противоречием. Символы блока используются для эффекта «затухания цвета», который находится в названии «bigfade».

    @jdeBP – спасибо, вы предоставили первые подсказки.

    Это результат, который я получал –

    странные символы в приглашении zsh

    Затем я поднял глаза, если шрифта там не было –

     > aptitude search xfonts-nexus i xfonts-nexus - Nexus font for X 

    Я понял, что шрифт есть, тогда единственная возможность – консоль, то есть .zsh не было сказано, что нужно использовать utf-8, и это было подтверждено –

     > locale LANG=en_IN LANGUAGE=en_IN:en LC_CTYPE="en_IN" LC_NUMERIC="en_IN" LC_TIME="en_IN" LC_COLLATE="en_IN" LC_MONETARY="en_IN" LC_MESSAGES="en_IN" LC_PAPER="en_IN" LC_NAME="en_IN" LC_ADDRESS="en_IN" LC_TELEPHONE="en_IN" LC_MEASUREMENT="en_IN" LC_IDENTIFICATION="en_IN" LC_ALL= 

    Поняв это, я знал, что мне нужно делать, от того, как я могу включить поддержку UTF-8 в консоли Linux? @ Ответ GAD3R.

    Я просто добавил эти биты –

     /home/shirish> cat ~/.zsh/.zshrc | grep UTF-8 export LC_ALL=en_IN.UTF-8 export LANG=en_IN.UTF-8 export LANGUAGE=en_IN.UTF-8 

    получив эти биты для подсказки –

     /home/shirish> source ~/.zsh/.zshrc 

    и получил правильное приглашение –

    подсказка с приятными цветами

    увидел, что локаль также хороша, сейчас исправлена.

     /home/shirish> locale LANG=en_IN.UTF-8 LANGUAGE=en_IN.UTF-8 LC_CTYPE="en_IN.UTF-8" LC_NUMERIC="en_IN.UTF-8" LC_TIME="en_IN.UTF-8" LC_COLLATE="en_IN.UTF-8" LC_MONETARY="en_IN.UTF-8" LC_MESSAGES="en_IN.UTF-8" LC_PAPER="en_IN.UTF-8" LC_NAME="en_IN.UTF-8" LC_ADDRESS="en_IN.UTF-8" LC_TELEPHONE="en_IN.UTF-8" LC_MEASUREMENT="en_IN.UTF-8" LC_IDENTIFICATION="en_IN.UTF-8" LC_ALL=en_IN.UTF-8 

    (rant) – Спасибо вам за то, что вы решили отказаться от эмуляторов терминалов в Debian, которые не поддерживают utf-8. Я буду читать весь поток, но на самом деле скажу, что это не только терминал, каждое приложение. должен быть utf-8, и, кроме того, шрифтом по умолчанию для Debian должен быть utf-8. Хотя последняя часть не может произойти, если раньше не было других вещей. Мне не нужно было вводить учетные данные UTF-8 в моем .zshrc, они должны быть частью опыта по умолчанию. (/ Напыщенная)

    Interesting Posts

    Запуск приложения под Tomcat

    Проверьте, включен ли дисплей в Linux

    Подключение SSH и Git к gpg-agent

    как использовать \ n (и) \ n как разделитель в awk

    Могу ли я изменить подстановочные знаки оболочки?

    Получение последнего элемента в csv

    Как определить, доступен ли и какой модуль безопасности Linux (LSM)?

    sar / sysstat выводит журналы во второй каталог

    Как достичь переменной косвенности (обратитесь к переменной, имя которой хранится в другой переменной) в tcsh

    Почему Firefox 33 не использует GCM на нашем веб-сервере?

    Отдельные ярлыки Chromeapp Chrome от Chrome в Gnome Shell

    сценарий оболочки, чтобы найти комбинацию элементов массива

    Kompare-подобный инструмент, который не нуждается в зависимостях kdelibs?

    Короткий путь к scp с использованием одного и того же файла / источника в исходном и целевом

    Debian: установка тома NFS при загрузке с fstab не работает, как изменить, когда это делается при загрузке

    Linux и Unix - лучшая ОС в мире.