سؤال

في Emacs ، ج-x o يأخذني إلى النافذة التالية.

ما المفاتيح ماكرو يأخذني إلى النافذة السابقة في Emacs ؟

هل كانت مفيدة؟

المحلول

سيكون هذا ج-C-x o

وبعبارة أخرى ، ج-x o مع حجة -1.يمكنك تحديد كيفية العديد من النوافذ إلى التحرك عن طريق إدخال رقمية حجة بين C-u و الأمر كما في ج-u 2 C-x o. (ج-- هو اختصار ج-u - 1)

نصائح أخرى

قد ترغب أيضا في محاولة استخدام windmove الذي يتيح لك التنقل إلى النافذة من اختيارك على أساس الهندسة.أنا في بلدي .emacs الملف إلى تغيير نظام التشغيل windows باستخدام C-x السهم الرئيسية.

(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)

أنا شخصيا أفضل استخدام window-number.el

لتحديد إطار آخر, استخدام Ctrl-x, Ctrl-ي n

حيث n هو عدد من النافذة ، modeline من كل نافذة يدل على ذلك ، كما هو مبين في الصورة.

مجرد تحميل نافذة-عدد.ش, ، ضع في 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 والتي تعطيك أرقام كبيرة في ويندوز...(الضغط على عدد مفاتيح النافذة يعود العرض.)

http://tapoueh.org/images/emacs-switch-window.png

إذا كنت تعمل مع عدة emacs ويندوز (>3) الكثير و سوف تحتاج إلى توفير بعض ضغطات هذا إضافة إلى ملف init و عليك أن تكون أفضل حالا:

(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)

الآن فقط دورة بسرعة من خلال النوافذ مع M-o

هناك بعض جيدة جدا وكاملة الإجابات هنا ، ولكن للإجابة على السؤال في الحد الأدنى:

 (defun prev-window ()
   (interactive)
   (other-window -1))

 (define-key global-map (kbd "C-x p") 'prev-window)

قاعدة على فكرة من @نيت ولكن معدلة بشكل طفيف إلى دعم الوراء ركوب الدراجات بين ويندوز

;; 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)

فقط إضافة إلى @نيت @الأسبرين @Troydm الجواب أجد هذا أن تكون مفيدة جدا بالإضافة إلى ذلك إذا كنت ترغب في ربط windmove الأوامر مهما كانت تركيبة المفاتيح يمكنك اختيار:

(setq windmove-wrap-around t)

مع التكوين الافتراضي سوف تحصل على خطأ عندما تحصل على محاولة للانتقال إلى النافذة التي لا وجود لها والتي يصبح نوع من مزعج بعد حين.ومع ذلك عندما windmove-التفاف حول تعيين ثم محاولة نقل قبالة الجزء السفلي من الإطار على سبيل المثال بدلا من تحديد الإطار الأعلى في الإطار.قد يكون هذا أكثر بديهية السلوك بالنسبة لك.

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)

(مستوحاة من إلى هذا و أن)

في إشارة إلى نيت الجواب, أنا محل 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)))

altي و altk من خلال دورة الخاص بك visibles المخازن المؤقتة.إلى الأمام وإلى الوراء ، على وجه الدقة.

هناك بالفعل حزمة يتيح لك مفتاح windows باستخدام M-. تحقق من هذا الموقع.هذا إضافة إلى ملف init:

(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"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top