आप emacs खोल में पिछली कमांड कैसे चलाते हैं?


47

मैं उबंटू में टर्मिनल मोड में हूं, और मैं 2 बफ़र्स के साथ एमएसीएस चला रहा हूं, एक रूबी फाइल है, और दूसरा एक शेल है (एमएक्स शेल टाइप करके खोला गया है), और जब मैं शेल बफर पर स्विच करता हूं, तो मैं चाहता हूं उसी कमांड को चलाने के लिए जिसे मैं पहले चलाता था। मैं आम तौर पर बस एक टर्मिनल विंडो में ऊपर तीर मारा, लेकिन emacs में, यह बस कर्सर को एक पंक्ति में रखता है।

किसी को भी एक कवच खोल के भीतर से पिछले शेल कमांड को चलाने के लिए कीस्ट्रोके का पता है?

जवाबों:


63

M-p नौकरी करता है


धन्यवाद! मैंने थोड़ा खोजा, लेकिन नहीं मिला।
लिडमिथ

24

इसके अलावा M-p, आप भी उपयोग कर सकते हैं C-up, जो मुझे बेहतर लगता है। पूरक कुंजी M-nया C-downआपको इतिहास में अगली कमांड मिलेगी।


1
आह, ty। यह अधिक स्वाभाविक लगता है।
लिडमिथ

1
भले ही इसे प्रारंभिक प्रश्न में नहीं रखा गया था, लेकिन मुझे यह स्वीकार करना होगा कि [C-up] और [C-down] टर्मिनल के माध्यम से Emacs में काम नहीं करते हैं (PuTTY)।
AVP

1
यह भी मेरे मैक पर काम करने के लिए प्रतीत नहीं होता है; सी-अप को मैक-विशिष्ट फ़ंक्शन में मैप किया जाता है।
एमो

मेरे लिए भी C-upमैप किया गया है expose। और M-pमुझे और स्वाभाविक लगता है।
इन्द्रधनुष गुप्ता

5

आप इसे अपनी emacs init फ़ाइल में भी जोड़ सकते हैं:

(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input)

2

thiagowfx समाधान मेरे लिए बेहतर है, क्योंकि मैं आमतौर पर संदर्भ-निर्भरता से बचने की कोशिश करता हूं। हालाँकि, इसके लिए काम करने के लिए मुझे पहले लोडिंग कॉमिंट मोड को जोड़ना पड़ा:

(progn(require 'comint)
(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input))

0

DeLorean88 के उत्तर ने मेरे लिए काम किया, लेकिन केवल "प्रोग्न" लाइन पर एक दूसरे क्लोजिंग ब्रैकेट के साथ:

(progn(require 'comint))
(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input))

अपनी फ़ाइल फिर से जांचें। दूसरी परिभाषित-कुंजी को एक सिंटैक्स त्रुटि का कारण बनना चाहिए क्योंकि अंतिम समापन ब्रैकेट पहले से मेल नहीं खाता है।
vfclists
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.