vim
memiliki fitur yang sangat bagus yang digunakan pada jalurnya ketika agak lama:
Ini menyingkat jalur ke dokumen di tab di bagian atas. Apakah ada cara untuk melakukan sesuatu yang mirip dengan ini sehingga bash prompt saya tidak terlihat seperti ini:
rfkrocktk@work-laptop ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $
rfkrocktk@work-laptop ~/D/P/W/m/src/main/java/com/tkassembled/ $
? Idealnya, menggunakan beberapa ambang batas untuk panjang prompt maksimum?Jawaban:
Coba ini :
atau, bash murni:
kemudian
menghasilkan (perhatikan
~
untuk${HOME}
):Saya meningkatkan jawaban saya berkat @ enzotib
sumber
$PWD
→~
. Saat ini, jikaHOME
ada/home/ed
danPWD
sedang/home/edwina
, Anda mendapatkan~wina
dalam versi Perl dan~/ina
dalam versi shell. (2) Kode shell Anda tersedak jika direktori saat ini berisi karakter wildcard (mis., Ekspansi nama path); misalnya,PWD
=/abc/*/def
. Anda dapat memperbaikinya dengan menambahkanset -o noglob
atauset -f
. … (Lanjutan)$HOME
(yang ada di dalam tanda kutip ganda) dan$PWD
cukup baik. Dalam perintah shell, yang terakhir tiga referensi variabel shell baik-baik saja, tapi tiga pertama dapat"${PWD#$HOME}"
,"$PWD"
dan"$p"
. (4) Lihat juga jawaban mbentley dan komentar saya di atasnya.Mirip dengan jawaban @nicerobot, tetapi agak pendek:
Ini akan menampilkan output contoh berikut:
sumber
Saya suka
PROMPT_DIRTRIM
di bash ...akan mengubah prompt contoh Anda ke ...
Ini bekerja untuk saya.
sumber
Menambahkan ke jawaban enzotib , cuplikan berikut akan:
/Path/To/Your/Home/
ke~/
(jadi jalan akan menjadi~/a/b/c
bukan/P/T/Y/H/a/b/c
)Gunakan huruf pertama dari 'file titik' alih-alih hanya menunjukkan titik (
/a/./c/d
akan menjadi/a/.b/c/d
):Pastikan Anda menggunakan tanda kutip tunggal atau bash akan mengembangkannya sebelum waktunya.
sumber
Format untuk digunakan
PS1
adalah Anda\W
(lihatPROMPTING
bagian dibash
halaman manual).Dan Anda mungkin ingin membaca opsi lain di sana, Anda dapat melakukan beberapa hal keren dengan baris perintah Anda.
sumber
Saya suka output dari contoh nicerobot tetapi saya menemukan satu masalah. Saya memiliki direktori yang memiliki tanda hubung di dalamnya
A-E
,, dan itu dilihat-E
sebagai argumenprintf
ketika itu adalah direktori kerja saya saat ini. Untuk memperbaikinya, saya menambahkan tanda kutip--
terakhirprintf
dan yang ditambahkan di sekitar keluaran jika tidak ada yang dihasilkan:sumber
-
sebagai karakter kedua. Meskipun benar itu--
adalah solusi umum untuk masalah argumen yang dimulai dengan-
, metode yang lebih baikprintf
adalah mengatakanprintf "%s" "${q:1}"
, karena ini juga melindungi terhadap argumen yang mengandung%
. (Misalnya, cobaPWD
=/home/mbentley/Documents/Projects/Work/maventest/src/main/java/com/abc%def
. (2) Lihat juga komentar saya tentang jawaban nicerobot.