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 tmux
使用只需记住几个常用快捷键。
tmux所有自带命令都默认需要先按Ctrb+b,然后再键入对应的命令。
Ctrl+b原意为send-prefix,即发送前缀信号。以下简写C-b
tmux # 运行 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-name
man tmux//显示
C-b ? // 显示快捷键帮助,退出按q
C-b " // 模向分隔窗口
C-b % // 纵向分隔窗口
C-b 方向键//在各窗口间切换(注意与下一个命令的区别)
C-b C-方向键 //调整分隔窗口大小,不要松开Ctrl
C-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 & // 确认后退出 tmux
C-b ! // 把当前窗口变为新窗口
C-b 空格键 //采用下一个内置布局
C-b [ 复制(空格开始)
C-b ] 粘贴(回车结束)
C-b , 给当前窗口改名
Figure 1-1: tmux分屏帮助页(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 <或是>,但这可能需要最新的版本才支持。
Ctrl+W =//让所有的屏都有一样的高度。
Ctrl+W +//增加高度。
Ctrl+W -//减少高度。
Figure 2-1:vim分屏效果
参考:
vim的分屏功能: http://www.cnblogs.com/wanyao/archive/2011/05/31/2064857.html
百度经验Vim的分屏技巧的使用: http://jingyan.baidu.com/article/7908e85c70b25baf481ad296.html
vim入门基础:http://www.jianshu.com/p/bcbe916f97e1
转载请认证:http://blog.csdn.net/u010454729/article/details/49496381