स्प्लिट स्क्रीन एमएसीएस विंडो का आकार कैसे बदलें?


172

मैं emacs को क्षैतिज रूप से विभाजित करता हूं - शीर्ष पर मैं पर्ल कोड का संपादन कर रहा हूं, नीचे शेल है। डिफ़ॉल्ट रूप से एमएसीएस दो खिड़कियों को आकार में समान बनाता है, लेकिन मुझे शेल बफर छोटा (शायद आधा आकार?) पसंद आएगा। मैं सोच रहा था कि मैं ऐसा कैसे कर सकता हूं।

जवाबों:


294

माउस के साथ, आप खिड़की के आकार को चारों ओर खींच सकते हैं।

मोड लाइन पर कहीं भी क्लिक करें जो अन्यथा 'सक्रिय' नहीं है (बफ़र नाम सुरक्षित है, या दाहिने हाथ की ओर कोई अप्रयुक्त क्षेत्र है), और आप ऊपर या नीचे खींच सकते हैं।

साइड-टू-साइड ड्रैगिंग के लिए उस स्थान पर बहुत सटीक क्लिक की आवश्यकता होती है जहां दो मोड लाइनें जुड़ती हैं।

C-x -( shrink-window-if-larger-than-buffer) अपनी सामग्री को फिट करने के लिए एक विंडो को सिकोड़ देगा।

C-x +( balance-windows) विंडो को समान ऊँचाई और चौड़ाई बनाएगा।

C-x ^( enlarge-window) 1 पंक्ति, या उपसर्ग arg मान से ऊंचाई बढ़ाता है। एक नकारात्मक arg विंडो को सिकोड़ता है। जैसे C-- C-1 C-6 C-x ^16 पंक्तियों द्वारा सिकुड़ता है, जैसा कि करता है C-u - 1 6 C-x ^

(इसके लिए कोई डिफ़ॉल्ट बाइंडिंग नहीं है shrink-window।)

C-x }( enlarge-window-horizontally) इसी तरह, क्षैतिज रूप से करता है।
C-x {( shrink-window-horizontally) डिफ़ॉल्ट रूप से भी बाध्य है।

इन आदेशों में से एक के साथ repeat( C-x zआरंभ करने के लिए, और केवल zपुनरावृत्ति के लिए) इसे अपने इच्छित आकार में प्राप्त करना बहुत आसान बनाता है।

यदि आप नियमित रूप से एक विशिष्ट मूल्य के साथ ऐसा करना चाहते हैं, तो आप इसे करने के लिए एक कीबोर्ड मैक्रो रिकॉर्ड कर सकते हैं, या कुछ का उपयोग कर सकते हैं
(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))

या यह:
(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))

जो एक smidgen hacky है, इसलिए यह बेहतर होगा:

(defun halve-other-window-height ()
  "Expand current window to use half of the other window's lines."
  (interactive)
  (enlarge-window (/ (window-height (next-window)) 2)))

