जवाबों:
ओह-माय-ज़ेड का उपयोग करें और अपने ~ / .zshrc में ' ऑक्स ' प्लगइन जोड़ें:
plugins=(osx)
यदि आप OSX के टर्मिनल ऐप का उपयोग करते हैं, तो आपको terminalapp
प्लगइन को भी जोड़ना होगा : क्रेडिट
plugins=(osx terminalapp)
यदि आप iTerm का उपयोग करते हैं, तो आपको एक कॉन्फ़िगरेशन विकल्प सेट करने की आवश्यकता है ( ध्यान दें कि आपको इस काम के लिए zsh प्लगइन्स की आवश्यकता नहीं हो सकती है ): क्रेडिट
प्राथमिकताएँ> प्रोफ़ाइल> डिफ़ॉल्ट> सामान्य> कार्यशील निर्देशिका> पिछले सत्र की निर्देशिका विकल्प का पुन: उपयोग करें
आपको बस इतना ही करना है!
rails
चल रहा है, और मैं कमांड-एन के माध्यम से एक नई विंडो खोलने की कोशिश करता हूं, मैं अपने होम डायरेक्टरी में वापस समाप्त करता हूं।
मैक ओएस एक्स लॉयन में अब उपलब्ध एक अन्य विकल्प अंतर्निहित सुविधा का उपयोग कर रहा है। यह वर्तमान निर्देशिका का पता लगाने के लिए 'एस्केप सीक्वेंस' का उपयोग करता है। मेरे लिए यह काम करता है अगर मैं अपने .zshrc में इन कमांड का उपयोग करता हूं:
precmd () {print -Pn "\e]2; %~/ \a"}
preexec () {print -Pn "\e]2; %~/ \a"}
इसका उपयोग करना संभव है PS1
(बाश के लिए, इस विकी से ):
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
\e]2;
शीर्षक में चीजों को मुद्रित करने के लिए भागने का क्रम कहां है। ऐसा लगता है कि Terminal.app वहां से इसकी जानकारी प्राप्त कर रहा है।
अधिक जानकारी:
/etc/bashrc
आप देखेंगे कि यह file:
URL का उपयोग करके कार्यशील निर्देशिका के टर्मिनल को सूचित करने के लिए एक नया एस्केप कोड का भी समर्थन करता है , जो प्रतिशत-एन्कोडिंग के माध्यम से सभी वैध मार्ग को संभाल सकता है (विंडो / टैब शीर्षक में केवल ASCII वर्णों का सबसेट हो सकता है )।
\e]7;file://hostname/percent-encoded-pathname\a
chpwd () {print -Pn "\e]2; %~/ \a"}
?
यह एक बहुत ही सरल संस्करण है जिसका उपयोग मैंने बाश में किया था और जोश में भी काम करता है। यह हर कमांड के बाद एक फाइल में करंट फोल्डर को बचाता है (बहुत ज्यादा IMO को चोट नहीं पहुंचाता है) और सेव किए गए करंट फोल्डर में एक नया टर्मिनल खोलता है।
निम्नलिखित .zshrc में जोड़ें
# 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 लगभग इसे करने के लिए एक तरह से लगता है: नया टैब, फिर गहरी निर्देशिका और वॉइला का चयन करने के लिए gdirs। मेरा पहला विचार नए टैब के बाद डायरेक्टरी स्टैक को सभी टैब के बीच साझा करने और सीडी ~ 1 करने का था, लेकिन मैं यह नहीं कर सकता कि ऐसा कैसे करें, क्योंकि ऐसा लगता है कि zsh का प्रत्येक उदाहरण अपना बना रहता है। इतिहास साझाकरण एक आम फ़ाइल के माध्यम से होता है, इसलिए शायद यहाँ भी किया जा सकता है ...
इस तरह आप इसे बाश में करते हैं।
यह शेल स्क्रिप्ट बताएगी (शाब्दिक रूप से, Applescript का उपयोग करके) Terminal.app एक नया टैब खोलने के लिए फिर वर्तमान निर्देशिका पर स्विच करें:
#!/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
… अपने $PATH
(यानी / usr / स्थानीय / बिन) में एक निर्देशिका में ऊपर खोल स्क्रिप्ट रखो और सुनिश्चित करें कि यह निष्पादन योग्य है:
$ chmod +x /usr/local/bin/nt
( स्रोत )
यदि आपको इस नई टैब को अभी खोलने की आवश्यकता है, तो अपनी कॉन्फिग फाइल को बदले या नए प्लगइन्स को इंस्टॉल किए बिना, इसे चलाएं:
pwd | pbcopy
फिर एक नया टर्मिनल टैब मैन्युअल रूप से (aT के साथ) खोलें, और नए टैब में:
cd "`pbpaste`"
चेतावनी : यह सिस्टम क्लिपबोर्ड की सामग्री को अधिलेखित कर देगा।
एक वैकल्पिक, लंबी विधि जो क्लिपबोर्ड को अधिलेखित नहीं करती है:
pwd > $TMPDIR/wd
अपना नया टैब खोलें।
cd "$(cat $TMPDIR/wd)"
rm -f $TMPDIR/wd
यदि आप चाहते हैं कि एक नया टैब खोले जाने पर निर्देशिका अपने आप बदल जाए तो dirpersist प्लगइन का उपयोग करें ।
ओएक्सएक्स प्लगइन केवल अंतिम निर्देशिका को बचाता है, लेकिन आपको tab
एक नया टैब खोलने के लिए कमांड चलाना होगा , जो हमेशा संभव नहीं है (यदि, कहते हैं, आप अपने वर्तमान टैब में कुछ चला रहे हैं)।
टर्मिनल .app को जोड़ना मेरे लिए काम नहीं करता था इसलिए मैंने प्लगइन की तलाश की ~/.oh-my-zsh/plugins/terminalapp
और यह मुझे बताता है:
# 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.