Emacs में, C-x oमुझे अगली विंडो पर ले जाता है।
क्या कीबोर्ड मैक्रो मुझे Emacs में पिछली विंडो पर ले जाता है?
Emacs में, C-x oमुझे अगली विंडो पर ले जाता है।
क्या कीबोर्ड मैक्रो मुझे Emacs में पिछली विंडो पर ले जाता है?
जवाबों:
आप पवनचक्की का उपयोग करने का भी प्रयास कर सकते हैं जो आपको ज्यामिति के आधार पर अपनी पसंद की खिड़की पर नेविगेट करने की अनुमति देता है। मेरे पास .emacs फ़ाइल में Cx तीर-कुंजी का उपयोग करके विंडोज़ बदलने के लिए निम्नलिखित है।
(global-set-key (kbd "C-x <up>") 'windmove-up)
(global-set-key (kbd "C-x <down>") 'windmove-down)
(global-set-key (kbd "C-x <right>") 'windmove-right)
(global-set-key (kbd "C-x <left>") 'windmove-left)
(windmove-default-keybindings)
बदलाव को बांधता है इन कार्यों + ऊपर / नीचे / छोड़ा / सही है, जो मुझे लगता है कि अपने से अधिक सुविधाजनक है C-x
(बाइंडिंग के लिए भी उपयोगी डिफ़ॉल्ट बाइंडिंग के साथ जो संघर्ष previous-buffer
और next-buffer
lkahtz:। (kbd)
समारोह आप स्ट्रिंग अंकन में कुंजी निर्दिष्ट कर सकते हैं जब आप उपयोग करते हैं C-h k
या C-h c
किसी बंधन का वर्णन करने के लिए Emacs द्वारा उपयोग किया जाता है जो अधिक पठनीय वाक्यविन्यास में भी होता है ।
windmove-default-keybindings
तीर कुंजियों के साथ संयोजन में उपयोग करने के लिए एक अलग संशोधक निर्दिष्ट करने के लिए एक तर्क भी पारित कर सकते हैं ; ताकि फ़ंक्शन शिफ्ट-चयन-मोड का उपयोग करने वाले लोगों के लिए अभी भी काम कर सके।
व्यक्तिगत रूप से मैं उपयोग करना पसंद करता हूं window-number.el
एक अलग विंडो का चयन करने के लिए, Ctrl- x, Ctrl- n का उपयोग करेंj
जहाँ n विंडो की संख्या है, प्रत्येक विंडो का मॉडलाइन नंबर दिखाता है, जैसा कि स्क्रीनशॉट में दिखाया गया है।
बस Window-number.el डाउनलोड करें , इसे अपने emacs लोड-पाथ में रखें और अपने में निम्नलिखित का उपयोग करें.emacs
(autoload 'window-number-mode "window-number"
"A global minor mode that enables selection of windows according to
numbers with the C-x C-j prefix. Another mode,
`window-number-meta-mode' enables the use of the M- prefix."
t)
इसी तरह की एक अन्य विधा है, switch-window.el
जो आपको विंडोज़ में बड़ी संख्या देती है ... (संख्या स्विच विंडो को दबाती है और प्रदर्शन को वापस लाती है।)
(स्रोत: tapoueh.org )
C-x C-j
, के रूप में है कि डिफ़ॉल्ट के लिए बाध्यकारी है dired-jump
अगर तुम (require 'dired-x)
। (देखें M-x customize-group RET dired-keys RET
, तो आपको लगता है कि ओवरराइड करने के लिए चाहते हैं।)
switch-window.el
इसे एक जगह देने का फैसला किया , यह C-x o
इसके बजाय उपयोग करता है , और जब केवल दो विंडो सक्रिय होती हैं, तो यह दूसरी विंडो का चयन करती है। मुझे लगता है कि यह चाल C-x o
करने के लिए विद्रोह करने के लिए सबसे बुद्धिमान है window-number
, आप इसके बारे में काफी सही हैं dired-jump
। व्यक्तिगत रूप से मैं विंडो स्विचिंग कम करता C-x b
हूं और खुद का उपयोग करता हूं, लेकिन बढ़ाया C-x o
होना काफी सुखदायक है।
यदि आप कई एमएसीएस विंडो (> 3) के साथ काम करते हैं और आप कुछ कीस्ट्रोक्स को अपने इनिट फ़ाइल में जोड़ना चाहेंगे और आप बेहतर बंद हो जाएंगे:
(defun frame-bck()
(interactive)
(other-window-or-frame -1)
)
(define-key (current-global-map) (kbd "M-o") 'other-window-or-frame)
(define-key (current-global-map) (kbd "M-O") 'frame-bck)
अब बस जल्दी से मो के साथ खिड़कियों को फेंक दें
other-window
है कि इसे काम करने के लिए बदलने के लिए भी टोपी ।
यहाँ कुछ बहुत अच्छे और पूर्ण उत्तर दिए गए हैं, लेकिन सवाल का जवाब कम से कम अंदाज में देना है:
(defun prev-window ()
(interactive)
(other-window -1))
(define-key global-map (kbd "C-x p") 'prev-window)
previous-window
निर्माण किया है।
M-x
इसलिए इसका एक अलग उद्देश्य पूरा करना चाहिए।
@ नोट से विचार के आधार पर, लेकिन खिड़कियों के बीच पीछे की ओर साइकिल चलाने के लिए थोड़ा संशोधित
;; Windows Cycling
(defun windmove-up-cycle()
(interactive)
(condition-case nil (windmove-up)
(error (condition-case nil (windmove-down)
(error (condition-case nil (windmove-right) (error (condition-case nil (windmove-left) (error (windmove-up))))))))))
(defun windmove-down-cycle()
(interactive)
(condition-case nil (windmove-down)
(error (condition-case nil (windmove-up)
(error (condition-case nil (windmove-left) (error (condition-case nil (windmove-right) (error (windmove-down))))))))))
(defun windmove-right-cycle()
(interactive)
(condition-case nil (windmove-right)
(error (condition-case nil (windmove-left)
(error (condition-case nil (windmove-up) (error (condition-case nil (windmove-down) (error (windmove-right))))))))))
(defun windmove-left-cycle()
(interactive)
(condition-case nil (windmove-left)
(error (condition-case nil (windmove-right)
(error (condition-case nil (windmove-down) (error (condition-case nil (windmove-up) (error (windmove-left))))))))))
(global-set-key (kbd "C-x <up>") 'windmove-up-cycle)
(global-set-key (kbd "C-x <down>") 'windmove-down-cycle)
(global-set-key (kbd "C-x <right>") 'windmove-right-cycle)
(global-set-key (kbd "C-x <left>") 'windmove-left-cycle)
बस @Nate, @aspirin और @ Troydm के उत्तर को जोड़ने के लिए मुझे लगता है कि यह एक बहुत ही उपयोगी जोड़ है यदि आप विंडमॉव कमांड को जो भी महत्वपूर्ण संयोजन चुनते हैं उसे बाँधने का निर्णय लेते हैं:
(setq windmove-wrap-around t)
डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ आपको एक त्रुटि मिलेगी जब आप एक ऐसी खिड़की पर जाने का प्रयास करेंगे जो मौजूद नहीं है जो थोड़ी देर बाद कष्टप्रद हो जाती है। हालाँकि जब विंडमॉव-रैप-अराउंड सेट हो जाता है, तो उदाहरण के लिए फ़्रेम के निचले भाग को स्थानांतरित करने का प्रयास करना इसके बजाय फ्रेम में सबसे ऊपरी खिड़की का चयन करना होगा। यह आपके लिए अधिक सहज व्यवहार हो सकता है।
M-n
और M-p
मेरे लिए सबसे ज्यादा मायने रखता है, क्योंकि वे C-n
( अगली पंक्ति ) के अनुरूप हैं और C-p
( पिछली-पंक्ति ) के अनुरूप हैं :
(define-key global-map (kbd "M-p") 'previous-multiframe-window)
(define-key global-map (kbd "M-n") 'other-window)
M-n
और M-p
पहले से ही टर्मिनलों (gdb, python, ielm, आदि) में उपयोग किया जाता है, इसलिए आपको टर्मिनल बफर से बाहर निकलने के लिए दूसरी विधि पर वापस जाना होगा।
नैट के जवाब के संदर्भ में, मैं प्रतिस्थापित arrow keys
पारंपरिक उपयोग करने के लिए p
जाने के लिए up
, n
जाने के लिए down
, f
जाने के लिए right
और b
जाने के लिए left
। मैं भी कुंजी के Ctrl
साथ बदल दिया के Super
रूप C-p, C-n, C-f and C-b
में डिफ़ॉल्ट आंदोलन कुंजी हैं। यह संयोजन M
आपको प्रत्येक कीस्ट्रोक के बाद केवल एक-एक करके जाने के बजाय पात्रों और रेखाओं को कूदने देता है। इस प्रकार Super
कुंजी को एक आसान कुंजी बंधन रखने के लिए सबसे अच्छा विकल्प लगा। इसके अलावा, अब आपको अपना हाथ घर की किसी भी पंक्ति में नहीं रखना है!
(global-set-key (kbd "s-p") `windmove-up)
(global-set-key (kbd "s-n") `windmove-down)
(global-set-key (kbd "s-f") `windmove-right)
(global-set-key (kbd "s-b") `windmove-left)
आशा करता हूँ की ये काम करेगा!
(global-unset-key (kbd "M-j"))
(global-unset-key (kbd "M-k"))
(global-set-key (kbd "M-j") (lambda () (interactive) (other-window 1)))
(global-set-key (kbd "M-k") (lambda () (interactive) (other-window -1)))
altjऔर altkआपके विज़िबल बफ़र्स के माध्यम से साइकिल चलाएगा। आगे और पीछे, सटीक होना।
पहले से ही एक पैकेज है जो एम- का उपयोग करके आपको विंडोज़ स्विच करने देता है। इस वेबसाइट की जाँच करें । इसे अपनी इनिट फ़ाइल में जोड़ें:
(require 'windmove)
(windmove-default-keybindings 'meta) ;; or use 'super to use windows key instead alt
(global-set-key (kbd "C-x a") 'ace-swap-window)
(global-set-key (kbd "C-x q") 'ace-select-window)
download ace-window from the melpa repo if you don't know how to do that
put this in your .emacs file if you don't have one create it
(package-initialize)
(require 'package)
(add-to-list 'package-archives '("melpa" , "http://melpa.org/packages/"))
(package-initialize)
then "m-x list-packages"
C-x z
विंडोज़ को जल्दी से स्विच करने के लिए अंतिम कमांड को दोहराने के लिए उपयोग कर सकते हैं ।