Я использую "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
Назад в 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
в 'емкостно-резистивном' файле.
Я не знаю слишком много о том, как 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"`"
Попытайтесь вставить это Ваш ~/.zshrc
файл для отладки целей:
Прямо после этой строки:
export ZSH=$HOME/.oh-my-zsh
Поместите:
echo $HOME
echo $ZSH
norcs off
(который является значением по умолчанию и означает, что Ваши 'емкостно-резистивные' файлы должны использоваться)? Отладка echos Вы вставила на основе ответа Ryan, также, кажется, указывают на этоnorcs
выключено для Вашей “Новой вкладки” / “Новое Окно” случай. Я просто хотел разъясниться, так как 'rcs "прочь"', на самом деле противоположность 'norcs, "прочь"'. – Chris Johnsen 31.10.2009, 10:43