ইমাস, পূর্বের উইন্ডোতে স্যুইচ করুন


93

ইমাসে, C-x oআমাকে পরবর্তী উইন্ডোতে নিয়ে যায়।

কোন কিবোর্ড ম্যাক্রো আমাকে ইমাক্সের পূর্ববর্তী উইন্ডোতে নিয়ে যায়?

উত্তর:


88

হবে C-- C-x o

অন্য কথায়, C-x o-1 এর যুক্তি সহ। সুনির্দিষ্টভাবে C-uএবং কমান্ডের মধ্যে একটি সংখ্যার যুক্তি সন্নিবেশ করিয়ে কতগুলি উইন্ডো সরাতে হবে তা উল্লেখ করতে পারেন C-u 2 C-x o। (এর C--জন্য একটি শর্টকাট C-u - 1)


এবং C-x zউইন্ডোগুলিকে দ্রুত স্যুইচ করতে আপনি সর্বশেষ আদেশটি পুনরায় ব্যবহার করতে পারেন use
ইভান হুয়াং

105

আপনি উইন্ডমোভ ব্যবহারের চেষ্টা করতেও পারেন যা জ্যামিতির উপর ভিত্তি করে আপনার পছন্দসই উইন্ডোতে নেভিগেট করতে দেয়। Cx তীর-কী ব্যবহার করে উইন্ডোজ পরিবর্তন করতে আমার .emacs ফাইলটিতে নিম্নলিখিতটি রয়েছে।

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

11
লক্ষ্য করুন কলিং (windmove-default-keybindings)নামান বেঁধে এই ফাংশন + আপ / নীচের / বাম / ডান, যা আমি মনে করেন যে আপনার চেয়ে বেশি সুবিধাজনক C-x(বাইন্ডিং জন্যও-দরকারী ডিফল্ট বাইন্ডিং সঙ্গে যা দ্বন্দ্ব previous-bufferএবং next-bufferlkahtz। (kbd)ফাংশন আপনি STRING স্বরলিপি কী উল্লেখ করতে দেয় আরও পঠনযোগ্য সিনট্যাক্সে যা ইমাক্স যখন আপনি কোনও বাঁধাই ব্যবহার করেন C-h kবা C-h cবর্ণনা করার জন্য ব্যবহার করেন তখনও
ফিল্ড

4
আমি তীর কীগুলি ব্যবহার করার অনুমোদন দিই না। তবে আমি যাই হোক না কেন সাহায্যের জন্য upvated। : ফিটফাট:
বিয়ন্সের

4
ইমফ্যাক্স 23 (শিফট-নির্বাচন-মোড) থেকে ডিফল্টরূপে সক্ষম করা শিফট নির্বাচনের সাথে @ ফিলস শ্যাফট + <কিস> পদক্ষেপগুলি।
কিংবদন্তি

4
কিংবদন্তি 2 কে: সত্য; যদিও আপনি windmove-default-keybindingsতীর কীগুলির সাথে একযোগে ব্যবহার করতে কোনও ভিন্ন পরিবর্তনকারী নির্দিষ্ট করার জন্য একটি যুক্তিও পাস করতে পারেন ; যাতে শিফট-সিলেকশন-মোড ব্যবহার করে এমন লোকদের জন্য সেই ফাংশনটি এখনও কার্যকর হতে পারে।
ফিল্ডস

4
@ ফিলস সম্মত, মেটা একটি ভাল বিকল্প বলে মনে হচ্ছে; Emacs উইকি হিসাবে দেখা যায়
কিংবদন্তি

30

ব্যক্তিগতভাবে আমি ব্যবহার করতে পছন্দ করি window-number.el

আলাদা উইন্ডো নির্বাচন করতে, Ctrl- x, Ctrl- এন ব্যবহার করুনj

যেখানে এন উইন্ডোর সংখ্যা, সেখানে প্রতিটি উইন্ডোর মডেলাইন এটির নম্বরটি প্রদর্শন করে, যেমন স্ক্রিনশটটিতে দেখানো হয়েছে।

কেবল উইন্ডো-নম্বর.এল ডাউনলোড করুন , এটি আপনার ইমাস লোড-পাথের মধ্যে রাখুন এবং নিম্নলিখিতটি আপনার ব্যবহার করুন.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 )


