Bagaimana cara menghapus "garis awalan jalur" dari zsh di Cygwin?

1

Saya telah menginstal Cygwin di Windows 7 dan saya telah menambahkan baris exec zsh -l untuk C:\cygwin\home\Viktor\.bash_profile.

Masalahnya adalah saya masih mendapatkan baris baru yang jelek untuk setiap perintah yang saya tulis:

(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
$ _

Karena ruang horizontal tidak ada hubungannya dengan 1920 piksel saya ingin memiliki "tampilan Linux", sesuatu seperti ini viktor@inet> _ atau apa pun yang default. Satu perintah seharusnya tidak mengambil tiga baris. Dan bagaimana cara mengubah warna?

Edit. Saya juga telah menginstal Console2, yang telah saya atur untuk menggunakan Cygwin, jika itu bisa membantu.

Viktor
sumber

Jawaban:

2

"Path prefix line thing" disebut cepat . Itu tidak tergantung pada konsol atau terminal; hanya di shell Anda.

  • Di Bash, itu diubah dengan mengatur PS1 variabel (biasanya dari Anda .bashrc );
  • di ZSH itu PS1 atau PROMPT (keduanya setara) dari mana Anda mengatur .zshrc;
  • di Windows cmd.exe shell - juga PROMPT.

Default untuk ZSH tampaknya %m%# ​, yang diperluas ke computername% ​​. Sebagai tambahannya %m dan %#, ada banyak lagi pergantian (untuk nama pengguna, direktori saat ini, dan sebagainya) - mereka didokumentasikan dalam zshmisc (1) halaman manual di bawah "Ekspansi urutan cepat". Beberapa di antaranya dapat digunakan untuk memengaruhi pemformatan juga.

Ada beberapa tutorial terperinci tentang cara menyesuaikan tampilan prompt, misalnya yang ada di Arch Linux wiki .

Perhatikan bahwa tidak ada "tampilan Linux" yang sebenarnya - banyak pengguna Linux yang menggunakan terminal sering benar-benar akan mengatur kustomisasi yang rumit.

grawity
sumber
Saya mungkin harus memoles terminologi saya kemudian. ;) "Prompt" tidak berdering meskipun. Bagaimanapun, penjelasan yang bagus dan sekarang saya memiliki sesuatu untuk melanjutkan: googling saya untuk "cygwin remove prefix line thingie" tidak banyak menghasilkan. Yang akan menjadi cangkang ideal untuk digunakan sebagai pemula? Saya mengunduh zsh dengan harapan itu akan mengubah prompt sesuai dengan keinginan saya (karena saya pikir saya telah menggunakan zsh atau xterm di Ubuntu). Apakah bash shell yang berdiri sendiri? Saya pikir saya membaca bahwa Cygwin menggunakan mintty sebagai default — apakah bash dan mintty terhubung entah bagaimana?
Viktor
@ Viktor: Baik Bash dan ZSH "berdiri sendiri", dan keduanya adalah cangkang yang baik. Bash adalah yang paling populer dan memiliki banyak tutorial di web (meskipun tidak semuanya bagus), sedangkan ZSH adalah yang kedua (tetapi lebih kuat dan lebih mudah untuk disesuaikan - misalnya "grml-zsh" atau "oh-my" -zsh "). /// MinTTY adalah terminal (mirip dengan konsol Xterm atau Console2 atau Win32) - hanya menampilkan output program di layar. Anda dapat menjalankan shell di dalamnya.
grawity
Terima kasih banyak! (Saya pikir mintty adalah shell karena dikategorikan dalam shell di installer paket Cygwin.) Omong-omong, saya menulis variabel prompt sederhana yang meniru shell terminal default di Ubuntu terbaru: PROMPT = '%n@%M:%1~$ ' | tr 'A-Z' 'a-z'. Meskipun, pipa saya tr sepertinya tidak melakukan apa-apa. Itu hanya perubahan estetika, tapi saya ingin memilikinya. Yaitu, saya ingin keseluruhan PROMPT menjadi lebih kecil.
Viktor
@ Viktor: Pipa dan variabel tidak berfungsi seperti itu. Dalam contoh Anda, Anda hanya menjalankan perintah PROMPT=... (yang menetapkan variabel dan tidak menghasilkan apa-apa) dan mengarahkan outputnya ke tr. Anda tidak mengatakan zsh untuk secara ajaib melakukan pipa setiap kali itu membaca nilainya PROMPT. /// Jika Anda ingin memiliki nama host dengan huruf kecil, coba ubah %M$(hostname|tr A-Z a-z). (Anda harus mengatur PROMPT_SUBST agar ini berfungsi.)
grawity
Saya telah menetapkan PROMPT_SUBST, tapi saya tidak tahu cara menggunakan kode Anda. Bagaimana cara "memetakan" hostname untuk mendapatkan nilainya dari %M? Sekarang saya punya PROMPT='%n@$(%M|tr A-Z a-z):%1~$ '. Maaf, saya sudah mencoba membaca dokumentasi yang bisa saya temukan, tetapi itu tidak masuk akal bagi saya.
Viktor
0

Sedangkan untuk "warna", coba urutan ansi. Deskripsi di jawaban lain .

Juga, saya sarankan Anda, cobalah ConEmu - terminal windows lain (Saya penulisnya).

Maximus
sumber
Oke, saya akan coba itu ketika saya punya waktu luang, hanya ingin mendapatkan lingkungan terminal yang layak dan pergi untuk kursus Perl / Prolog saya. Saya beralih kembali dari Console2 ke Cygwin karena saya tidak tahu bagaimana cara mendapatkan UTF-8 di Console2, tapi saya masih menggunakan zsh. Saya pasti akan mencoba ConEmu Anda, karena saya tidak 100% puas dengan arus saya.
Viktor