EmacsではC-x o、次のウィンドウに移動します。
Emacsの前のウィンドウに移動するためのキーボードマクロは何ですか?
EmacsではC-x o、次のウィンドウに移動します。
Emacsの前のウィンドウに移動するためのキーボードマクロは何ですか?
回答:
ジオメトリに基づいて選択したウィンドウに移動できるwindmoveを使用してみることもできます。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)
(windmove-default-keybindings)
私はあなたよりも便利だと思うこれは、+アップ/ダウン/右/左SHIFTに、これらの機能が結合する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 load-pathに配置して、以下で使用してください.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
代わりにそれを使用し、アクティブなウィンドウが2つしかない場合は、他のウィンドウを選択するだけです。再バインドC-x o
してwindow-number
トリックを実行するのが最も賢明だと思いますdired-jump
。個人的にはウィンドウの切り替えを減らしてC-x b
自分自身を使用していますが、拡張機能を使用することC-x o
は非常に楽しいことです。
複数の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)
Moを使用して窓をすばやく循環します
other-window
たようにそれを動作させるために変更することも帽子です。
ここにはいくつかの非常に良い完全な答えがありますが、質問に最小限の方法で答えるには:
(defun prev-window ()
(interactive)
(other-window -1))
(define-key global-map (kbd "C-x p") 'prev-window)
previous-window
に建てられた。
M-x
ないので、別の目的に役立つはずです。
@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)
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
により、キーストロークごとに1つずつ処理するのではなく、文字と行をジャンプできます。したがって、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あなたの目に見えるバッファを循環します。正確には、前方と後方。
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"
C-x z
して最後のコマンドを繰り返し、ウィンドウをすばやく切り替えることができます。