linux 工具——終端分屏與vim分屏
阿新 • • 發佈:2019-02-12
preface:不知不覺在終端下學習幹活一年多,終端開多了成了習慣,之前嫌麻煩沒用分屏,而當真正用起來比想象中的簡單,終端下的分屏命令
tmux及vim自帶分屏命令vsp都相當不錯,加快乾活效率。
基本使用及快捷鍵
配置:
參考:
專案主頁:http://tmux.github.io/
ubuntu下tmux用法:http://blog.csdn.net/jideljd_2010/article/details/27093725
tmux簡單教程:http://blog.csdn.net/jianbinhe1012/article/details/7741727
tmux安裝、使用、配置:http://blog.chinaunix.net/uid-26495963-id-3140087.html
分屏啟動Vim
關閉分屏
移動游標
移動分屏
螢幕尺寸
vim的分屏功能:http://www.cnblogs.com/wanyao/archive/2011/05/31/2064857.html
百度經驗Vim的分屏技巧的使用:http://jingyan.baidu.com/article/7908e85c70b25baf481ad296.html
tmux及vim自帶分屏命令vsp都相當不錯,加快乾活效率。
1、終端分屏tmux
功能:提供了強勁的、易於使用的命令列介面。
可橫向和縱向分割視窗。
窗格可以自由移動和調整大小,或直接利用四個預設佈局之一。
支援 UTF-8 編碼及 256 色終端。
可在多個緩衝區進行復制和貼上。
可通過互動式選單來選擇視窗、會話及客戶端。
支援跨視窗搜尋。
支援自動及手動鎖定視窗。
基本使用及快捷鍵
安裝簡單:sudo apt-get install tmuxFigure 1-1: tmux分屏幫助頁(C-b ?)
使用只需記住幾個常用快捷鍵。tmux所有自帶命令都預設需要先按Ctrb+b,然後再鍵入對應的命令。
Ctrl+b原意為send-prefix,即傳送字首訊號。以下簡寫C-btmux # 執行 tmux -2 以256終端執行,exit命令退出
C-b d # 返回主 shell , tmux 依舊在後臺執行,裡面的命令也保持執行狀態
tmux ls # 顯示已有tmux會話(C-b s)
tmux attach-session -t 數字 # 選擇tmux
tmux new-session -s session-name
tmux kill-session -t session-nameman tmux//顯示
C-b ? // 顯示快捷鍵幫助,退出按qC-b " // 模向分隔視窗
C-b % // 縱向分隔視窗
C-b 方向鍵//在各視窗間切換(注意與下一個命令的區別)
C-b C-方向鍵 //調整分隔視窗大小,不要鬆開CtrlC-b c//create, 生成一個新的視窗
C-b n//next,移動到下一個視窗
C-b p//previous,移動到前一個視窗
C-b l//last,移動到最後使用的視窗
C-b C-o //調換視窗位置,當前視窗和上一個視窗互換。
C-b o // 跳到下一個分隔視窗
C-b 0~9 //選擇幾號視窗C-b q // 顯示分隔視窗的編號
C-b w // 以選單方式顯示及選擇視窗
C-b s // 以選單方式顯示和選擇會話C-b t //顯示時鐘
C-b & // 確認後退出 tmuxC-b ! // 把當前視窗變為新視窗
C-b 空格鍵 //採用下一個內建佈局
C-b [ 複製(空格開始)
C-b ] 貼上(回車結束)
C-b , 給當前視窗改名
配置:
配置檔案位於:~/.tmux.conf,沒有可以自己建一個。配置檔案內容基本就是tmux命令列表。
可避免與終端快捷鍵衝突改動一些內容,如下:
#-- base --# set -g default-terminal "screen" set -g display-time 3000 set -g history-limit 65535 #---------------------------------------------- #將預設按鍵字首改為與C-i避免與終端快捷鍵衝突 set-option -g prefix C-i unbind-key C-b bind-key C-i send-prefix #---------------------------------------------- #按鍵繫結 #水平或垂直分割視窗 (C+A+ :split-window + v/h) unbind '"' bind - splitw -v #分割成上下兩個視窗 unbind % bind | splitw -h #分割成左右兩個視窗 #---------------------------------------------- #選擇分割的窗格 bind k selectp -U #選擇上窗格 bind j selectp -D #選擇下窗格 bind h selectp -L #選擇左窗格 bind l selectp -R #選擇右窗格 #---------------------------------------------- #重新調整窗格的大小 bind ^k resizep -U 10 bind ^j resizep -D 10 bind ^h resizep -L 10 bind ^l resizep -R 10 #---------------------------------------------- #交換兩個窗格 bind ^u swapp -U bind ^d swapp -D bind ^a last bind q killp #---------------------------------------------- bind '~' splitw htop bind ! splitw ncmpcpp bind m command-prompt "splitw -h 'exec man %%'" unbind s #---------------------------------------------- #定製狀態行 set -g status-left "#[fg=white,bg=blue] > #I < #[default] |" # 0:bash #set -g status-left "#[fg=white,bg=blue] > #I < #[default] |" # session-name set -g status-right "#[fg=yellow,bright][ #[fg=cyan]#W #[fg=yellow]]#[default] #[fg=yellow,bright]- %Y.%m.%d #[fg=green]%H:%M #[default]" set -g status-right-attr bright set -g status-bg black set -g status-fg white set -g set-clipboard on setw -g window-status-current-attr bright #setw -g window-status-current-bg red setw -g window-status-current-bg green setw -g window-status-current-fg white set -g status-utf8 on set -g status-interval 1 #set -g visual-activity on #setw -g monitor-activity on set -g status-keys vi #---------------------------------------------- setw -g mode-keys vi setw -g mode-mouse on #setw -g mouse-resize-pane on #setw -g mouse-select-pane on #setw -g mouse-select-window on # move x clipboard into tmux paste buffer bind C-p run "tmux set-buffer \"$(xclip -o -sel clipbaord)\"; tmux paste-buffer" # move tmux copy buffer into x clipboard bind C-y run "tmux show-buffer | xclip -i -sel clipbaord" #預設啟動應用 #new -s work # 新建名為 work 的會話,並啟動 mutt #neww rtorrent # 啟動 rtorrent #neww vim # 啟動 vim #neww zsh #selectw -t 3 # 預設選擇標號為 3 的視窗
自定義tmux窗口布局
啟動tmux時,可以按照自己已定義的方式自動開啟多個tmux分屏視窗
例:建立一個指令碼檔案
gedit ~/.tmux/mylayout
selectp -t 0 #選中第0個窗格 splitw -h -p 50 #將其分成左右兩個 selectp -t 1 #選中第一個,也就是右邊那個 splitw -v -p 50 #將其分成上下兩個,這樣就變成了圖中的佈局了 selectp -t 0 #選回第一個
在.tmux.conf 後面加上一句
bind D source-file ~/.tmux/mylayout
這樣每次進入tmux後,鍵入 Ctrl + b D (D是大寫,要按shrift,你也可以按成其他字元,只要跟tmux已經用的不衝突即可),即會自動執行mylayout指令碼,生成圖示佈局。如果 .tmux.conf 檔案不存在的話,請自己生成。注意前面有個.(點)
另外還有一些小功能,通過在.tmux.conf中新增相應的命令開啟對應的功能即可:
滑鼠可以選中窗格 set-option -g mouse-select-pane on滑鼠滾輪可以用 set-window-option -g mode-mouse on
滷煮建立指令碼時,發現無.tmux資料夾,也無~/.tmux.conf檔案,沒有嘗試,不過對於平常使用似乎沒有conf也能正常使用Figure 1-2: tmux分屏效果
參考:
專案主頁:http://tmux.github.io/
ubuntu下tmux用法:http://blog.csdn.net/jideljd_2010/article/details/27093725
tmux簡單教程:http://blog.csdn.net/jianbinhe1012/article/details/7741727
tmux安裝、使用、配置:http://blog.chinaunix.net/uid-26495963-id-3140087.html
2、vim分屏技巧
主要是sp和vsp兩個命令,在終端輸入時主要是-O和-o兩個引數,可能因為之前滷煮的vim裝了python外掛,使用分屏快捷鍵時不太方便,沒有想象中的方便,可能還沒發現vim分屏的強大吧。分屏啟動Vim
vim -On file1 file2 ...使用大寫的O引數來垂直分屏。
vim -on file1 file2 ...使用小寫的o引數來水平分屏。
註釋: n是數字,表示分成幾個屏。
關閉分屏
Ctrl+W c//關閉當前視窗。分屏
Ctrl+W q//關閉當前視窗,如果只剩最後一個了,則退出Vim。
Ctrl+W s//上下分割當前開啟的檔案。
:sp filename//上下分割,並開啟一個新的檔案。
Ctrl+W v//左右分割當前開啟的檔案。
:vsp filename//左右分割,並開啟一個新的檔案。
移動游標
Vi中的游標鍵是h, j, k, l,要在各個屏間切換,只需要先按一下Ctrl+W
Ctrl+W l//把游標移到右邊的屏。
Ctrl+W h//把游標移到左邊的屏中。
Ctrl+W k//把游標移到上邊的屏中。
Ctrl+W j//把游標移到下邊的屏中。
Ctrl+W w//把游標移到下一個的屏中。.
移動分屏
這個功能還是使用了Vim的游標鍵,只不過都是大寫。當然了,如果你的分屏很亂很複雜的話,這個功能可能會出現一些非常奇怪的症狀。
Ctrl+W L//向右移動。
Ctrl+W H//向左移動
Ctrl+W K//向上移動
Ctrl+W J//向下移動
螢幕尺寸
下面是改變尺寸的一些操作,主要是高度,對於寬度你可以使用Ctrl+W <或是>,但這可能需要最新的版本才支援。Figure 2-1:vim分屏效果 參考:
Ctrl+W =//讓所有的屏都有一樣的高度。
Ctrl+W +//增加高度。
Ctrl+W -//減少高度。
vim的分屏功能:http://www.cnblogs.com/wanyao/archive/2011/05/31/2064857.html
百度經驗Vim的分屏技巧的使用:http://jingyan.baidu.com/article/7908e85c70b25baf481ad296.html