2010年6月22日 星期二

[Linux] screen進階用法

上一篇說到screen的基本用法,這一篇來補完一下他「分割視窗」和其他的強大功能的用法吧!基本熱鍵如下:
  • 分割視窗(split) Ctrl-a, S
  • 他是採水平分割,按幾次就分割幾個,分割10幾個也行(不過你螢幕應該沒這麼大……)
  • 切換視窗(focus) Ctrl-a, Tab
  • 切換到新的region後可以按Ctrl+a, c新增,或按上一個、下一個切換原來已開啟的…
  • 離開分割視窗(Quit) Ctrl-a, Q
  • 分割的N個視窗通通消失,只剩下你目前focus的那一個…

以上是官方正式用法,或者你也可以像我一樣,將下面這三行bindkey設定加進 .screenrc中
(這是我喜歡的按法,你也可以設成你自己的熱鍵)

bindkey "^[s" split
bindkey "^[f" focus
bindkey "^[q" only

存檔離開screen再進screen後,熱鍵變成

分割視窗: Alt+s
切換視窗: Alt+f
離開分割視窗: Alt+q

簡單多了吧!

有人問道,至於跨視窗的複製貼上怎麼用?

問的好!不巧這剛剛也被我給找出來了!在此便不藏私的一併寫出來吧!首先你得先輸入「Ctrl-a ESC」或「Ctrl-a [」進入「複製模式」(有點像vi的一般模式),進去此模式後就可以用類似vi的指令來移動游標,例如「h, j, k, l, 0, ^, $, H, M, L, G, |, w, b, e, B, E, Ctrl-u , Ctrl-d, Ctrl-b, Ctrl-f, g, %」等等(如果你的screen版本夠新,應該也是可以直接用上下左右鍵來移動才是)。

若要複製的話,在起始點和終點各按一次空格鍵,這就copy了居於中間High-light的文字並退出「複製模式」,進入「正常模式」,最後用「Ctrl-a ]」就可以貼上了。

如果要做字串搜尋的話,也只要在「複製模式」下輸入類似vi 的「/ 和?」的指令就可以了。複製和搜尋看起來很複雜,但如果你本來就有在用vi編輯器的話,這些指令操作應該覺得很親切、順手才對。

總之,分割視窗也是screen很好用的功能(我知道很多人懶得學,索性會開很多個putty視窗來切換工作,但那樣多重登入實在太佔伺服器資源了...),若再任意搭配vim的垂直分割功能(這...不會的請去問鳥哥),你就可以隨心所欲的切視窗看code了,例如下圖:


或者一邊編輯code一邊看compile的error來debug,學會用screen來開多重分割視窗,是非常實用的!


另外,使用上有時後可能會發現,screen畫面都不會動,分頁都沒反應了!
原來原因是你不小心按到了預設的鎖住螢幕組合技「組合鍵 Ctrl-a s
解決之道是按對應的組合技「組合鍵 Ctrl-a q 」來離開(Quit)

如果你想要永遠ban掉這個討厭的預設熱鍵的話,可以在.screenrc 裡面加上

bind s

這行bind掉這個組合鍵,避免誤按


# remove some stupid / dangerous key bindings
bind s
bind k
bind W
bind ^k
bind .
bind ^\
bind \\
bind ^h
bind h

以上這些是網路上建議remove掉的指令,可以一併加上…

PS:如果你真的是暫時離開想鎖住螢幕的話,可以用「組合鍵 Ctrl-a x 」,要解鎖的話要輸入Login密碼才能繼續使用,增加不少安全性!

2 則留言:

  1. hello, 在下有自已改了個 Vimperator like 的 bindkey,這裡跟您分享一下了 :P
    - 凍仁的筆記: screenrc of Vimperator-like bindkey

    回覆刪除
    回覆
    1. 哈哈 很感謝你的引用和分享呢!互相交流的感覺真棒!

      刪除

寫在參加309反核遊行之前

圖片出自:日本藝術家 奈良美智(Yoshitomo Nara) 的經典反核作品 一開始,先來聽首好聽的【 棉花糖 katncandix2 - 深黑的河 】 吧! 我一直以來都犯個毛病,就是有時會過於理性,相信「證據會說話」,換句話說就是愛當「認真魔人」,...