(global-set-key (kbd "C-c v") 'halve-other-window-height)

मूर्त रूप से, मैं भी प्यार करता हूँ winner-modeजो आपको विंडो कॉन्फ़िगरेशन के साथ किसी भी बदलाव को बार-बार 'पूर्ववत' करने देता है C-c left(चाहे परिवर्तन खिड़कियों के आकार / संख्या / व्यवस्था हो, या बस जो बफर प्रदर्शित होता है)। C-c rightआपको सबसे हालिया कॉन्फ़िगरेशन पर लौटाता है। इसे विश्व स्तर पर सेट करें(winner-mode 1)


3
बहुत बढ़िया, ठीक है जो मैं चाहता था! आपको बहुत - बहुत धन्यवाद!
स्टीव

1
+1: 'पूर्ववत' विजेता-मोड टिप के लिए धन्यवाद। btw, मेरे मामले में बफर नाम पर क्लिक करने पर अगला बफर खुल जाता है। लेकिन यह देखना आसान है कि आप माउस कर्सर के आकार को देखकर कब आकार बदल सकते हैं।
JFS

34

मैंने इन्हें अपने यहाँ रखा .emacs:

(global-set-key (kbd "<C-up>") 'shrink-window)
(global-set-key (kbd "<C-down>") 'enlarge-window)
(global-set-key (kbd "<C-left>") 'shrink-window-horizontally)
(global-set-key (kbd "<C-right>") 'enlarge-window-horizontally)

मैक ओएसएक्स 10.9.1 पर Emacs 24.3.1 में पहले दो मेरे लिए काम नहीं करते हैं
Oskar Persson

1
@ ऑस्करपर्सन यह वैश्विक शॉर्टकट्स का संगम हो सकता है। वरीयता प्राप्त करें या कैप्स लॉक (मेरे तरीके) पर नियंत्रण को रीमैप करें, यह तब काम करना चाहिए।
विलीबीबी

मुझे भी यही समस्या थी और पता चला कि सी-लेफ्ट और सी-राइट में ओएस एक्स सिस्टम प्रेफरेंस में मिशन कंट्रोल शॉर्टकट्स का विरोध किया गया था, जैसा कि @Wilbeibi द्वारा वर्णित है।
डग रिचर्डसन

1
ये कुंजियाँ पहले से ही परिभाषित हैं, पहले (global-set-key (kbd "<C-up>") nil)इसे सेट करने से पहले कुंजियों को अनसेट करें , लेकिन M-leftइसके बजाय बेहतर उपयोग होगा
मॉरीशियो कोरटज़ार

@MauricioCortazar मैं वर्षों के लिए Emacs का उपयोग नहीं किया है। यह उत्तर अब लागू नहीं हो सकता है। इसे अद्यतन करने के लिए स्वतंत्र महसूस करें।
विलीबी बीबी

13

चलो emacs मदद दस्तावेज़ का उपयोग करने का प्रयास करें।

C-h a

फिर "बड़ा करें" या "विंडो" लिखें

तुम वही पाओगे जो तुम चाहते हो।

का आनंद लें!


यह संभव है कि कोई ऐसे वातावरण में काम कर रहा है जिसमें C-hउपलब्ध नहीं है। फिर क्या?
डेरेल ड्यूरेट

1
यदि आपने मानक हेल्प मैप बाइंडिंग को बंद कर दिया है, तो आपको निश्चित रूप से इस बात की जानकारी होनी चाहिए कि आपने इसके साथ क्या किया है । (उसमें असफल होने पर की कोशिश <f1>है जो अन्य मानक मदद नक्शा बाध्यकारी।)
फिल्स

6

C-x oखिड़की जिसका आकार आप विस्तारित करना चाहते हैं। वहां से, C-x ^इसका विस्तार करने के लिए।


3
मामले में बाइंडिंग अलग हैं (मेरा है), कमांड है enlarge-window। एक अतिरिक्त टिप विस्तार की मात्रा को नियंत्रित करने के लिए एक उपसर्ग arg का उपयोग करना है।
जोसेफ गे

बहुत बढ़िया! आपका बहुत बहुत धन्यवाद!
स्टीव

6

C-x ^सकारात्मक और नकारात्मक संख्यात्मक तर्क लेता है। विशेष रूप से, यदि आप उस विंडो को सिकोड़ना चाहते हैं जहां आपका कर्सर वर्तमान में चार लाइनों से है, तो आप दबा सकते हैं C-u -4 C-x ^


2

यह वह सटीक उत्तर नहीं है जिसकी आप तलाश कर रहे हैं, लेकिन मैं इस प्रश्न पर लड़खड़ा गया हूं जब spacemacsमैं कार्यक्षमता की तलाश कर रहा हूं, इसलिए मैं अपना उत्तर सिर्फ पूर्णता के लिए लिखूंगा।

विकल्प का उपयोग करना है <SPC> + w + .(यह वैनिला स्पेसमैक्स में काम करता है)

यह एक क्षणिक खिड़की को खोलता है जहां []{}एक दानेदार स्तर पर आकार देने के लिए उपयोग किया जा सकता है।

Cx या माउस की कोई आवश्यकता नहीं है ...

विंडो हेरफेर क्षणिक स्थिति


अगर नियमित रूप से emacs में कुछ समान है?
krokodil

यह शायद वहाँ नहीं है, यही वजह है कि ड्रू ने यह सवाल पहली जगह में पूछा ...
येश

0

मुझे वही सवाल मिला। यहाँ मेरा समाधान है।
पहले मैं एक नया कार्य परिभाषित करता हूं:

(defun buffer-resize ()
  (delete-other-windows)
  (split-window-vertically (floor (* 0.68 (window-height))))
  (other-window 1)
  (switch-to-buffer buf)
  (other-window 1))

उदाहरण के लिए, मैं एक बफर में रन-स्कीम करना चाहता हूं, इसलिए मैं इसे फिर से लिखता हूं।
और यहाँ परिभाषा है, पहले परिभाषित फ़ंक्शन के साथ:

(defun run-scheme-here ()
  "Run a new scheme process at the directory of the current buffer.
   If a process is already running, switch to its buffer."
  (interactive)
  (let* ((proc (format "scheme: %s" default-directory))
         (buf (format "*%s*" proc)))
    (unless (comint-check-proc buf)
      (let ((cmd (split-string scheme-program-name)))
        (set-buffer
         (apply 'make-comint-in-buffer proc buf (car cmd) nil (cdr cmd)))
        (inferior-scheme-mode)
        (buffer-resize)))
    (pop-to-buffer buf)))

इसलिए अब जब मैं प्रवेश करता हूं: एमएक्स रन-स्कीम-यहां, बफर का आकार बदल दिया जाता है!
और यहां मेरी कॉन्फ़िग फ़ाइल है, उम्मीद है कि यह मदद करेगा। https://github.com/judevc/dotfiles/blob/master/.emacs.d/scheme-conf.el


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