TL; DR
Yang perlu Anda lakukan adalah meletakkan ini di ~/.zshrc
(atau di file yang sama dengan tema prompt Anda):
ZLE_RPROMPT_INDENT=0
Detail
Dalam versi ZSH yang mengarah ke 5.0.2 nilai dalam kode sumber C ZSH disebut rprompt_off
(yang mengatur offset margin kanan) sulit dikodekan ke 1
.
Tetapi dalam rilis 5.0.5 , pengembang menambahkan kemampuan untuk menimpa nilai default ini dengan mengatur ZLE_RPROMPT_INDENT
variabel lingkungan.
The pemikiran untuk ini "indent" karena beberapa terminal yang lebih tua akan mulai bergulir jika sel terakhir dari layar memiliki karakter di dalamnya.
Untuk versi ZSH sebelum 5.0.5
Jika Anda menggunakan versi ZSH yang lebih lama dan tidak dapat memperbarui, Anda masih bisa membuang ruang itu dengan melakukan kedua hal berikut:
- Trik ZSH agar berpikir bahwa RPROMPT Anda adalah karakter yang lebih pendek daripada yang sebenarnya menggunakan pembungkus urutan tak terlihat standar:
%{...%}
- Kemudian mengirimkan urutan pelarian kursor-kembali menggunakan terminfo:
%{terminfo[cub1]}
Lihat FAQ dan pesan ini di milis untuk info lebih lanjut.
Anthony Michael Cook
sumber
%git<Tab>
berubah menjadi%ggit
Saya telah mengirim laporan bug ke pengelola zsh, tetapi tampaknya perilaku ini sesuai dengan desain. Namun masalah ini sangat mengganggu saya sehingga saya memutuskan untuk menambal dan mengkompilasi zsh sendiri sebagai perbaikan sementara. Jika Anda menggunakan OS X dan menggunakan Homebrew (seharusnya), maka Anda dapat menginstal zsh termasuk tambalan saya dengan menjalankan:
Anda mungkin akan ingin menambahkan
/usr/local/bin/zsh
untuk/etc/shells
danchsh -s /usr/local/bin/zsh
sesudahnya. Terakhir, inilah perbedaan mentah untuk siapa saja yang tertarik:sumber
Saya pikir ruang putih di sebelah kanan adalah kode keras. Tetapi Anda dapat menipu
zsh
dengan pengaturan berikut:yang pada prinsipnya mengatakan
zsh
bahwa bintang itu tidak memiliki karakter; dariman zshmisc
:Kekurangannya adalah, bahwa Anda "menggeser" yang kosong ke akhir
PROMPT
:The
|
simbol menunjukkan tepi terminal, ■ kursor.Gagasan lain adalah meningkatkan
COLUMNS
1:Tetapi kita harus memikirkan cara bagaimana melakukan ini hanya untuk rendering prompt, tetapi tidak untuk perintah. Dan ini akan menelan karakter terakhir pada setiap baris pada baris perintah multi-baris.
sumber