Khi tôi bắt đầu thực hiện tự động hoàn thành tab của lệnh, nó giữ những gì tôi bắt đầu gõ bên cạnh nó và lệnh trở nên không thể đọc được. Trong ví dụ dưới đây, tôi gõ 'git che' và nhấn tab. Khi tôi chọn 'checkout', dấu nhắc lệnh sẽ trở thành 'git che git checkout'. Lệnh này vẫn hoạt động và trong lịch sử của tôi nó lưu trữ 'git checkout'. Nhưng nó khá khó chịu trực quan. Có cách nào để thay đổi hành vi này không. Tôi đã thử điều này trong 2 giả lập thiết bị đầu cuối khác nhau, vì vậy tôi có thể xác nhận ZSH của nó và không phải trình mô phỏng. Cảm ơnZSH tự động hoàn thành các ốc vít lên tên lệnh
EDIT:
echo $ ZSH_VERSION
4.3.10
Nó không có vẻ xảy ra với zsh -f. Mặc dù khó có thể nói được vì tính năng tự động hoàn thành duy nhất hoạt động là các thư mục. Tôi đang sử dụng 'oh-my-zsh' với chủ đề tùy chỉnh này:
autoload -U add-zsh-hook
add-zsh-hook chpwd do_ls_on_chdir
function do_ls_on_chdir() {
ls;
}
function dirStack(){
OUT='';
NUM=1;
for X in $(dirs | cut -d ' ' -f2-10); do
OUT="$OUT$1%B$NUM:%b$1$X ";
((NUM=NUM+1))
done
echo $OUT;
}
ZSH_THEME_GIT_PROMPT_ADDED=""
ZSH_THEME_GIT_PROMPT_MODIFIED=""
ZSH_THEME_GIT_PROMPT_DELETED=""
ZSH_THEME_GIT_PROMPT_RENAMED=""
ZSH_THEME_GIT_PROMPT_UNMERGED=""
ZSH_THEME_GIT_PROMPT_UNTRACKED=""
ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_bold[yellow]%}↑"
ZSH_THEME_GIT_PROMPT_PREFIX=""
ZSH_THEME_GIT_PROMPT_SUFFIX=""
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg_bold[red]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg_bold[green]%}✔"
local user_color='blue'
local back="${BG[237]}"
test $UID -eq 0 && user_color='red'
PROMPT='$(dirStack $back)
$back%B%!%b$back %{$fg_bold[$user_color]%}%~%{$reset_color%}'\
'$back $(git_prompt_status)%{$reset_color%}'\
'$back%{$fg_bold[magenta]%}$(git_prompt_info)%{$reset_color%}'\
'$back$(git_prompt_ahead)$reset_color'\
'$back%(!.#.>)$reset_color '
PROMPT2='%{$fg[red]%}%_ %{$reset_color%}'
PROMPT3='%{$fg[red]%}... %{$reset_color%}'
RPROMPT='%(?..%{$fg_bold[red]%}exit %?%{$reset_color%})'\
' %{$FG[186]%}(%D %*)%{$reset_color%}'
SOLUTION:
LƯU Ý: stackoverflow wont cho tôi trả lời câu hỏi của riêng tôi kể từ khi tôi hỏi nó trong vòng 8 giờ qua. Tôi không cảm thấy muốn chờ đợi.
Vì vậy, tôi đã tìm ra. Nó chỉ ra tôi đã không đúng cách thoát khỏi các mã màu ANSI (tôi nghĩ). Ở khắp mọi nơi tôi đã có $ reset_color trong biến PROMPT của tôi, tôi đã thay đổi thành% {$ reset_color%} và nó đã sửa nó.
Phiên bản zsh của bạn ('echo $ ZSH_VERSION') là gì? Bạn có thấy hiệu ứng tương tự nếu bạn chạy 'zsh -f'? Nếu không, hãy đăng nội dung của tệp cấu hình zsh của bạn ('~/.zshrc' và bất kỳ tệp nào khác mà bạn đã tùy chỉnh). – Gilles