bash完成随机字符

时间:2015-06-18 20:31:09

标签: bash completion

我遇到了bash_completion的问题。当我扩展变量时,我很好,但是当我使用命令完成(例如gitvim-addon-manager)时,完成会在那里抛出随机字符。这并没有发生在我身上,我无法弄清楚它是什么。

这是我输入git 标签 标签 y

时会发生什么的示例
[11:11] me@my_computer:~ $ git
Display all 131 possibilities? (y or n)
^[[01;31m^[[K                    c^[[m^[[Kheckout                 delete-tag                       f^[[m^[[Kmt-merge-msg            i^[[m^[[Knit-db                  notes                            rm
a^[[m^[[Kdd                      c^[[m^[[Kheckout-index           d^[[m^[[Kaemon                   f^[[m^[[Kor-each-ref             i^[[m^[[Knstaweb                 obliterate                       setup
a^[[m^[[Klias                    c^[[m^[[Kheck-ref-format         d^[[m^[[Kelete-branch            f^[[m^[[Kormat-patch             info                             p4                               shortlog
a^[[m^[[Km                       c^[[m^[[Kherry                   d^[[m^[[Kelete-merged-branches   f^[[m^[[Ksck                     line-summary                     pull                             show
a^[[m^[[Knnotate                 c^[[m^[[Kherry-pick              d^[[m^[[Kelete-submodule         f^[[m^[[Ksck-objects             l^[[m^[[Kog                      pull-request                     show-branch
a^[[m^[[Kpply                    c^[[m^[[Klean                    d^[[m^[[Kescribe                 fresh-branch                     l^[[m^[[Ks-files                 push                             show-tree
a^[[m^[[Krchive                  c^[[m^[[Klone                    d^[[m^[[Kiff                     g^[[m^[[Kc                       l^[[m^[[Ks-remote                rebase                           squash
a^[[m^[[Krchive-file             c^[[m^[[Kolumn                   d^[[m^[[Kiff-files               g^[[m^[[Ket-tar-commit-id        l^[[m^[[Ks-tree                  refactor                         stage
b^[[m^[[Kack                     c^[[m^[[Kommit                   d^[[m^[[Kiff-index               g^[[m^[[Krep                     local-commits                    reflog                           stash
b^[[m^[[Kisect                   c^[[m^[[Kommits-since            d^[[m^[[Kifftool                 graft                            mergetool                        release                          status
b^[[m^[[Klame                    c^[[m^[[Kommit-tree              d^[[m^[[Kiff-tree                h^[[m^[[Kash-object              m^[[m^[[Kailinfo                 relink                           submodule
b^[[m^[[Kranch                   c^[[m^[[Konfig                   effort                           h^[[m^[[Kelp                     m^[[m^[[Kailsplit                remote                           subtree
b^[[m^[[Kug                      c^[[m^[[Kontrib                  extras                           h^[[m^[[Kttp-backend             m^[[m^[[Kerge                    rename-tag                       summary
b^[[m^[[Kundle                   c^[[m^[[Kount                    feature                          h^[[m^[[Kttp-fetch               m^[[m^[[Kerge-base               repack                           tag
c^[[m^[[Kat-file                 c^[[m^[[Kount-objects            f^[[m^[[Kast-export              h^[[m^[[Kttp-push                m^[[m^[[Kerge-file               repl                             touch
c^[[m^[[Khangelog                c^[[m^[[Kreate-branch            f^[[m^[[Kast-import              ignore                           m^[[m^[[Kerge-index              replace                          undo
c^[[m^[[Kheck-attr               c^[[m^[[Kredential               f^[[m^[[Ketch                    i^[[m^[[Kmap-send                m^[[m^[[Kerge-octopus            request-pull                     whatchanged
c^[[m^[[Kheck-ignore             c^[[m^[[Kredential-cache         f^[[m^[[Ketch-pack               i^[[m^[[Kndex-pack               mv                               reset
c^[[m^[[Kheck-mailmap            c^[[m^[[Kredential-store         f^[[m^[[Kilter-branch            i^[[m^[[Knit                     name-rev                         revert

另一个例子是vam tetrisvam tet Tab Tab ):

^[[01;31m^[[Kaddon:  tet^[[m^[[Kris

对于vam install tet Tab Tab ,它实际上将它呈现为无效参数(它也很难阅读),所以我该如何解决这个问题呢? / p>

2 个答案:

答案 0 :(得分:1)

显然,当grep被着色时,bash完成不喜欢。像

这样的东西
alias grep='grep --color=always'
alias fgrep='fgrep --color=always'
alias egrep='egrep --color=always'

会给你带来麻烦。

因此,正如Garrett Bellomy在下面详述的那样,使用--color=auto可能是明智的,这可以通过设置GREP_OPTIONS(或通过 rc 文件中的别名grep来实现)。如果要将其设为全局变量,请将其添加到〜/ .bash_profile (对于bash)或〜/ .zprofile (zsh),具体取决于您的默认shell:{ {1}}

答案 1 :(得分:1)

我遇到了同样的问题,看到了你的答案并改变了:

export GREP_OPTIONS='--color=always'
export GREP_OPTIONS='--color=auto'
这似乎解决了我的Mac上bash-completion的问题。