एमएसीएस से खुला टर्मिनल


11

क्या वर्तमान इमैक बफर में फ़ाइल के समान टर्मिनल इम्यूलेटर (मेरे मामले में urxvt) खोलने का एक तेज़ तरीका (कीबोर्ड शॉर्टकट) है ?

जवाबों:


15

संयोजन M-!आपको शेल कमांड लॉन्च करने की अनुमति देता है। आप इसे एक अलग लॉन्च करने के लिए उपयोग कर सकते हैं urxvt

M-! urxvt RET

मैंने अभी इसके साथ प्रयास किया xterm(मेरे पास नहीं है urxvt) और यह बफर में फाइल के समान निर्देशिका में खुला था।

यदि आप अपनी इनइट फ़ाइल में कुछ समान शॉर्टकट जोड़ना चाहते हैं:

(global-set-key (kbd "C-c s") (kbd "M-! urxvt RET"))

मेरे मामले में मैंने शॉर्टकट को Ctrl+ : C- के लिए बाध्य किया S


9

मैं आमतौर पर उपयोग करता हूं M-x term

आप चेकआउट भी कर सकते हैं:

  • M-x terminal
  • M-x shell

M-x termप्रभावी ढंग से एक टर्मिनल एमुलेटर को शुरू करने के लिए शुरू किया गया है। मदद से:

शब्द
M-x ... RET एक नए बफर में एक टर्मिनल-एमुलेटर शुरू करें। (शब्द कार्यक्रम)

शब्द `term.el 'में एक संकलित संकलित लिस्प फ़ंक्शन है।

एक नए बफर में एक टर्मिनल-एमुलेटर शुरू करें। बफ़र टर्म मोड में है; उस बफ़र में उपयोग करने के लिए कमांड के लिए `टर्म-मोड ' देखें ।

किसी अन्य बफ़र पर स्विच करने के लिए Cc b टाइप करें।


1
धन्यवाद, मुझे नहीं पता था M-x term, यह अच्छा लगता है, लेकिन जैसा मैं चाहता हूं वैसा बिल्कुल नहीं है। मैं एक शेल (उदाहरण के लिए bashया zshएमएसीएस बफर में नहीं बल्कि टर्मिनल एमुलेटर ( xtermया urxvt...) शुरू करना चाहता हूं ।
छात्र

1
@student की नज़र हैmulti-term
उलरिच

8

Emacs कमांड M-x shellएक नया बफर में एक शेल शुरू करेगा (या यदि कोई है तो मौजूदा शेल बफर में स्विच कर सकता है)। यदि यह एक नया शेल बफर है, तो इसे वर्तमान बफर में देखी जा रही फ़ाइल की निर्देशिका में शुरू किया जाएगा। यदि यह एक मौजूदा शेल बफर है, तो यह अभी भी उस निर्देशिका में होगा जहां आपने इसे अंतिम उपयोग के बाद छोड़ दिया था। अपने इच्छित व्यवहार को हमेशा प्राप्त करने के लिए, शेल बफर को मारने के लिए याद रखें जब आप इसके साथ कर रहे हों ( C-x k)

यदि M-x shellबहुत अधिक टाइपिंग है, तो आप अपने लिए एक शेल शुरू करने के लिए एक वैश्विक कुंजी सेट कर सकते हैं। (global-set-key (kbd "C-x S") 'shell)आपकी स्टार्टअप फ़ाइल में कुछ ऐसा होना चाहिए (लेकिन अपने शॉर्टकट के साथ एक और उपयोगी कमांड को मास्क न करने के लिए सावधान रहें!)

इसके अलावा, ध्यान रखें कि यह एक "डंब टर्मिनल" है, इसलिए कुछ कमांड जैसे कि git commitजरूरत के विकल्प -mऔर पासवर्ड आपकी स्क्रीन पर प्लेनटेक्स्ट में होंगे।


3

मैं, एक समर्पित टर्मिनल अनुप्रयोग चलाने के लिए चाहता था konsole। मैं konsole में एक नया टैब खोलना चाहता था अगर यह चल रहा है, या अगर यह नहीं है तो फायर-अप करें।

जब मैं छोटा था तब मैंने एमएसीएस और बैश के बीच कार्यान्वयन को विभाजित किया था। मैं emacs से निम्न डिफ्यूजन को कॉल करता हूं:

(defun bk-konsoles ()
  "Calls: bk_konsoles.bash -- which starts new tab in a running konsole,"
  (interactive)
  (let ((curDir default-directory))
    (shell-command (concat "bk_konsoles.bash \"" curDir "\" 2>&1 > /dev/null & disown") nil nil)
    (kill-buffer "*Shell Command Output*")))

डिफॉन कॉल बैश स्क्रिप्ट bk_konsoles.bash:

#!/bin/bash

myPath=`echo $@ | sed 's/.$//'`

runningKonsole=`ps -e | grep konsole`
if [ "$runningKonsole"!="" ]; then
    if [ "$@"!="" ]; then
        konsole --new-tab --workdir "$myPath" 2>&1 > /dev/null
    else
        konsole --new-tab 2>&1 > /dev/null
    fi
    wmctrl -a " – Konsole"
else
    konsole
fi

1

ज्यादातर समय मैं उपयोग करता हूं shell-mode। इसलिए मैं यहां शैल का भारी उपयोग करता हूं । लेकिन जब मुझे बाहरी टर्मिनल की जरूरत होती है। मैं इसका उपयोग करते हुए tmux के साथ urxvt-client का उपयोग करता हूं:

  • / Usr / स्थानीय / बिन / युक्त में 'term-here' नाम की फ़ाइल बनाएँ
urxvtc -e bash -c "tmux -q has-session && exec tmux attach-session -d || exec tmux new-session -n$USER -s$USER@$HOSTNAME"
  • Emacs में नया फंक्शन बनाएं
(defun term-here ()
  (interactive)
  (start-process "" nil "term-here"))
  • अपनी पसंदीदा कुंजी से बांधें

यह आपकी वर्तमान निर्देशिका में urxvt-client (tmux के साथ) खोलेगा। मैं इसे dired-mode-map में बांधता हूं।

(use-package dired
  :ensure nil
  :ensure-system-package urxvt
  :bind ((:map dired-mode-map
           ("," . term-here))))

मैं urxvt-client को चुनता हूं क्योंकि यह तेज और सरल है। स्टार्टअप पर अपना urxvt-daemon चलाना न भूलें।


1

यदि आपके पास helmपूरा ढांचा स्थापित है, तो आप helm-run-external-command (C-x c C-c C-x)अपनी पसंद के टर्मिनल-एमुलेटर या वर्तमान बफर की निर्देशिका में किसी अन्य बाहरी कार्यक्रम को चलाने के लिए उपयोग कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.