5

I have zsh 4.3.10 installed on a RHEL 6.4 box. I'm not sure why this happens, but when I but Tab to autocomplete things, it also adds a tab character.

For example:

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

So, when I type VIMTab, after the Tab it adds a tab to my console, then finishes the autocomplete action. The command works fine, it's just annoying. I cannot backspace to remove it either. I don't know what's causing this.

Here's my .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 

1 Answer 1

10

This is likely caused by your setting of the prompt confusing zsh about where the cursor is in the terminal. You've included terminal control characters in your prompt without letting zsh know that those won't actually show up on the terminal.

This needs to be done by surrounding those portions of the prompt with %{ and %}. This has already been done when setting the color to yellow and when resetting the color, but has not been done where you set the color to purple at the beginning.

1
  • 1
    That was it! Adding %{ and %} around ${fg_purple} fixed this problem. Thanks so much. To be honest, I copied and pasted the PS1 part from a website, and it seemed to work on other machines, so I never thought about it. I wondered what %{ and %} did, but never looked it up. Thanks again! :-) Commented Jul 31, 2013 at 15:02

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.