Làm cách nào tôi có thể vô hiệu hóa chọn lọc tích hợp kiểm soát phiên bản của zsh khi CWD của tôi nằm trên hệ thống tệp từ xa?


16

Tôi đang chạy zsh trên OSX và đôi khi tôi phải làm việc với âm lượng sshfs được gắn. Tuy nhiên, git thực sự chậm trên các sshfs mount. Lời nhắc của tôi sử dụng công cụ chế độ vc mà zsh cung cấp, nhưng trong trường hợp này tôi muốn bỏ qua phần đó.

Tôi muốn vô hiệu hóa chọn lọc tích hợp vc bất cứ khi nào CWD của tôi nằm trên hệ thống tệp được gắn. Làm thế nào tôi có thể làm điều đó?

Tôi hiện đang kích hoạt thông tin git trong lời nhắc của mình bằng cách sử dụng (khoảng) đoạn trích này của .zshrc (tốt, .oh-my-zsh / Themes, nhưng bạn hiểu ý):

zstyle ':vcs_info:*' enable hg git bzr svn p4

zstyle ':vcs_info:(hg*|git*):*' get-revision true
zstyle ':vcs_info:(hg*|git*):*' check-for-changes true

# rev+changes branch misc
zstyle ':vcs_info:hg*' formats "[%i%u %b%m]"
zstyle ':vcs_info:hg*' actionformats "(%{$fg_bold[red]%}%a%{$reset_color%})[%i%u %b%m]"

# hash changes branch misc
zstyle ':vcs_info:git*' formats "[%{$fg[yellow]%}%12.12i%{$reset_color%} %u %{$fg[magenta]%}%b%{$reset_color%}%m]"
zstyle ':vcs_info:git*' actionformats "(%a)[%{$fg[yellow]%}%12.12i%{$reset_color%} %u %{$fg[magenta]%}%b%{$reset_color%}%m]"

zstyle ':vcs_info:git*+set-message:*' hooks git-st git-stash

zstyle ':vcs_info:hg*:netbeans' use-simple true

zstyle ':vcs_info:hg*:*' get-bookmarks true

zstyle ':vcs_info:hg*:*' get-mq true
zstyle ':vcs_info:hg*:*' get-unapplied true
zstyle ':vcs_info:hg*:*' patch-format " mq(%g):%{$fg[green]%}%n%{$reset_color%}/%{$fg_bold[blue]%}%c%{$reset_color%} %{$fg[green]%}%p%{$reset_color%}"
zstyle ':vcs_info:hg*:*' nopatch-format ""

zstyle ':vcs_info:hg*:*' unstagedstr " ?"
zstyle ':vcs_info:hg*:*' hgrevformat "%{$fg[yellow]%}%r%{$reset_color%}" # only show local rev.
zstyle ':vcs_info:hg*:*' branchformat "%{$fg[magenta]%}%b%{$reset_color%}" # only show branch

# Show remote ref name and number of commits ahead-of or behind
function +vi-git-st() {
    local ahead behind remote
    local -a gitstatus

    # Are we on a remote-tracking branch?
    remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} \
        --symbolic-full-name 2>/dev/null)/refs\/remotes\/}

    if [[ -n ${remote} ]] ; then
        # for git prior to 1.7
        # ahead=$(git rev-list origin/${hook_com[branch]}..HEAD | wc -l)
        ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l | tr -s ' ')
        (( $ahead )) && gitstatus+=( " ${c3}+${ahead}${c2}" )

        # for git prior to 1.7
        # behind=$(git rev-list HEAD..origin/${hook_com[branch]} | wc -l)
        behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l | tr -s ' ')
        (( $behind )) && gitstatus+=( " ${c4}-${behind}${c2}" )

        hook_com[branch]="${hook_com[branch]} [${remote}${(j:/:)gitstatus}]"
    fi
}

# Show count of stashed changes
function +vi-git-stash() {
    local -a stashes

    if [[ -s ${hook_com[base]}/.git/refs/stash ]] ; then
        stashes=$(git stash list 2>/dev/null | wc -l)
        hook_com[misc]+=" (${stashes} stashed)"
    fi
}

precmd () { vcs_info }
PROMPT='
%{$(get_prompt_user_color)%}%n%{$reset_color%} at %{$(get_prompt_host_color)%}%m%{$reset_color%} in %{$fg_bold[green]%}%~%{$reset_color%} ${vcs_info_msg_0_}
$(virtualenv_info)$(prompt_char) '


Không, đó không phải là vấn đề hoàn thành
Chris R

Được rồi, xin lỗi vì câu trả lời "rtfm" ... xem phần 26.4 của tài liệu hướng dẫn ... nó sẽ giúp ... zsh.sourceforge.net/Doc/Release/ trộm
Joe Internet

Bạn có thể thêm các phần zshrc có liên quan mà bạn đã sử dụng để kích hoạt tính năng này không?
đa thức

Câu trả lời:


9

Hãy xem Phiên bản-Kiểm soát-Thông tin

Tìm kiếm phần trên 'vô hiệu hóa mẫu' (giảm khoảng 20% ​​trang).
Giả sử gắn kết từ xa của bạn là cố định, hoặc tương đối cố định, tức là /mnt/remote/*hoặc bạn có thể liệt kê tất cả, bạn sẽ có thể đưa ra một biểu thức chính cho chúng.

Ví dụ tại liên kết là vô hiệu hóa vcs_infotheo ~/.zsh/, thông qua:

zstyle ':vcs_info:*' disable-patterns "$HOME/.zsh(|/*)"

Tôi đoán bạn có thể tạo zshrc hoặc tương đương (xin lỗi - người dùng bash) để tìm ra từ xa khi khởi động (hoặc định kỳ hoặc ...) và cập nhật zstyletương ứng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.