Come posso rimuovere la "riga del prefisso del percorso" da zsh su Cygwin?


1

Ho installato Cygwin su Windows 7 e ho aggiunto la linea exec zsh -l a C:\cygwin\home\Viktor\.bash_profile.

Il problema è che ottengo ancora quella nuova brutta linea per ogni comando che scrivo:

(Viktor@INET)[2] ~
$ cd D:

(Viktor@INET)[3] /cygdrive/d
$ ls
$RECYCLE.BIN  Program Files (x86)  System Volume Information  Viktor  xampp

(Viktor@INET)[4] /cygdrive/d
$ _

Dato che lo spazio orizzontale non riguarda i 1920 pixel, mi piacerebbe avere l'aspetto di Linux, qualcosa del genere viktor@inet> _ o qualsiasi cosa è l'impostazione predefinita. Un comando non dovrebbe prendere tre linee. E come cambio i colori?

Modificare. Ho anche installato Console2, che ho impostato per utilizzare Cygwin, se questo è un aiuto.

Risposte:


2

La "linea di prefisso del percorso" è chiamata il richiesta . Non dipende dalla console o dal terminale; solo sul tuo guscio.

  • In Bash, è cambiato impostando il PS1 variabile (di solito dal tuo .bashrc );
  • in ZSH è PS1 o PROMPT (entrambi sono equivalenti) da cui hai impostato .zshrc;
  • in Windows cmd.exe shell - anche PROMPT.

L'impostazione predefinita per ZSH sembra essere %m%# ​, che si espande computername% ​​. Inoltre %m e %#, ci sono molte altre sostituzioni (per nome utente, directory corrente e così via) - sono documentate nel zshmisc (1) pagina di manuale in "Espansione delle sequenze di prompt". Alcuni di essi possono essere utilizzati per influenzare anche la formattazione.

Esistono diversi tutorial dettagliati su come personalizzare l'aspetto del prompt, ad esempio quello in Wiki di Arch Linux .

Si noti che non esiste un vero "aspetto di Linux": molti utenti Linux che utilizzano il terminale spesso dispongono di elaborate personalizzazioni.


Potrei dover rispolverare la mia terminologia allora. ;) "Prompt" suona comunque un campanello. Ad ogni modo, ottima spiegazione e ora ho qualcosa su cui andare: i miei googlings per "cygwin remotizza la riga del prefisso" non sono tornati molto. Quale sarebbe la shell ideale da usare come principiante? Ho scaricato zsh nella speranza che avrebbe cambiato il prompt a mio piacimento (come penso di aver usato zsh o xterm in Ubuntu). Bash è una shell stand-alone? Pensavo di aver letto che Cygwin usa il mintty come predefinito: bash e mintty sono connessi in qualche modo?
Viktor

@Viktor: Sia Bash che ZSH sono "stand-alone", ed entrambi sono buone shell. Bash è il più popolare e ha una quantità enorme di tutorial sul web (non tutti sono buoni, però), mentre ZSH è il secondo (ma più potente e più facile da personalizzare - per esempio "grml-zsh" o "oh-my -zsh "). /// MinTTY è un terminale (simile alle console Xterm o Console2 o Win32) - mostra solo l'output del programma sullo schermo. Puoi eseguire qualsiasi shell al suo interno.
grawity

Grazie mille! (Pensavo che la menta fosse una shell in quanto era classificata sotto le shell nell'installer del pacchetto Cygwin.) Comunque, ho scritto una semplice variabile prompt che imita la shell del terminale di default nell'ultima Ubuntu: PROMPT = '%n@%M:%1~$ ' | tr 'A-Z' 'a-z'. Anche se, la mia pipa tr non sembra fare nulla È solo un cambiamento estetico, ma mi piacerebbe averlo. Cioè, voglio il tutto PROMPT essere in minuscolo.
Viktor

@Viktor: pipe e variabili non funzionano in questo modo. Nel tuo esempio, stai solo eseguendo un comando PROMPT=... (che imposta una variabile e non emette nulla) e piping il suo output a tr. Non stai dicendo a zsh di fare magicamente la pipa ogni volta che legge il valore di PROMPT. /// Se si desidera avere un nome host di minuscolo, provare a cambiare %M$(hostname|tr A-Z a-z). (È necessario impostare PROMPT_SUBST affinché funzioni.)
grawity

Ho impostato PROMPT_SUBST, ma non riesco a capire come usare il tuo codice. Come faccio a "mappare" hostname per ottenere il suo valore da %M? Proprio ora che ho PROMPT='%n@$(%M|tr A-Z a-z):%1~$ '. Mi dispiace, ho provato a leggere la documentazione che ho trovato, ma non ha senso per me.
Viktor

0

Per quanto riguarda i "colori", prova ansi-sequenze. Descrizione nel mio un'altra risposta .

Inoltre, ti consiglio, provalo ConEmu - un altro terminale Windows (Sono l'autore di esso).


Ok, ci proverò quando ho un po 'di tempo libero, volevo solo avere un ambiente decente per il mio corso Perl / Prolog. Sono tornato da Console2 a Cygwin perché non riuscivo a capire come ottenere UTF-8 in Console2, ma sto ancora usando zsh. Proverò sicuramente il tuo ConEmu, dato che non sono soddisfatto al 100% della mia corrente.
Viktor
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.