그놈 터미널 및 Zsh : 새 탭 / 창에 현재 디렉토리 유지


12

Zsh를 사용하여 Arch에서 gnome 3.10.1을 실행 중입니다. 터미널 창에서 새 탭이나 창을 만들 때 현재 디렉토리가 내 홈 디렉토리로 재설정된다는 문제에 직면하고 있습니다.

나는 이미 이것을 시도했다 : gnome-terminal : 새 탭에서 디렉토리를 추적 하지만 작동하지 않았다.

.zshrc파일에서 일부 구성이 될 수 있으므로 파일을 정리하고 다음 줄만 추가하십시오.

. /etc/profile.d/vte.sh

그러나 예상대로 작동하지 않았습니다.

예,이 파일이 존재하며 그 내용은 다음과 같습니다.

# Copyright © 2006 Shaun McCance <shaunm@gnome.org>
# Copyright © 2013 Peter De Wachter <pdewacht@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

# Not bash or zsh?
[ -n "$BASH_VERSION" -o -n "$ZSH_VERSION" ] || return 0

# Not an interactive shell?
[[ $- == *i* ]] || return 0

# Not running under vte?
[ "${VTE_VERSION:-0}" -ge 3405 ] || return 0

__vte_urlencode() (
  # This is important to make sure string manipulation is handled
  # byte-by-byte.
  LC_ALL=C
  str="$1"
  while [ -n "$str" ]; do
    safe="${str%%[!a-zA-Z0-9/:_\.\-\!\'\(\)~]*}"
    printf "%s" "$safe"
    str="${str#"$safe"}"
    if [ -n "$str" ]; then
      printf "%%%02X" "'$str"
      str="${str#?}"
    fi
  done
)

# Print a warning so that anyone who's added this manually to his PS1 can adapt.
# The function will be removed in a later version.
__vte_ps1() {
  echo -n "(__vte_ps1 is obsolete)"
}

__vte_osc7 () {
  printf "\033]7;file://%s%s\a" "${HOSTNAME:-}" "$(__vte_urlencode "${PWD}")"
}

__vte_prompt_command() {
  printf "\033]0;%s@%s:%s\007%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}" "$(__vte_osc7)"
}

case "$TERM" in
  xterm*|vte*)
    [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" 
    [ -n "$ZSH_VERSION"  ] && chpwd_functions+=(__vte_osc7)
    ;;
esac

true

이것은 정말로 나를 괴롭 히고있다 ...

해결책이 있습니까?


2
zsh가 아닌 gnome-terminal과 관련이 있습니다. 링크 뒤에있는 버그는 우분투 그놈의 버그이지만, 보고 된 버그 인 것 같습니다 .
Risto Salminen

1
당신은 시도 terminator했습니까?
RSFalcon7

그래, 터미네이터는 잘 작동하지만, 예를 들어, nautilus-open-terminal확장은 항상 gnome-terminal을 열고, 변경할 수 없었습니다 ...
Henrique Barcelos

1
내 rc 파일에서 vte.sh를 소싱 한 후 gnome-terminal을 다시 시작해야한다고 지적하고 싶었습니다. 저장하고 새 탭 / 창을 여는 것만으로는 작동하지 않았습니다. (bash / arch / gnome3.10 사용)
Silent Boatman

답변:


16

여전히이 문제가 발생하는지 모르겠지만 문제는 터미널 프로필에서 / bin / zsh를 사용자 정의 명령으로 실행하고 있다는 것을 알았습니다. 이를 비활성화하면 문제가 해결되었으며 zsh를 기본 쉘로 유지했습니다.

터미널 프로필


Fedora를 사용하여 문제를 정확하게 해결했습니다. 대단히 감사합니다!
Sven Hager

1
변경하면 zsh 대신 기본 bash를 사용해야합니다. 그러면 어떻게 문제가 해결됩니까?
Alfie

@Alfie 사용자가 기본 쉘 (아마도 bash)을 사용하고 있지 않습니다 . 즉, 프롬프트를 설정하기 위해 실행되는 명령 (로그인시 설정 /etc/profile.d/vte.sh)이 올바르지 않으며 터미널이 쉘의 현재 디렉토리를 인식하지 못합니다.
xhienne

스크린 샷이 더 이상 최신 상태가 아닙니다. 두 번째 옵션은 더 이상 존재하지 않습니다. 첫 번째를 똑딱 거리는 것은 트릭을했다. 기본값이지만, ZSH를 기본 쉘로 설정해야합니다 chsh.
slhck

4

"로그인 명령으로 명령 실행" 옵션 을 활성화 해야 작동하는 것처럼 보입니다.

인쇄 벨로우즈는 포르투갈어로되어 있지만 이것이 작동하도록 구성한 것입니다.

스크린 샷


이것은 zsh를 사용하지 않기 때문에 작동합니다
Alfie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.