web-dev-qa-db-ja.com

zshは、自動完了時にタブ文字を追加します

RHEL6.4ボックスにzsh4.3.10をインストールしています。なぜこれが起こるのかわかりませんが、 Tab オートコンプリートするには、またタブ文字を追加します。

例えば:

rocket@rhelbox www % vim    vim
external command
----------------
vim vimdiff vimtutor

だから、私がタイプするとき VIMTab、 後に Tab コンソールにタブを追加してから、オートコンプリートアクションを終了します。コマンドは正常に機能します、それはただ迷惑です。それを削除するためにバックスペースすることもできません。何が原因なのかわかりません。

これが私の.zshrc

# Initialize Autocompletion and Autocorrection
autoload -U compinit promptinit
compinit
promptinit
#Prompt redhat
zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
zstyle ':completion::complete:*' use-cache 1
setopt correctall

# Custom PS1
autoload -U colors && colors
# http://www.understudy.net/custom.html#Z_color
fg_purple=$'\e[0;35m'
#PS1="%n@%m %c %% "
PS1="${fg_purple}%n@%m %{$fg[yellow]%}%c %% %{$reset_color%}"


# cd is automagically added
setopt autocd

# Save History
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.bash_history
setopt hist_ignore_all_dups

# Keybindings
bindkey "^[OH" beginning-of-line
bindkey "^[OF" end-of-line
bindkey '^?' backward-delete-char
bindkey "\e[3~" delete-char

# Aliases
alias ls="ls --color=auto"

# Set (SVN) Editor to vim
export SVN_EDITOR=vim
export EDITOR=vim
3
Rocket Hazmat

これは、カーソルが端末のどこにあるかについてzshを混乱させるプロンプトの設定が原因である可能性があります。ターミナル制御文字が実際にはターミナルに表示されないことをzshに通知せずに、プロンプトにターミナル制御文字を含めました。

これは、プロンプトのこれらの部分を%{%}で囲むことによって行う必要があります。これは、色を黄色に設定するときと色をリセットするときにすでに実行されていますが、最初に色を紫色に設定した場合は実行されていません。

8
qqx