Bagaimana saya bisa membuat perintah tampak tebal di zsh?


18

Saya telah menyiapkan bash shell saya sehingga perintah apa pun yang saya ketik muncul dalam huruf tebal dan output perintah ditampilkan dalam bobot normal:

masukkan deskripsi gambar di sini

Saya melakukan ini dengan menambahkan \e[01mdi akhir PS1variabel saya untuk mengaktifkan huruf tebal, dan menggunakan trap DEBUGuntuk mematikannya:

trap 'printf "\e[0m" "$_"' DEBUG

Dengan cara itu, \e[0mdicetak sebelum setiap perintah dieksekusi dan saya mendapatkan bobot font normal dalam output.

Bagaimana saya mendapatkan efek yang sama zsh?

Jawaban:



7

Apa yang Anda inginkan adalah fungsi preexec hook :

preexec() { printf "\e[0m"; }

Kemudian sebelum setiap perintah dieksekusi, preexecakan dijalankan untuk mereset font Anda menjadi normal.

Jadi, untuk mendapatkan prompt yang sama dengan yang Anda tunjukkan dalam pertanyaan Anda, tambahkan baris ini ke ~/.zshrc:

autoload -U colors && colors
PS1="%{$fg_bold[yellow]%}%n@%m %{$fg[blue]%}%~ \$ %{$reset_color%}%{$fg_bold[white]%}"
preexec() { printf "\e[0m"; }

Itu adalah hal yang tepat untuk digunakan daripada perangkap DEBUG, tetapi tidak ada cara yang benar untuk membuat baris perintah menjadi tebal.
Gilles 'SANGAT berhenti menjadi jahat'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.