Rumah  >  Soal Jawab  >  teks badan

git completion error in bash

在新安装的Debian的Bash下,通过sudo apt-get install git安装后,git的补全出现异常。

$ 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   

部分是正常的,比如git revert。但是很大一部分,比如git add,由于补全项为git a^[[m^[[Kdd而无法正常使用。

请问:

  1. Bash中,这个^[[m^[[K是什么?

  2. 如何去除它,让git的补全正常?

(我曾经用过git-completion这个方案,但是它太老,早已不更新,导致新功能补全缺失。)

阿神阿神2727 hari yang lalu651

membalas semua(2)saya akan balas

  • PHP中文网

    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:

    1. Matikan pewarnaan pelengkapan Git

    2. 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.

    balas
    0
  • 大家讲道理

    大家讲道理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.

    Bentuk penuh

    CSI m ialah CSInm, 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".

    Bentuk penuh

    CSI K ialah CSInK, 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.

    balas
    0
  • Batalbalas