Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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
share|improve this question

1 Answer 1

up vote 7 down vote accepted

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.

share|improve this answer
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! :-) –  Rocket Hazmat Jul 31 '13 at 15:02

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.