4
দুর্দান্ত, তবে আমি কোনও কিছুকে আবদ্ধ না করার পরামর্শ দিই C-x C-j, কারণ এটি dired-jumpযদি আপনার জন্য ডিফল্ট বাঁধাই হয় (require 'dired-x)। (আপনি M-x customize-group RET dired-keys RETযদি
সেটিকে

4
এটি পোস্ট করার পরে আমি সিদ্ধান্ত নেওয়ার সিদ্ধান্ত নিয়েছি switch-window.el, এটি C-x oপরিবর্তে ব্যবহার করে এবং যখন কেবল দুটি উইন্ডো সক্রিয় থাকে, তখন এটি কেবল অন্য উইন্ডোটি নির্বাচন করে। আমি মনে করি কৌশলটি পুনরায় প্রত্যাবর্তন C-x oকরা বুদ্ধিমানের কাজ window-number, আপনি ঠিক বলেছেন dired-jump। ব্যক্তিগতভাবে আমি উইন্ডো স্যুইচিং কম C-x bকরি এবং নিজেকে ব্যবহার করি তবে উন্নত C-x oহওয়া বেশ আনন্দদায়ক।
ocodo

প্রথম স্ক্রিনশটটিতে বাহ বাহ আশ্চর্যজনক থিম। আমি কিভাবে এটি পেতে পারি?
semente

@ এসেমেন্টে আমার ইমাস সম্পর্কিত পৃষ্ঠা jasonm23.github.com/EmacsFodder/Emacs/2012/06/29/…
অক্টোডো

4
@petrux emacsfodder.github.io/blog/two-new-emacs24- থিমগুলি আমি মনে করি এটি সম্ভবত দুটি থিমের মধ্যে একটি। - বিটিডব্লিউ শীতল মোড লাইনের জন্য gist.github.com/jasonm23/8554119
ocodo

13

আপনি যদি একাধিক ইম্যাক উইন্ডো (> 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)

এখন শুধু মো সহ উইন্ডোগুলির মাধ্যমে দ্রুত চক্র করুন


4
এটি হ'ল আমার প্রয়োজনীয় সমাধান। উইন্ডো স্যুইচিং কমান্ডের জন্য আমি যা চেয়েছিলাম তা হ'ল একক পুনরাবৃত্তি কীস্ট্রোক। ধন্যবাদ! এফওয়াইআই, এটিকে কাজ করতে আমাকে অন্য উইন্ডো-বা ফ্রেমটিকে অন্য উইন্ডোতে পরিবর্তন করতে হয়েছিল। আমি ইমাসে 24.2.1 এ আছি।
জিওফ

আমি মনে করি এগুলি খুব ভাল বাইন্ডিং (বিশেষত যখন আপনার কাছে 2+ উইন্ডোজ থাকে), ধন্যবাদ। যেমনটি বলা other-windowহয়েছে এটির কাজটি করার জন্য টুপি পরিবর্তন করতে ।
ডোলজেঙ্কো

11

এখানে খুব ভাল এবং সম্পূর্ণ উত্তর আছে, তবে একটি সংক্ষিপ্ত বিবরণে প্রশ্নের উত্তর দিতে:

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

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

4
আমি কবে থেকে জানি না, কিন্তু Emacs এখন previous-windowসালে নির্মিত।
আর্নি

@ আর্ন এটি কলযোগ্য ফাংশন নয় M-xতাই এটি একটি ভিন্ন উদ্দেশ্যে কাজ করে।
ইভান হুয়াং

4

@ নেট থেকে ধারণা ভিত্তিতে তবে উইন্ডোগুলির মধ্যে সাইক্লিং পিছনের দিকে সমর্থন করার জন্য সামান্য পরিবর্তিত হয়েছে

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

4

আপনি কেবল নেট, @ এস্পিরিন এবং @ ট্রয়েডমের জবাব যুক্ত করতে আমি যদি এটি বেছে বেছে যে কী কী সংমিশ্রনে উইন্ডমভ কমান্ডগুলিকে আবদ্ধ করার সিদ্ধান্ত নিই তবে এটি একটি খুব সহায়ক সংযোজন বলে মনে করি:

(setq windmove-wrap-around t)

ডিফল্ট কনফিগারেশনের সাহায্যে আপনি একটি ত্রুটি পাবেন যখন আপনি কোনও উইন্ডোতে চলে যাওয়ার চেষ্টা করবেন যা অস্তিত্বহীন যা কিছুক্ষণ পরে বিরক্তিকর হয়ে ওঠে। তবে যখন উইন্ডমোভ-মোড়কের চারপাশে সেট করা থাকে তখন ফ্রেমের নীচে থেকে সরানোর চেষ্টা করা হয় উদাহরণস্বরূপ ফ্রেমের শীর্ষতম উইন্ডোটি নির্বাচন করবে। এটি আপনার জন্য আরও স্বজ্ঞাত আচরণ হতে পারে।


4

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ইতিমধ্যে টার্মিনালগুলিতে (জিডিবি, পাইথন, আইলম, ইত্যাদি) ব্যবহার করা হয়েছে যাতে আপনাকে টার্মিনাল বাফার থেকে বেরিয়ে আসতে অন্য পদ্ধতিতে ফিরে যেতে হবে।
মিহাই

তারা এই পরিবেশে কি জন্য ব্যবহার করা হয়?
tshpang

এই মুহূর্তের জন্য আমি এটিই সেরা দেখলাম, এটি অন্যান্য স্টাফের বিরুদ্ধে যায় না এবং কবজির মতো কাজ করে! ধন্যবাদ!
অরেলিয়ান

2

Nate এর উত্তর রেফারেন্স, আমি প্রতিস্থাপিত 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)

