Zsh eklentilerini kullanma - görünmesini sağlamak için neden “zsh” yi elle yazmam gerekiyor?


1

Robby Russell'ın "oh-my-zsh" eklentisini OSX 10.5 Leopard'da kullanıyorum. Bununla birlikte, varsayılan olarak yüklenmediğini buldum .. yeni bir Terminal başlattığımda "varsayılan" ZSH istemini kullanıyor ve "zsh" yazıp elle "gelişmiş" komutunu almak için Geri Dön düğmesine basmam gerekiyor. Benim .zshrc dosya ZSH yolunu oh-my-zsh dizinine işaret ederek listeler:

Bu çok can sıkıcı oluyor çünkü yeni bir sekme her açışımda tekrar zsh yazmalıyım (bir kenara geçerli çalışma dizini hatırlamak için yeni bir sekme elde etmek mümkün mü? -3 pencere aynı dizinde açılır ve her seferinde yeniden cd yapmak zor olur). Bir terminal açtığımda otomatik olarak oh-my-zsh'ı başlatmanın kolay bir yolu var, bu yüzden her seferinde zsh yazmam gerekmiyor mu?

DÜZENLE

Robby'nin Github hakkındaki talimatlarını izleyerek oh-my-zsh'ı otomatik olarak kurdum, işte benim için oluşturduğu .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"

Bunu işaret etmek için varsayılan kabuğu değiştirmeyi denedim, ancak daha sonra geçersiz bir değişkene ayarlandığını söyleyen bir hata alıyorum. $ HOME değişkeni giriş dizinimi doğru gösteriyor, ancak normal zsh istemim olduğunda terminalde zsh yazana kadar yüklenmiyor gibi görünüyor.

DÜZENLE

İşte çıktısı 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

Yanıtlar:


2

10.4’e, terminal Her ikisini de kullanmak için “Yeni bir Terminal penceresi oluştururken” tercihi vardır. /usr/bin/login veya kullanıcının bir komut belirtmesine izin vermek için. Bekliyorum terminal 10.5'te benzer bir şey var.

Gibi bir şeyin var mı zsh -f kullanmak yerine belirtilen komut olarak /usr/bin/login veya bir zsh olmadan telsiz -f? -f seçenek neden olur zsh hariç tüm başlangıç ​​dosyalarını yoksaymak için /etc/zshenv (yani, sizi görmezden gelecek ~/.zshrc ).

Bu ayarı kontrol etmenin başka bir yolu da defaults read com.apple.Terminal Shell. Bazı çıktılar gösteriyorsa, özel bir ayara sahipsiniz. Boşsa veya yoksa, muhtemelen hala varsayılan /usr/bin/login.

Eklemek için düzenlendi:
Varsayılan istemi içeren kabukları birinde (yeni terminal pencere veya sekme), aşağıdakileri kontrol edin:

  • does set -o | fgrep rcs için "açık" göster norcs?
  • does [[ "$ZDOTDIR" -ef "$HOME" ]] || echo "ZDOTDIR=$ZDOTDIR" bir şey göster

Bu koşullardan biri veya her ikisi de doğruysa, nerede belirlendiklerini bulmanız gerekir. Bunu not et norcs herhangi biriyle ayarlanmış olabilir set +o rcs, set -o norcs, setopt norcs, unsetopt rcsveya set -f. Ayrıca seçenek adları büyük / küçük harf duyarlı değildir ve herhangi bir yere eklenmiş alt çizgiler olabilir ( NO_rC___s aynıdır norcs ). Arama konumu /etc/zshenv, /etc/zprofile, /etc/zshrc, /etc/zlogin; ve .zshenv, .zprofile, .zshrc, ve .zlogin ZDOTDIR dizininizden.

“Varsayılan bilgi istemi” mermilerinizin tam özelliğini bilmek de yararlı olabilir ( pstree -wp $$ eğer varsa pstree -den (örneğin) MacPorts ). Belki normal "rc" işlemi, bunun gibi bir şey tarafından kesiliyordur. zsh -f Bir ‘rc’ dosyasında.


Ayarlara göre / usr / bin / login kullanıyordu, ancak / bin / zsh olarak değiştirdim ve hala "varsayılan" zsh komut istemini kullanıyor ve benim gelişmiş olanımı çalıştırmıyor.
Wayne Molina

Her iki komutu da denedim, rcs "kapalı" ve ZDOTDIR boş.
Wayne Molina

Demek istediğini mi norcs off (bu varsayılandır ve "rc" dosyalarınızın kullanılması gerektiği anlamına gelir)? Ryan'ın cevabına dayanarak yerleştirdiğiniz hata ayıklama yankıları da bunu gösteriyor gibi görünüyor. norcs “Yeni Sekme” / “Yeni Pencere” durumunuz için kapalı. Ben sadece açıklamak istedim çünkü 'rcs' off '' aslında 'norcs' off '' ifadesinin tersi.
Chris Johnsen

2

Mac OS X'in kabuklarla nasıl çalıştığı hakkında fazla bir şey bilmiyorum, ancak genel olarak başlangıç ​​dosyalarımın çevresine bazı yankı ifadeleri serpmeyi, kaynak olduklarından emin olmak için yararlı buluyorum. Yani, .zshrc dosyanızda, yazan bir satır koyabilirsiniz echo "Loading .zshrc". Ve bunun gibi. Yeni bir kabuk başlattığınızda (veya yeni bir sekme açtığınızda) bu yankı ifadelerinin varlığı veya yokluğu sorunu teşhis etmenize yardımcı olmalıdır.

Dizin değiştirme problemine gelince, iki potansiyel çözüm vardır:
1. Ekranı kullanın ve sekmeleri unutun.
2. Geçerli dizini bir dosyaya başka bir yerde yankılamak için bir işlev yazın, sonra bu işlevi primerinize yerleştirin ve sonra bu dosyayı ve cd'yi okumak için .zshrc içine bir satır ekleyin. Daha açık olmak gerekirse (ancak denenmemiş!):

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

function precmd {
  savepwd
}

cd "`cat "$PWD_SAVE_FILE"`"

'Echo debug' tekniği için +1; Bunları kaldırdığınızda (veya onları yorumladığınızdan) emin olun, aksi takdirde giriş yapmayan 'rc' dosyalarından yankı çıktısı (.zshenv, .zshrc ve global eşdeğerler) ssh-in ve doğrudan komutları çalıştıran araçları karıştırabilir (örneğin, rsync, git)
Chris Johnsen

Bir eko yaptım ve yeni bir komut istemi yüklediğimde düzgün bir şekilde çıktı. Ayrıca "zsh" komutunu yazdığımda da çalışıyor, bu yüzden yüklüyor ancak bir nedenden dolayı elle zsh yazana kadar gelişmiş istem görünmüyor
Wayne Molina

Aslında bir Mac'im yok, bu yüzden Mac'e özgü tuhaflık konusunda size yardımcı olamam. Sadece genel gariplik ve muhtemelen zsh-özel gariplik.
Ryan Thompson

1

Bu problemim vardı. Ana dizinde bir .zlogin olması gerekiyordu. Bir kez .zlogin kaldırıldı oh benim zsh çalıştı


0

Bunu içine koymayı dene. ~/.zshrc hata ayıklama amaçlı dosya:

Bu satırdan hemen sonra:

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

Koymak:

echo $HOME
echo $ZSH
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.