удаление странных символов из приглашения 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
  • Где zsh хранит мою историю?
  • Как увидеть man-страницу предыдущей команды?
  • Как я могу остановить Z-оболочку от сговора, чтобы вмешаться в вывод GNU Make?
  • Поиск в обратном и прямом направлениях осуществляется с помощью vi-режима в zsh
  • Есть ли хороший способ установить локальные переменные среды каталога / проекта?
  • Могу ли я изменить, как работает автозаполнение 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, они должны быть частью опыта по умолчанию. (/ Напыщенная)

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