Используя zsh расширения - почему я должен вручную ввести “zsh”, чтобы заставить это появляться?

Я использую "oh-my-zsh" расширение Robby Russell на OSX 10.5 Leopard. Однако я нахожу, что это не загружается по умолчанию.. когда я запускаю новый Терминал, он использует подсказку ZSH "по умолчанию", и я должен вручную ввести "zsh" и нажать Return для получения "расширенной" подсказки. Мой .zshrc списки файлов ZSH соединяют каналом как указывающий на oh-my-zsh каталог:

Это становится очень раздражающим, потому что каждый раз я открываю новую вкладку, я должен ввести zsh снова (как в стороне, действительно ли возможно заставить новую вкладку помнить мой текущий рабочий каталог? Я главным образом пишу приложения для направляющих, таким образом, у меня будет 2-3 окна открытыми в том же каталоге, и печально иметь к CD назад в него каждый раз). Существует ли простой способ получить его, автоматически запускают oh-my-zsh, когда я открываю терминал, таким образом, я не должен вводить zsh каждый раз?

Править

Я автоматически установил oh-my-zsh следующий инструкциям Robby на GitHub, таким образом, вот .zshrc, который он создал для меня:

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

# Set to the name theme to load.
# Look in ~/.oh-my-zsh/themes/
export ZSH_THEME="maran"

# Comment this out to disable weekly auto-update checks
# export DISABLE_AUTO_UPDATE="false"

source $ZSH/oh-my-zsh.sh

# Customize to your needs...
export     PATH=/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr  /local/bin:/usr/X11/bin:/usr/local/git/bin
export GIT_EDITOR="mate -w"

Я пытался изменить оболочку по умолчанию для указания на это, но затем я получаю ошибку при высказывании, что она была установлена на недопустимую переменную. Переменная $HOME указывает правильно на мой корневой каталог, но это, кажется, не загружается, пока я не ввожу zsh в терминале, когда у меня есть регулярная подсказка zsh.

Править

Вот вывод pstree -wp $$

-+= 00001 root /sbin/launchd
 \-+= 00066 waynemolina /sbin/launchd
   \-+= 68844 waynemolina /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_704684
     \-+= 68845 root login -pfq waynemolina /bin/zsh
       \-+= 68846 waynemolina -zsh
         \-+= 68939 waynemolina pstree -wp 68846
           \--- 68940 root ps -axwwo user
1
задан 31.10.2009, 04:14

3 ответа

Назад в 10,4, Терминал имеет предпочтение “При создании нового Окна терминала” к любому использованию /usr/bin/login или позволять пользователю указать команду. Я ожидаю, что Терминал в 10,5 имеет что-то подобное.

У Вас, оказывается, есть что-то как zsh -f как указанная команда вместо использования /usr/bin/login или zsh вызов без -f? -f опция заставит zsh игнорировать все файлы запуска кроме /etc/zshenv (т.е. это проигнорирует Ваш ~/.zshrc).

Другой способ проверить эту установку мог бы быть с defaults read com.apple.Terminal Shell. Если это показывает некоторый вывод, у Вас есть пользовательская установка. Если это - пробел или не существует затем, Вы, вероятно, все еще используете значение по умолчанию /usr/bin/login.

Отредактированный для добавления:
В одной из Ваших оболочек с подсказкой по умолчанию (новое Окно терминала или вкладка), проверьте на следующее:

  • Делает set -o | fgrep rcs покажите “на” для norcs?
  • Делает [[ "$ZDOTDIR" -ef "$HOME" ]] || echo "ZDOTDIR=$ZDOTDIR" показать что-нибудь?

Если один или оба из этих условий будут верны, то необходимо будет разыскать, где они устанавливаются. Отметьте это norcs мог бы быть установлен с любым из set +o rcs, set -o norcs, setopt norcs, unsetopt rcs, или set -f. Также имена опции не чувствительны к регистру и могут иметь вставленный anythere символов нижнего подчеркивания (NO_rC___s совпадает с norcs). Заглянуть /etc/zshenv, /etc/zprofile, /etc/zshrc, /etc/zlogin; и .zshenv, .zprofile, .zshrc, и .zlogin из Вашего каталога ZDOTDIR.

Могло бы также быть полезно знать полное происхождение Ваших “быстрых” оболочек по умолчанию (pstree -wp $$ если Вы имеете pstree от (например). MacPorts). Возможно, нормальный 'емкостно-резистивный' процесс прерывается чем-то как zsh -f в 'емкостно-резистивном' файле.

2
ответ дан 12.12.2019, 08:41
  • 1
    я попробовал обе команды, которые Вы отправили, rcs, "выключен", и ZDOTDIR пуст. – Wayne Molina 31.10.2009, 04:12
  • 2
    Сделайте Вы подразумеваете, что видите norcs off (который является значением по умолчанию и означает, что Ваши 'емкостно-резистивные' файлы должны использоваться)? Отладка echos Вы вставила на основе ответа Ryan, также, кажется, указывают на это norcs выключено для Вашей “Новой вкладки” / “Новое Окно” случай. Я просто хотел разъясниться, так как 'rcs "прочь"', на самом деле противоположность 'norcs, "прочь"'. – Chris Johnsen 31.10.2009, 10:43

Я не знаю слишком много о том, как Mac OS X работает с оболочками, но в целом я нахожу полезным опрыснуть некоторые операторы эха вокруг моих файлов инициализации, удостовериться, что они получаются. Так, в Вашем .zshrc файле Вы могли поместить строку, которая говорит echo "Loading .zshrc". И так далее. Присутствие или отсутствие этих операторов эха при запуске новой оболочки (или открывают новую вкладку) должны помочь Вам диагностировать проблему.

Что касается каталога, изменяющего проблему, существует два потенциальных решения:
1. Используйте экран и забудьте о вкладках.
2. Запишите функцию для повторения текущего каталога в файл где-нибудь, затем поместите ту функцию в precmd и затем добавьте строку в .zshrc для чтения того файла и CD к нему. Быть более конкретным (но непротестированный!):

PWD_SAVE_FILE="$HOME/.pwd_save"
function savepwd {
  pwd > "$PWD_SAVE_FILE"
}

function precmd {
  savepwd
}

cd "`cat "$PWD_SAVE_FILE"`"
2
ответ дан 12.12.2019, 08:41
  • 1
    +1 для ‘эха отлаживает’ технику; просто, несомненно, удаляет их (или комментировать их) при выполнении, иначе вывод эха из файлов 'дистанционного управления' невхода в систему (.zshenv, .zshrc, и глобальные эквиваленты) путает инструменты что ssh-в и непосредственно команды выполнения (например, rsync, мерзавец) – Chris Johnsen 30.10.2009, 23:42
  • 2
    , я сделал эхо, и это было произведено правильно, когда я загрузил новую командную строку. Это также выполняется, когда я ввожу команду "zsh", таким образом, это становится загруженным, но по некоторым причинам расширенная подсказка не появляется, пока я не ввожу zsh вручную – Wayne Molina 31.10.2009, 04:19

Попытайтесь вставить это Ваш ~/.zshrc файл для отладки целей:

Прямо после этой строки:

export ZSH=$HOME/.oh-my-zsh

Поместите:

echo $HOME
echo $ZSH
0
ответ дан 12.12.2019, 08:41

Теги

Похожие вопросы