আশা করি এটা সাহায্য করবে!


2
(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আপনার দৃশ্যমান বাফারগুলির মাধ্যমে চক্রটি সঞ্চার করবে। সামনের দিকে এবং পিছনে।


এম কে কিন্ডা দরকারী শর্টকাট। অন্য কোন বিকল্প?
এএপি

1

ইতিমধ্যে একটি প্যাকেজ রয়েছে যা আপনাকে এম- ব্যবহার করে উইন্ডোজ স্যুইচ করতে দেয়। এই ওয়েবসাইটটি দেখুন । এটি আপনার init ফাইলটিতে যুক্ত করুন:

(require 'windmove)
(windmove-default-keybindings 'meta) ;; or use 'super to use windows key instead alt

0
(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"

0

পূর্ববর্তী উইন্ডোটিতে স্যুইচ করার জন্য আমি যে দ্রুততম পদ্ধতির সন্ধান পেয়েছি তা হ'ল "কী-কর্ড" হিসাবে কয়েকটি দম্পতি কী একসাথে ম্যাস করা । নিম্নলিখিত উইন্ডোতে যেতে আপনার বাম গোলাপী + রিং আঙ্গুলগুলি একসাথে ব্যবহার করতে দেয়:

(key-chord-define-global "qw" 'prev-window)
(key-chord-define-global "'y" 'other-window) ; bonus for my colemak, adjust otherwise
(key-chord-define-global ";'" 'other-window) ; probably normal

(এটি সম্ভব হয়েছে কারণ ইমাক্স কী কর্ডগুলি স্বাধীনভাবে অর্ডার করা হয়েছে, যার অর্থ qwএকই wq))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.