Come posso modificare il mio prompt per includere i caratteri Unicode di disegno in scatola?


4

Come posso ottenere un $PS1personaggio contenente un disegno a scatola?

Sto correndo bash, se fa la differenza.


... Archer è il nome della macchina, suppongo?
Arjan,

Potrebbe essere, ma non sono troppo interessato a quella parte. Sono principalmente interessato ai personaggi verso sinistra: le strane barre e il carattere quadrato.
Wuffers,

Lo screenshot è sparito. Il titolo del post dovrebbe essere modificato e menzionare i caratteri di disegno di bex o le forme geometriche. Comunque la parola "screenshot" in un titolo è una cattiva idea.
Ludovic Kuty,

Risposte:


9

Se hai un editor con supporto UTF-8, puoi inserire direttamente i caratteri Unicode per disegnare caselle e forme geometriche . Qualcosa di simile a:

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

Scrivi questo in un file usando il tuo editor, quindi procedi con il file sorgente nella tua sessione bash source ./myfile. Quando sei pronto per mantenerlo, aggiungilo al tuo file .bashrc.

L'altro modo più vecchio per farlo è utilizzare i codici di escape VT100 per passare al set di caratteri del disegno al tratto del terminale. In questo caso, la tua linea PS1 si presenta così:

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

The \[e \]dire a bash che queste parti del prompt sono non stampabili, il che aiuta a sapere dove si trova il cursore quando si esegue la modifica della riga di comando. I \e(0aziona la linea carattere di disegno, e \e(Britorna. In modalità di disegno al tratto:

  • Sono ┌
  • q è ─
  • m è └
  • ~ è ▪

È possibile creare un elenco completo eseguendo cose come printf '\e(0 qwertyuiop \e(B \n'al prompt di bash.


Perfetto! Ho appena copiato e incollato i personaggi e funziona come un incantesimo! Grazie!
Wuffers,

questa è un'informazione così gradita. avevo dimenticato come si chiamavano e cacciavano da settimane! non dimenticherò più! grazie!
WhiteRau,

0

Ecco un bellissimo campionamento di diversi PS1:

Quello che vuoi è questo:

Dovrai cambiarlo un po ', ma gli elementi ci sono. Ti suggerisco di dare un'occhiata qui per maggiori informazioni:


Per qualche motivo, non riesco a far funzionare l'orologio3 PS1. Ho provato a copiare e incollare esattamente il codice e non ha funzionato affatto. Sto usando Terminal.app su Mac OS X con una codifica UTF-8.
Wuffers,

@Sig. Man: Hai creato il file o eseguito? Devi procurartelo.
Dennis Williamson,

Ho reperito il file. Quando l'ho fatto, mi ha dato un mucchio di immondizia.
Wuffers,

Il motivo per cui non ha funzionato è perché utilizza il set di caratteri estesi del BIOS IBM dai giorni DOS, che è supportato dalla console in modalità testo in Linux, ma non da xterm o Terminal o dalla maggior parte degli altri emulatori di terminali.
Jander il

@Jander Grazie per il chiarimento e ovviamente per la risposta a Mr. Man!
icyrock.com il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.