ubuntu 默认系统配置文件位置/usr/share/byobu/profiles/tmux

来自

PC通过PuTTY连接到VPS,在使用VPS上安装的tmux时遇到了一些小问题。主要是因为PuTTY是一个终端仿真器,跟真正的终端有一定差别,需要一些额外设置。这里整理了一些遇到的问题,并提供解决方法。

开始之前先介绍一个查看按键的控制序列的方法,后面会用到。执行:

cat > /dev/null

然后按下想要查看的按键,就能看到对应的控制序列。如图一所示的 ^[[A ,就是↑方向键对应的序列。按两次Ctrl+D退出。

问题一1:F2\F3\F4无效

配置tmux使用像byobu一样的快捷键来控制窗口:F2新建窗口,F3切换到上一个窗口,F4切换到下一个窗口。配置文件如下:

## easy to swich window, like byobu
bind-key -n F2 new-window
bind-key -n F3 previous-window
bind-key -n F4 next-window

但在使用中发现,按F2\F3\F4等功能键无效,只在命令行中输入了波浪号~(或者其他符号)。

解决方法:

打开PuTTY设置界面,在Terminal –> Keyboard下,将The Function keys and keypad从默认选项“ESC[n~”更改为“Xterm R6”,如图二所示。记得保存设置,之后功能键就可用了。

用上面提到的查看控制序列的方法,可以看到默认的F2键序列是 ^[[12~ ,更改后变成了 ^[OQ

问题二:Ctrl+方向键无效

tmux中默认使用“Ctrl+b Ctrl+方向键”调整面板大小。但在PuTTY中,该按键产生的效果与“Ctrl+b 方向键”等同(即默认的选择面板快捷键)。

我们先进入tmux,然后用前面提到的查看控制序列的方法,可以看到PuTTY对于直接按“↑方向键”和“Ctrl + ↑方向键”产生的序列都是 ^[[A

各种搜索后,发现是因为PuTTY改变了Ctrl的光标键模式,使得tmux难以正确地检测出按键。好吧,完全不知道是在说什么,大致是和terminfo有关的设置,还是附上原文:

putty inverts the sense of the cursor key mode on ctrl, which is a bit hard for tmux to detect properly.

解决方法:

将下行两行代码插入配置文件.tmux.conf的最后,彻底关闭tmux之后再重新打开tmux,确保配置文件生效。

set-option -g default-terminal "xterm"
set -g terminal-overrides "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"

问题三:vim在tmux下的Ctrl+方向键和Shift+方向键

vim中用“Ctrl+方向键”进行按单词移动,用“Shift+方向键”进行选择。Google了一下,发现全是问怎么才能让vim的这两种快捷键能在tmux中工作。

解决方法:

这个问题比较麻烦,是由于PuTTY本身代码产生的问题。一个不完整的解决方法是, 在问题二解决方法的基础上 ,在tmux配置文件中加入:

set -g xterm-keys on

现在可以用“Ctrl+方向键”进行按单词移动,但“Shift+方向键”也变成了按单词移动。因为在tmux中,PuTTY对两种按键发出的编码是一样的,比如“Ctrl + ↑方向键”和“Shift + ↑方向键”的控制序列都是 ^[[1;5A 。这个目前没有什么好的解决方法,要么使用第三方编译的PuTTY改进版,要么换用其他软件。(据说mintty没有这个问题,不过我没有试过)

问题四:颜色支持不全

在设置tmux底部的状态栏背景色时,发现有一些颜色无法显示。比如下面代码,将状态栏设置为colour240,但显示效果依然是黑色的。

set -g status-bg colour240

tmux允许使用的颜色包括:black、red、green、yellow、blue、magenta、cyan、white、从colour0到colour255,以及default

解决方法(二选一):

1、一种解决方法是,export出TERM环境变量为xterm-256color。直接执行下列代码:

echo 'export TERM=xterm-256color' >> ~/.bashrc
source ~/.bashrc

2、另一种解决方法是使用-2参数启动tmux,强制tmux认为终端支持256 colours:

echo 'alias tmux="tmux -2"' >> ~/.bashrc
source ~/.bashrc

解决tmux在PuTTY下工作异常的问题的更多相关文章

  1. Android 解决双卡双待手机解析短信异常

    开发中,难免会遇到各种各样的适配问题,尤其是经过深度修改定制过的系统,有的无论是软硬件上都有很大的区别,这里不得不提到一种奇葩的机型,没错,那就是双卡双待的手机(比如XT800, A60, S8600 ...

  2. Effective Java 第三版——69. 仅在发生异常的条件下使用异常

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  3. SIGPIPE导致cronttab和shell脚本等工作异常

    cron和sh等可能被某些共享库hook,而这些共享库可能会触发SIGPIPE,导致crontab和shell工作异常,解决办法是程序忽略SIGPIPE或脚本中使用"trap '' SIGP ...

  4. 解决linux-mysql 登录时,报异常:Access denied for user 'root'@'localhost'

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/hhj724/article/details/73277506 解决linux-mysql 登录时,报 ...

  5. sqlcipher的php扩展运行在fast-cgi:php-fpm下工作不正常

    今天发现了这样的问题,php-fpm运行sqlcipher时,有些数据库工作正常,有些却不正常. 不正常的,都在日志上报错,也就是php处理异常了. 这个报错发生在执行sql语句时,通常就是sqlci ...

  6. 如何解决Windows 10系统下设备的声音问题

    如何解决Windows 10系统下设备的声音问题? 请阅读下面的说明来解决Windows 10设备上的声音问题. 1. 检查设备管理器 打开开始菜单,键入设备管理器, 从出现的结果中选择并打开它. 在 ...

  7. XE6移动开发环境搭建之IOS篇(5):解决Windows和虚拟机下Mac OSX的共享问题(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 在安装XE6 PAS ...

  8. 编写高质量代码改善C#程序的157个建议[用抛异常替代返回错误、不要在不恰当的场合下引发异常、重新引发异常时使用inner Exception]

    前言 自从.NET出现后,关于CLR异常机制的讨论就几乎从未停止过.迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题.其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题, ...

  9. Orchard官方文档翻译(四) 让Orchard在WebMatrix下工作

    原文地址:http://docs.orchardproject.net/Documentation/Working-with-Orchard-in-WebMatrix 想要查看文档目录请用力点击这里 ...

随机推荐

  1. 【推导】【线段树】hdu5929 Basic Data Structure

    题意: 维护一个栈,支持以下操作: 从当前栈顶加入一个0或者1: 从当前栈顶弹掉一个数: 将栈顶指针和栈底指针交换: 询问a[top] nand a[top-1] nand ... nand a[bo ...

  2. bzoj1002 生成树计数 找规律

    这道题第一眼是生成树计数,n是100,是可以用O(n^3)的求基尔霍夫矩阵的n-1阶的子矩阵的行列式求解的,但是题目中并没有说取模之类的话,就不好办了. 用高精度?有分数出现. 用辗转相除的思想,让它 ...

  3. bzoj 4769: 超级贞鱼 -- 归并排序

    4769: 超级贞鱼 Time Limit: 1 Sec  Memory Limit: 128 MB Description 马达加斯加贞鱼是一种神奇的双脚贞鱼,它们把自己的智慧写在脚上——每只贞鱼的 ...

  4. luoguoj 1598 垂直柱状图 模拟

    P1598 垂直柱状图 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.luogu.org/problem/show?pid=1598 ...

  5. Linux知识(2)----中文输入法安装

    Ubantu14.04在English的环境下,没有中文输入法,自带的ibus不完整.现在基于ibus框架,有几个比较好用的输入法,如sunpingyin和google pinying,还有五笔的输入 ...

  6. HashSet,TreeSet和LinkedHashSet

    Set接口 Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false. Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用 ...

  7. Circuit translates I2C voltages

    This Design Idea explores level-shifting an I2C bus from 5V/ground (positive domain) to ground/–5V ( ...

  8. chm TO html 另类方法

    因为网上下了很多chmtohtml ,都是试用版的, 转成html网页格式,总是有限制,或是不完整,我现在找到了一种折中方法,供大家参考 一,我的资源里有工具word to chm  里面有转成网页的 ...

  9. WinForm中DataGridView验证单元格输入的是数字

    转载:http://www.cnblogs.com/ganqiyin/archive/2013/02/18/2915491.html 事件:DataGridView验证单元格输入的是数字,DataGr ...

  10. WINDOWS常用端口列表

    按端口号可分为3大类: (1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务.通常这些端口的通讯明确表明了某种服务的协议.例如:80端口实际上总 ...