tmux使用技巧
常用配置
#重新定义prefix.
set -g prefix C-l #注意这里不能使用C-; tmux中C-;和<esc>是一样的
bind-key C-l send-prefix #设置发送prefix
ubind C-b #取消快捷键绑定,这里是取消以前的快捷键绑定.
#绑定使用vim类似的hjkl进行光标在panes之间的移动.
bind-key k select-pane -U
bind-key j select-pane -D
bind-key h select-pane -L
bind-key l select-pane -R
#配置回滚的行数限制
set -g history-limit 10000
#设置可以使用Ctrl + PageUp|PageDown 进行控制台的滚动
set -g terminal-overrides ‘xterm*:smcup@:rmcup@’
#配置使用的teriminal,和颜色设置有关,一般不用设置的
set-options -g default-shell /bin/zsh
#设置复制模式,空格开始,Enter结束
setw -g mode-keys vi
#设定窗口的起始序号
set -g base-index 1
#设定窗口的需要自动调整,否则会一致向下+1,只有设置了base-index 1才可以起效.
set -g renumber-windows on
如何使用复制粘贴
在tmux里,无法使用shift + pageup 和shift + pagedown 来上下滚动终端的cache屏幕,但是有跟好的办法,
使用 prefix + [ 可以进入vim移动模式,可以使用vim键盘 hjkl和ctrl b ctrl f 来移动屏幕,也可以使用/ ? 和* 如果想要复制的话,可以使用 space 开始复制,使用 enter 结束复制, 回到tmux的命令输入状态,在这个状态,可以使用 prefix + ]来粘贴刚才复制的内容.
常用快捷键
prefix + ? 显示帮助,这个内容有点多,找个东西不方便,所有才有了这篇文章嘛
-
-
prefix +
:
(是冒号,这个设置和vim一样,只是输入的框跑到了tmux的状态栏),这个是命令输入模式,和在命令行
-
运行 tmux {command} 是一样的,这些命令也可以在 prefix + ? 里面看看, 许多快捷键其实就是对应的这些命令.
这里只需要写 {command} 不需要写 tmux的.常用命令如下:
分离终端,分离后回到shell界面,这个终端不会消失,可以通过 attach 粘帖 继续使用tmux控制那个终端.
:detach
或者使用 prefix + d
新建一个session,和分离终端是对应的,这里是在这个tmux实例中,弄出两个session,
:new
不能使用 :new session 那样会使一些版本的tmux直接退出. 使用 new-session 可以,使用 new-window建立一个新的window, 如果想让新的tmux使用新的根目录,使用 new-session -c “{dir}” .使用当前pane的目录作为新的session的根目录 new-session -c “#{pane_current_path}” -c 就是指定目录的参数 # 是在tmux中去变量的前缀.
-
prefix + d 返回到主shell,detach试的,不能在tmux里面再启用一个tmux,但是可以detach后,再起一个,使用
tmux attach 恢复到之前的detach的tmux,简写 tmux a 只能恢复到之前一个的tmux,如果多次使用了 prefix + d 后,只能使用入栈出栈的顺序进行操作了,不是很方便呢.
-
# tmux attach进入一个session以后,可以通过
prefix + s 打出所有的session列表,进行选择,或者说用.
prefix + (
-
选择上一个,使用 prefix + ) 选择下一个.
- prefix + s 这个就弥补了使用tmux attach操作detach session的缺陷,是使用列表的方式选择session,不管在那个终端运行的tmux都可以在列表里进行切换的,就是,没有名字的session很不容易找到想要的sesison.
- prefix + $ 重命名session,有了这个就可以方便的查找session了.
- prefix + space 这个嘛,比较麻烦,因为这个的作用再不同情形下是不一样的,只有一个窗格的正常键入命令的情形下是没有用的,使用 prefix + [ 进入复制和回滚模式下的时候, 再按下 space 的意思是开始复制,这是窗口可以显示选中状态,就像vim里按下了v,再按一下 space 取消复制,按下 Enter 结束复制,并回到正常输入窗口,复制选择过程中,可以使用 Ctrl + v 进入竖选模式进行选择 ,当有多个窗格的时候, prefix + space 的意思采用下一个布局,就是水平分割,竖直分割,水平主窗口,竖直主窗口,平铺轮流试试.
- prefix + c 创建一个新窗口,新窗口立刻跑到前台,在一个tmux内可以建立很多窗口,窗口默认使用正在执行的程序的名字当作窗口的名字的,方便看.
- prefix + ! 把当前的窗格变成新的窗口,这个窗口不是gnome的窗口,而是tmux内部的管理窗口,使用 prefix + w可以查看所有的窗口.
- prefix + n 下一个窗口
- prefix + p 上一个窗口
- prefix + 0~9 直接选择所指定index的窗口.
- prefix + ‘ 窗口太多了,使用0-9已经无法跳转到指定窗口了,那就使用这个把,这个是使用index直接跳转到指定的窗口的
- prefix + , 修改当期窗口的名字,方便记忆啦,窗口哪买多,只用脑子肯定是不行的了.
- prefix + w 窗口有名字了,可是使用 prefix + ‘ 又不能通过名字选择窗口,tmux满足你,使用 prefix + w可以使用列表的方式进行窗口选择.
- prefix + ” 竖直平分窗口,分割开的窗格比较窄宽.
- prefix + % 水平平分窗口,分割开的窗格比较细长.
- prefix + o 跳转到另一个窗格
- prefix + 上下左右 移动输入光标到临近的窗格.
- prefix + C_方向键 这个是调整当期窗格的大小,一行一列为单位的.
- prefix + M_方向键 这个也是调整窗格的大小,一五行为单位了.
- prefix + { 置换窗格,把当期窗格和前一个窗格置换.
- prefix + q 显示所有但前窗口内所有窗格的编号,方便直接跳转的.
- prefix + } 置换窗格,把当前窗格和前一个窗格置换.
- prefix + t 显示时钟,搞笑的吗??,用啥用?有啥用?
常用命令
说明
执行命令的方式 在命令行执行 tmux {comond} 进行执行; 在tmux的终端中,使用 prefix + : 在下方执行输入{commnd}; 在配置文件中,使用bind命令,绑定快捷键和命令之间的对应关系后,使用快捷键执行对应的命令.
常用命令
- list-keys 列出所有可以使用快捷键运行的命令.
- list-commonds 列出所有的tmux命令及其参数.
- info 列出所有session,window,pane的运行信息.
- new -s session_name 创建一个session_name的tmux session.
- attach -t {session_name} 重新启动{session_name}的tmux的session.
- list-session / ls 列出所有的tmux的session.
- kill-server 关闭tmux的服务器. 关闭所有的tmux的session.
有关tmux的working directory
work directory是在tmux new-window的时候,默认进入的目录.
working directory 是tmux的一个内部记录,这个记录,是在session建立的时候使用-c参数指定的,或者attach的时候使用-c参数指定,如果不指定,默认使用原来的working drictory.
如何修改
这个嘛,在进入session以后是不能修改的,可是,我们可以再次进入修改,使用 :list-session 列出所有的session,然后,使用 :attach-session -t {session name} -c {新的working directory} 进行重新指定working directory操作.
技巧 : 使用 :attach {留空} -c {新目录} 直接attach当前session指定目录.attach-session简写attach,attach简写t.可以使用 “#{pane_current_path}” 得到当前pane使用的目录.