zshell은 탭 완성을 위한 모호한 옵션입니다

zshell은 탭 완성을 위한 모호한 옵션입니다

zsh 완료에 문제가 있어 상당히 짜증이 났습니다. 불분명한 곳에서 옵션을 정제하는 것입니다. 예를 들어 다음 파일이 포함된 디렉터리에 있습니다.

Tilertest1x1-00_1408311424.logtilertest1x1-00_1408311424.roottilertest2x2-00_1408311501.logtilertest2x2-00_1408311501.roottilertest3x3-00_1408311527.logtilertest3x3-00_140
8311527.루트



"less ti"를 입력하고 Tab을 누르면 zsh가 이 "tilertest-00_1408311"을 완료합니다. 내가 원하는 곳에서 멈추는 대신("tilertest"). 이상한 점은 내가 어떤 종류의 경로(예: "less ./ti")를 제공하면 제대로 작동하는 것 같다는 것입니다. 첫 번째 모호함에서 멈추도록 어떻게 변경할 수 있습니까? 내 .zshrc 파일을 포함했습니다. 또한 oh-my-zsh를 사용하고 있다는 점에 유의해야 합니다.

# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh

# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="cmilke01"

# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

# Uncomment the following line to use case-sensitive completion.
 CASE_SENSITIVE="true"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13

 # Uncomment the following line to disable colors in ls.
 # DISABLE_LS_COLORS="true"

 # Uncomment the following line to disable auto-setting terminal title.
 # DISABLE_AUTO_TITLE="true"

 # Uncomment the following line to disable command auto-correction.
  DISABLE_CORRECTION="true"

 # Uncomment the following line to display red dots whilst waiting for     completion.
 # COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-  zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git)

source $ZSH/oh-my-zsh.sh

# User configuration

export PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/core_perl"
# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
# export LANG=en_US.UTF-8

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
#   export EDITOR='vim'
# else
#   export EDITOR='mvim'
# fi

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id"

답변1

이 동작의 일부를 제어하는 ​​옵션은 입니다 menu_complete. 따라서 다음이 필요합니다.

unsetopt menu_complete

(하지만 oh-my-zsh는 이미 이 작업을 수행하고 있는 것 같습니다.) 충분하지 않은 경우 oh-my-zsh가 특별한 작업을 수행하는 경우 다음을 시도해 볼 수도 있습니다.

zstyle ':completion:*' completer _complete
bindkey '\t' expand-or-complete

zsh -f새 셸과 동작을 비교할 수도 있습니다 .

autoload -U compinit
compinit
bindkey -e

여기서 잘못된 동작이 발생한다면 zsh 버전의 버그일 가능성이 높습니다. 그렇지 않으면 어떤 oh-my-zsh 변경 사항(해당 파일에서)이 문제를 유발했는지 확인해보세요. 키를 누르기 전에 X h를 Tab입력하여 Ctrl다음 완료에 대한 상황별 정보를 얻을 수 있습니다(이는 진행 상황을 찾는 데 도움이 될 수 있음).

해결책을 찾은 후에는 이를 영구적으로 유지하려면.zshrc 뒤쪽에일반적으로 파일 끝이나 그 근처에서 oh-my-zsh에 의해 변경된 내용입니다.

관련 정보