有沒有辦法在緩衝區之間切換,而不必通過 緩衝區列表或寫入我想要切換到的緩衝區的名稱?更具體的我不知道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. Emacs erlang緩衝區
- 3. Markdownize Emacs緩衝區
- 4. 如何在emacs中的可見緩衝區之間切換?
- 5. Cocoa Emacs打印緩衝區
- 6. Emacs緩衝區組/標籤
- 7. emacs:非連續緩衝區
- 8. 在Emacs小緩衝區
- 9. 如何恢復emacs緩衝區列表中的緩衝區?
- 10. 讓emacs grep緩衝區使用特定的emacs緩衝區來顯示命中
- 11. 關閉緩衝區後顯示Emacs緩衝區
- 12. Emacs意外地將緩衝區切換到臨時緩衝區
- 13. vim中的每個選項卡的緩衝區
- 14. 雙緩衝方法之間的區別
- 15. Emacs緩衝區內的OpenGL上下文
- 16. 的Emacs迷你緩衝區完成
- 17. 所有emacs緩衝區中的行號
- 18. 得到Emacs中緩衝區的數量
- 19. Vim:在新選項卡中打開每個緩衝區
- 20. vim在現有選項卡中打開緩衝區
- 21. 在Emacs中立即終止緩衝緩衝區
- 22. Emacs shell輸出緩衝區高度
- 23. 將Emacs緩衝區傳遞給C
- 24. emacs緩衝區綁定到密鑰
- 25. 如何創建Emacs SQL緩衝區?
- 26. 在Emacs緩衝區中渲染Markdown
- 27. 維護emacs緩衝區歷史
- 28. Emacs ansi-term最大緩衝區大小?
- 29. Emacs - 多列一個緩衝區
- 30. Emacs保存緩衝區鍵綁定?
這個問題也問(並回答不同)以上的超級用戶: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