質問

Emacsでは、 C-x o 次のウィンドウに移動します。

Emacs の前のウィンドウに移動するキーボード マクロは何ですか?

役に立ちましたか?

解決

それはそうだろう C-- C-x o

言い換えると、 C-x o 引数は -1 です。間に数値引数を挿入することで、移動するウィンドウの数を指定できます。 ちー そしてコマンドは次のようになります C-u 2 C-x o. (C-- のショートカットです C-u-1)

他のヒント

また、ジオメトリに基づいて選択したウィンドウに移動できる Windmove を使用してみることもできます。C-x 矢印キーを使用してウィンドウを変更するために、.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)

個人的には使用することを好みます window-number.el

別のウィンドウを選択するには、次を使用します。 Ctrl-バツ, Ctrl-j n

どこ n はウィンドウの番号です。スクリーンショットに示すように、各ウィンドウのモードラインにはその番号が表示されます。

ダウンロードするだけ ウィンドウ番号.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 これにより、ウィンドウに大きな数字が表示されます...(数字を押すとウィンドウが切り替わり、表示が元に戻ります。)

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)

@Nate のアイデアに基づいていますが、ウィンドウ間の逆方向の循環をサポートするためにわずかに変更されました

;; 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の回答に追加すると、windmoveコマンドを選択したキーの組み合わせにバインドすることにした場合、これは非常に役立つ追加であることがわかります。

(setq windmove-wrap-around t)

デフォルト設定では、存在しないウィンドウに移動しようとするとエラーが発生し、しばらくすると面倒になります。ただし、windmove-wrap-around が設定されている場合、たとえばフレームの下部から移動しようとすると、代わりにフレーム内の最上部のウィンドウが選択されます。これはあなたにとってより直感的な動作かもしれません。

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. 。私も交換しました CtrlSuper キーとして C-p, C-n, C-f and C-b はデフォルトの移動キーです。この組み合わせと M キーストロークごとに 1 つずつ移動するのではなく、文字や行をジャンプできます。したがって Super key は、キーバインドを容易にするための最良の選択であると感じました。また、もうホームローから手を離す必要はありません。

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

代替j そして 代替k 可視バッファを循環します。正確に言うと、前進と後進です。

M- を使用してウィンドウを切り替えることができるパッケージがすでに存在します。 このウェブサイトをチェックしてください. 。これを初期化ファイルに追加します。

(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