Yanıtlar:
Oh-My-Zsh kullanın ve ~ / .zshrc dosyasına 'osx' eklentisini ekleyin:
plugins=(osx)
OSX'in Terminal Uygulamasını kullanıyorsanız, terminalapp
eklentiyi de eklemeniz gerekir : kredi
plugins=(osx terminalapp)
Eğer ITERM kullanırsanız bir yapılandırma seçeneği (ayarlamanız gerekir Eğer iş bunun için zsh eklentileri ihtiyaç olmayabilir Not ): kredi
Tercihler> Profiller> Varsayılan> Genel> Çalışma Dizini> Önceki oturumun dizin seçeneğini yeniden kullan
Yapmanız gereken tek şey bu!
rails
çalışan demek ve komut-n üzerinden yeni bir pencere açmaya çalışıyorum, sonunda ev dizinime geri dönüyorum.
Mac OS X Lion'da artık mevcut olan başka bir seçenek, yerleşik özelliği kullanıyor. Geçerli dizini bulmak için 'kaçış dizileri' kullanır. Benim için bu komutları .zshrc dosyamda kullanırsam çalışır:
precmd () {print -Pn "\e]2; %~/ \a"}
preexec () {print -Pn "\e]2; %~/ \a"}
kullanımı da mümkündür PS1
(Bash için, bu wiki'den ):
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
\e]2;
Başlık çubuğundaki şeyleri yazdırmak için kaçış dizisi nerede . O görünüyor Terminal.app oradan da bilgi elde ettiğini.
Daha fazla bilgi:
/etc/bashrc
çalışma dizininin bir file:
URL kullanarak bilgilendirilmesi için yeni bir kaçış kodunu da desteklediğini göreceksiniz. Bu , tüm geçerli yol adlarını yüzde kodlamasıyla işleyebiliyor (pencere / sekme başlıkları yalnızca ASCII karakterlerinin bir alt kümesini içerebilir) ).
\e]7;file://hostname/percent-encoded-pathname\a
chpwd () {print -Pn "\e]2; %~/ \a"}
?
Bu bash kullanılan ve aynı zamanda zsh çalışır çok basit bir sürümüdür. Geçerli klasörü, her komuttan sonra (çok fazla IMO'ya zarar vermez) bir dosyaya kaydeder ve kaydedilmiş geçerli klasörde yeni bir terminal açar.
aşağıdakini .zshrc'ye ekleyin
# emulate bash PROMPT_COMMAND (only for zsh)
precmd() { eval "$PROMPT_COMMAND" }
# open new terminal in same dir
PROMPT_COMMAND='pwd > "${HOME}/.cwd"'
[[ -f "${HOME}/.cwd" ]] && cd "$(< ${HOME}/.cwd)"
gdirs neredeyse bunu yapmanın bir yolu gibi görünüyor: yeni sekme, daha sonra derin dizini ve iksiri seçmek için gdirs. İlk fikrim, dizin yığınının tüm sekmeler arasında paylaşılmasını sağlamak ve yeni sekmeden sonra cd ~ 1 yapmaktı, ancak her bir zsh örneğinin kendine ait gibi göründüğü gibi, bunun nasıl yapılacağını bulamıyorum. Tarih paylaşımı ortak bir dosyadan geçiyor, bu yüzden burada da yapılabilir.
Bu şekilde bash yaparsınız.
Bu kabuk betiği (tam anlamıyla sessiz, Applescript kullanarak) Terminal.app'e yeni bir sekme açmasını ve ardından geçerli dizine geçmesini söyleyecektir:
#!/bin/bash
osascript -e 'tell application "Terminal"' \
-e 'tell application "System Events" to tell process "Terminal" to keystroke "t" using command down' \
-e "do script with command \"cd `pwd`;clear\" in selected tab of the front window" \
-e 'end tell' &> /dev/null
… Yukarıdaki kabuk betiğini bir dizinde $PATH
(/ / usr / local / bin) yazın ve çalıştırılabilir olduğundan emin olun:
$ chmod +x /usr/local/bin/nt
( kaynak )
Şu anda bu yeni sekmeyi açmanız gerekirse, yapılandırma dosyalarınızı değiştirmeden veya yeni eklentiler yüklemeden, şunu çalıştırın:
pwd | pbcopy
Ardından manuel olarak (withT ile) ve yeni sekmede yeni bir Terminal sekmesi açın:
cd "`pbpaste`"
Uyarı : bu sistem panosunun içeriğinin üzerine yazacaktır.
Panoya yazmayan alternatif, daha uzun bir yöntem:
pwd > $TMPDIR/wd
Yeni sekmenizi açın.
cd "$(cat $TMPDIR/wd)"
rm -f $TMPDIR/wd
Yeni bir sekme açıldığında dizinin otomatik olarak değişmesini istiyorsanız, dirpersist eklentisini kullanın .
Osx eklentisi sadece son dizini kaydeder tab
, ancak her zaman mümkün olmayan yeni bir sekme açmak için komutu çalıştırmanız gerekir (eğer mevcut sekmenizde bir şey çalıştırıyorsanız).
.Zshrc'ye terminalapp eklemek benim için işe yaramadı, bu yüzden eklentiyi aradım ~/.oh-my-zsh/plugins/terminalapp
ve bana şunu söyledi:
# This file is intentionally empty.
#
# The terminalapp plugin is deprecated and may be removed in a future release.
# Its functionality has been folded in to the core lib/termsupport.zsh, which
# is loaded for all users. You can remove terminalapp from your $plugins list
# once all your systems are updated to the current version of Oh My Zsh.