有沒有辦法在緩衝區之間切換,而不必通過 緩衝區列表或寫入我想要切換到的緩衝區的名稱?更具體的我不知道Emacs可以緩衝區之間標籤就像它是如何在記事本工作++緩衝區之間的Emacs選項卡
回答
Emacs的22.1及更高supports的previous-buffer
(C-x <left arrow>
)和next-buffer
(C-x <right arrow>
)命令。
可以使用this script將這兩個命令添加到較老的Emacsen。
是否還有一個命令可以在最近的命令之間切換? – starcorn 2010-11-09 11:41:39
是的,請參閱我的答案中第一個鏈接中的「在兩個最近使用的緩衝區之間切換」部分。 – 2010-11-09 11:43:00
我從來沒有最終使用CX <權>或CX < C-右>了,因爲我覺得他們繁瑣重複,如果我想過去的週期超過一個緩衝區,所以我剛剛寫了一對夫婦的功能,讓你繼續切換到next/previous-buffer
與< C-右>和< C-左>如果最後的命令也是一個next/previous-buffer
命令。
例如C-X < C-左> < C-左> < C-左> < C-右> < C-左>將帶您回到三個緩存器,向前,向後一次。
我所做的假設,即< C-左> & < C-右>通常勢必forward/backward-word
,和我呼籲那些明確作爲後備。
(defun my-forward-word-or-buffer-or-windows (&optional arg)
"Enable <C-left> to call next-buffer if the last command was
next-buffer or previous-buffer, and winner-redo if the last
command was winner-undo or winner-redo."
(interactive "p")
(cond ((memq last-command (list 'next-buffer 'previous-buffer))
(progn (next-buffer)
(setq this-command 'next-buffer)))
((memq last-command (list 'winner-redo 'winner-undo))
(progn (winner-redo)
(setq this-command 'winner-redo)))
(t ;else
(progn (forward-word arg)
(setq this-command 'forward-word)))))
(defun my-backward-word-or-buffer-or-windows (&optional arg)
"Enable <C-left> to call previous-buffer if the last command
was next-buffer or previous-buffer, and winner-undo if the last
command was winner-undo or winner-redo."
(interactive "p")
(cond ((memq last-command (list 'next-buffer 'previous-buffer))
(progn (previous-buffer)
(setq this-command 'previous-buffer)))
((memq last-command (list 'winner-redo 'winner-undo))
(progn (winner-undo)
(setq this-command 'winner-undo)))
(t ;else
(progn (backward-word arg)
(setq this-command 'backward-word)))))
(global-set-key (kbd "<C-left>") 'my-backward-word-or-buffer-or-windows)
(global-set-key (kbd "<C-right>") 'my-forward-word-or-buffer-or-windows)
(我用Icicles緩衝區交換,我自己,但是......)
如果你想重複以前的命令任意次數,只要使用CX ZZZZZZ ......在這種情況下,例如,CX離開CX ZZZ ......
如果真是太麻煩了,綁定(next|previous)-buffer
以外,重複鍵,如其他人所說。
但可重複的鑰匙需求量很大。如果你不想浪費任何東西,你甚至可以把這些命令放在一個前綴鍵上,這樣,例如,你可以這樣做,例如,Cx左上角的左邊 ......這是一個訣竅,在Bookmark+代碼):
(defun my-repeat-command (command) "Repeat COMMAND." (let ((repeat-message-function 'ignore)) (setq last-repeatable-command command) (repeat nil))) (defun my-next-whatever-repeat (arg) ; `C-x right' "Jump to the Nth-next whatever. N defaults to 1, meaning the next whatever. Plain `C-u' means start over at the first whatever (and no repeat)." (interactive "P") (require 'repeat) (my-repeat-command 'next-whatever)) (define-key ctl-x-map [right] 'my-next-whatever-repeat
- 1. XEmacs緩衝區選項卡不顯示所有緩衝區
- 2. Markdownize Emacs緩衝區
- 3. Emacs erlang緩衝區
- 4. Emacs中的正常緩衝區和空間前綴緩衝區之間的區別?
- 5. 如何在emacs中的緩衝區之間複製整行?
- 6. 如何在emacs中的可見緩衝區之間切換?
- 7. emacs:控制選項卡緩衝區循環或堆棧緩衝區循環,類似於窗口之間的alt-tab
- 8. Emacs緩衝區組/標籤
- 9. emacs:非連續緩衝區
- 10. Emacs緩衝區管理
- 11. emacs ediff刷新緩衝區
- 12. 在Emacs小緩衝區
- 13. Cocoa Emacs打印緩衝區
- 14. 如何恢復emacs緩衝區列表中的緩衝區?
- 15. 讓emacs grep緩衝區使用特定的emacs緩衝區來顯示命中
- 16. Emacs意外地將緩衝區切換到臨時緩衝區
- 17. 關閉緩衝區後顯示Emacs緩衝區
- 18. vim中的每個選項卡的緩衝區
- 19. 雙緩衝方法之間的區別
- 20. PHP + MySQL:緩衝和非緩衝查詢之間的區別
- 21. emacs緩衝區列表中的顏色
- 22. Emacs在Mono中的等效緩衝區
- 23. Emacs緩衝區內的OpenGL上下文
- 24. 窗口內的中心Emacs緩衝區
- 25. 得到Emacs中緩衝區的數量
- 26. 的Emacs迷你緩衝區完成
- 27. 所有emacs緩衝區中的行號
- 28. 使下緩衝的emacs跳過*消息*緩衝區
- 29. vim在現有選項卡中打開緩衝區
- 30. Vim:在新選項卡中打開每個緩衝區
這個問題也問(並回答不同)以上的超級用戶:http://superuser.com/questions/208871/emacs-tab-between-buffers – jwernerny 2010-11-09 13:50:19
我試過很多,並最終停在一個簡單的iflip包http://www.emacswiki上。org/emacs-ja/iflipb隨着時間的推移,你會發現幾乎沒有比「C-x b」更好的切換+ ido-mode – VitoshKa 2010-11-09 21:18:38