Jak mogę zmienić monit, aby uwzględnić znaki rysunku w formacie Unicode?

4

Jak mogę dostać $PS1 zawierające znaki rysunkowe?

Używam bash, jeśli to robi różnicę.

Wuffers
źródło
... Przypuszczam, że Archer jest nazwą maszyny?
Arjan
Może być, ale nie jestem zbyt zainteresowany tą częścią. Interesują mnie przede wszystkim postacie po lewej: dziwne paski i postać kwadratowa.
Wuffers
Zrzut ekranu zniknął. Tytuł postu należy zmienić i wspomnieć o rysunkach bex-drawing lub geometrycznych kształtach. W każdym razie słowo „zrzut ekranu” w tytule to zły pomysł.
Ludovic Kuty

Odpowiedzi:

9

Jeśli masz edytor z obsługą UTF-8, możesz wpisać Znaki rysunkowe w Unicode i figury geometryczne bezpośrednio. Coś jak:

PS1='┌─[blah][blah]
└─▪ '

Napisz to do pliku za pomocą edytora, a następnie skieruj plik do swojej sesji bash source ./myfile. Gdy będziesz gotowy, aby go zachować, dodaj go do pliku .bashrc.

Innym, starszym sposobem jest użycie kodów ucieczki VT100, aby przełączyć się na zestaw znaków rysunkowych terminala. W tym przypadku linia PS1 wygląda tak:

PS1='\[\e(0\]lq\[\e(B\][blah][blah]
\[\e[0\]mq~\[\e(B\] '

The \[ i \] powiedz bashowi, że te części podpowiedzi nie są drukowane, co pomaga wiedzieć, gdzie znajduje się kursor podczas edycji linii poleceń. The \e(0 przełącza na zestaw znaków rysowania linii i \e(B przełącza się z powrotem. W trybie rysowania linii:

  • l jest ┌
  • q oznacza ─
  • m to └
  • ~ to ▪

Możesz zbudować pełną listę, uruchamiając takie rzeczy printf '\e(0 qwertyuiop \e(B \n' w wierszu polecenia bash.

Jander
źródło
Idealny! Po prostu skopiowałem i wkleiłem postacie i działa to jak urok! Dzięki!
Wuffers
to jest taka mile widziana informacja. Zapomniałem, jak to nazwano i polowałem od tygodni! nie zapomnę ponownie! Dziękuję Ci!
WhiteRau
0

Oto bardzo ładne próbkowanie różnych PS1:

Tą, którą chcesz, jest to:

Będziesz musiał to trochę zmienić, ale elementy są. Proponuję zajrzeć tutaj, aby uzyskać więcej informacji:

icyrock.com
źródło
Z jakiegoś powodu nie mogę uruchomić zegara PS13. Próbowałem dokładnie skopiować i wkleić kod, który w ogóle nie działał. Używam Terminal.app na Mac OS X z kodowaniem UTF-8.
Wuffers
@Pan. Mężczyzna: Czy pobrałeś plik lub uruchomiłeś go? Musisz go pozyskać.
Dennis Williamson
Dostałem plik. Kiedy to zrobiłem, dał mi garść śmieci.
Wuffers
Powodem tego nie działa to, że korzysta z rozszerzonego zestawu znaków IBM BIOS z dni DOS, który jest obsługiwany przez konsolę trybu tekstowego w systemie Linux, ale nie przez xterm lub Terminal lub większość innych emulatorów terminali.
Jander
@Jander Dzięki za wyjaśnienie i oczywiście za odpowiedź na pytanie pana Man!
icyrock.com