2013年2月9日 星期六

emacs中視窗的分割、配置、切換、捲動

分割及配置在上篇說到shell的部分己經談過,接下來要說的是切換。這裏說的切換有兩層含意,一層是輸入焦點轉移到那個視窗(other-window),一個是具有輸入焦點的視窗中,要看到那個buffer的內容(iswitchb)。

other-window 及替代方案


傳統上這個指令綁在 C-x o 按鍵組合上,但是沒有對應的回卷機制。(好吧其實是有回捲的,但是這種本來就己經很複雜的組合,把它弄得更複雜,我們是不太會記得住的…參 http://stackoverflow.com/questions/143072/in-emacs-what-is-the-opposite-function-of-other-window-c-x-o )

http://www.emacswiki.org/emacs/SwitchingBuffers

If you use Icicles, then, in Icicle mode, ‘C-u C-x o’ gives you a multi-command that lets you choose a window (or a frame) by its buffer name (with numeric suffix to distinguish multiple windows for the same buffer). You can also cycle among windows whose buffers match a given pattern. If you also use library crosshairs.el, then it’s easier to see which window is selected as you cycle.
http://www.emacswiki.org/emacs/WindowNavigation
http://www.emacswiki.org/emacs/WindMove ==> 我偏好這個方法,跟之前提過的winner mode應該可以解決8成以上的問題了

iswitchb 及替代方案


傳統上這個指令綁在 C-x b 按鍵組合上,但是沒有對應的回卷機制,而且與一般win平台上的 C- / C-S- 組合不同,速度也慢了一點,因為多按了一次。

http://emacs-fu.blogspot.tw/2009/02/switching-buffers.html

作者的建議是 ido / icycles / anything ,它自己則寫了一個 C- 的代用品在 http://emacs-fu.blogspot.tw/2008/12/cycling-through-your-buffers-with-ctrl.html

http://www.emacswiki.org/emacs/SwitchingBuffers
http://www.emacswiki.org/cgi-bin/wiki/ControlTABbufferCycling =>這其實是想模仿win的M-的效果

Anything


http://www.emacswiki.org/Anything
http://metasandwich.com/2010/07/30/what-can-i-get-for-10-dolla-anything-el/

scroll-other-window 捲動(其它視窗)


這個意思是說,輸入焦點在視窗a,但是可以下命令讓視窗b的內容捲動。這個動作實在是時方便了,如果沒有這種動作,那麼就必需要把輸入焦點移到另外一個視窗,捲動它,再把輸入焦點移回來。傳統上這個指令綁在 C-M-v / C-M-S-v 按鍵組合上

沒有留言:

張貼留言