Rumah > Soal Jawab > teks badan
Di bawah Debian Bash yang baru dipasang, selepas memasang melalui sudo apt-get install git
, penyiapan git kelihatan tidak normal.
$ git <TAB>
^[[1;43m^[[K c^[[m^[[Kherry d^[[m^[[Kifftool h^[[m^[[Kttp-backend m^[[m^[[Kerge-file rm
a^[[m^[[Kdd c^[[m^[[Kherry-pick d^[[m^[[Kiff-tree h^[[m^[[Kttp-fetch m^[[m^[[Kerge-index shortlog
a^[[m^[[Km c^[[m^[[Klean f^[[m^[[Kast-export h^[[m^[[Kttp-push m^[[m^[[Kerge-octopus show
a^[[m^[[Knnotate c^[[m^[[Klone f^[[m^[[Kast-import i^[[m^[[Kmap-send mv show-branch
a^[[m^[[Kpply c^[[m^[[Kolumn f^[[m^[[Ketch i^[[m^[[Kndex-pack name-rev stage
a^[[m^[[Krchive c^[[m^[[Kommit f^[[m^[[Ketch-pack i^[[m^[[Knit notes stash
b^[[m^[[Kisect c^[[m^[[Kommit-tree f^[[m^[[Kilter-branch i^[[m^[[Knit-db pull status
b^[[m^[[Klame c^[[m^[[Konfig f^[[m^[[Kmt-merge-msg i^[[m^[[Knstaweb push submodule
b^[[m^[[Kranch c^[[m^[[Kount-objects f^[[m^[[Kor-each-ref l^[[m^[[Kog rebase subtree
b^[[m^[[Kundle c^[[m^[[Kredential f^[[m^[[Kormat-patch l^[[m^[[Ks-files reflog tag
c^[[m^[[Kat-file c^[[m^[[Kredential-cache f^[[m^[[Ksck l^[[m^[[Ks-remote relink verify-commit
c^[[m^[[Kheck-attr c^[[m^[[Kredential-store f^[[m^[[Ksck-objects l^[[m^[[Ks-tree remote whatchanged
c^[[m^[[Kheck-ignore d^[[m^[[Kaemon g^[[m^[[Kc mergetool repack
c^[[m^[[Kheck-mailmap d^[[m^[[Kescribe g^[[m^[[Ket-tar-commit-id m^[[m^[[Kailinfo replace
c^[[m^[[Kheckout d^[[m^[[Kiff g^[[m^[[Krep m^[[m^[[Kailsplit request-pull
c^[[m^[[Kheckout-index d^[[m^[[Kiff-files h^[[m^[[Kash-object m^[[m^[[Kerge reset
c^[[m^[[Kheck-ref-format d^[[m^[[Kiff-index h^[[m^[[Kelp m^[[m^[[Kerge-base revert
Bahagian adalah normal, seperti git revert
. Tetapi sebahagian besar, seperti git add
, tidak boleh digunakan seperti biasa kerana item siap adalah git a^[[m^[[Kdd
.
Maafkan saya:
Apakah ini ^[[m^[[K
dalam Bash?
supaya penyiapan git
berfungsi seperti biasa?
(Saya pernah menggunakan penyelesaian git-completion, tetapi ia terlalu lama dan belum dikemas kini, mengakibatkan kekurangan pelengkapan ciri baharu.)
PHP中文网2017-05-02 09:30:05
Saya tekankan sekali lagi, terminal ialah terminal, dan Shell ialah Shell Sentiasa ada orang yang tidak dapat membezakan antara terminal dan Shell...
Masalah ini disebabkan oleh konfigurasi terminal anda yang tidak betul Tidak kira betapa kuatnya Bash, ia tidak dapat mengendalikan analisis Kod Escape ANSI Sama seperti anda tidak boleh membuat warna paparan monitor hitam putih jika anda menggantikan dengan i3 i7.
Anda mempunyai dua pilihan:
Matikan pewarnaan pelengkapan Git
Laraskan terminal anda untuk menyokong Kod Escape ANSI
Jika Terminal Emulator anda menyokong warna, menukarnya $TERM
biasanya menyelesaikan masalah. Untuk arahan yang lebih terperinci, sila rujuk http://www.tldp.org/HOWTO/Text-Terminal-HOWTO-16.html dan pautan pada halaman ini.
大家讲道理2017-05-02 09:30:05
Apakah ini
^[[m^[[K
dalam Bash?
ialah kod melarikan diri ANSI. ^[
mewakili kekunci ESC dan ^[[
bermaksud ESC[
mewakili CSI (Pengenalan Urutan Kawalan), jadi ^[[m^[[K
mewakili CSI m, CSI K. Bagi maksud CSI m dan CSI K, anda perlu mencari jadual.
CSI m ialah CSIn
m, yang mewakili SGR – Select Graphic Rendition, iaitu kesan pemaparan teks dalam konsol. Di mana n
ialah 0 kepada lebih banyak parameter Apabila tiada parameter, ia menjadi CSI m, yang bermaksud menetapkan semula kepada kesan pemaparan lalai. Lihat di sini untuk butiran. (PS konsol tersuai juga menggunakan ini untuk menetapkan warna.) Contohnya, ^[[1;43m
pada permulaan soalan menunjukkan kesan pemaparan "bold; merah".
CSI K ialah CSIn
K, yang bermaksud EL – Padam dalam Baris, iaitu, padamkan sebahagian daripada baris. Antaranya, n
juga merupakan parameter Apabila n
0 atau diabaikan, ia adalah CSI K, yang bermaksud pemadaman dari kedudukan kursor ke penghujung baris. Untuk situasi lain, sila rujuk penerangan dalam Wikipedia.