解决tmux在PuTTY下工作异常的问题

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:[email protected]:[email protected]"

问题三: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

时间: 2024-12-09 10:32:33

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

解决QT5.3.1下触控笔无法工作的问题

刚进新公司,据开发人员说存在QT5.3.1下触控笔无法工作,而在QT5.2.1下能正常工作,研究了一下. Steps: 1. 首先当然是看下问题是否真的存在.测试情况: 环境 结果 备注 QT5.2.1, win 8.1 32bit, mingw 触控笔正常工作 QT5.3.1, win 8.1 32bit, mingw 触控笔无法工作 用手指可以正常触控 2. 目前的情况来看应该是QT发布QT5.3.x时引入的新BUG,决定到QT-PROJECT上的BUGREPORTS搜下是否已经有此BUG,

解决tmux在非root下无法正常运行的问题

strace tmux 跟踪发现提示无权限操作 同时在桌面下无法使用lxterminal, gnome-terminal等, 查找archlinux官方论坛发现跟pts有关 因为现在使用的是systemd会自动处理pts 因些在/etc/fstab中 去除 devpts                 /dev/pts      devpts    defaults            0      0 解决tmux在非root下无法正常运行的问题

CentOS下yii异常提示某个文件夹没有写的权限

CentOS下yii异常提示某个文件夹没有写的权限,明明给了最高的777权限,却一直提示没有写的权限.弄了好久,才明白是selinux作怪. 解决方法1:懒人方法,关闭selinux.比如 setenforce 0  等等... 生产环境中,基于安全性的考虑,不建议关闭selinux 解决方法2:彻底解决:chcon -R -t httpd_sys_content_t /your yii app dir.

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

XE6移动开发环境搭建之IOS篇(5):解决Windows和虚拟机下Mac OSX的共享问题(有图有真相) 2014-08-20 20:28 网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的内容.傻瓜式的表达来告诉你想要的答案. 在安装XE6 PAServer前,我们先解决Windows和虚拟机下Mac的文件共享问题,由于虚拟机和我们安装的XE6是同一台电脑,所以此问题很好解决.网上相传有很多的共享大法,但是在WIN7这种权限管制得过份的系统下显得相对复杂了,

解决php 5.4下dedecms登陆后台空白,标题不能为空错误

这两天有人反应新版的php-fpm的php版本为5.4.7对dedecms5.6兼容性不好. dedecms安装完成后会出现登陆后台空白,发布文章时提示"标题不能为空". 1.解决dedecms登陆后台空白错误因为php5.4的版本废除了session_register,所以需要去掉session_register函数 修改:"include/userlogin.class.php",注释掉session_register,修改后如下//@session_regis

解决Xilinx_ISE在Win8下打开崩溃闪退的方法

解决Xilinx_ISE在Win8下打开崩溃闪退的方法 在64位windows8或者8.1上安装xilinx ise之后,加载 licence或者保存文件的时候,ise应用程序就会崩溃,出现闪退的情况. 修复方法: 第一步: 找到xilinx安装文件下的子文件,我的是安装在D盘. [plain] view plaincopy D:\Xilinx\14.4\ISE_DS\ISE\lib\nt64 在这个文件夹中搜索文件 libPortability 会出来两个文件 [plain] view pla

[Ubuntu/pip] 解决 pip 安装 lxml 出现 x86_64-linux-gnu-gcc 异常

安装 pip : $ wget https://bootstrap.pypa.io/get-pip.py ... $ sudo python get-pip.py install 使用 pip 安装/升级 lxml(升至 3.3.5) 时出现以下报错: "error: command 'x86_64-linux-gnu-gcc' failed with exit status 1" 这是因为一些依赖包没有安装,可以使用以下命令更新依赖包: $sudo apt-get build-dep

解决IE和firefox 下flash盖住div的问题(转载)

原文地址:http://www.oschina.net/question/171410_26563 做的企业站 顶部是flash的滚动图片. 右侧是在线客户,但是flash盖住了在线客户的div 网上搜索解决方法如下: <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/

ubuntu 下mysql异常修复 完全卸载与重装

在ubuntu下尝试mysql,想设置默认字符集来着,结果最终把mysql弄坏了,每次执行:“mysql -u root -p”的时候,就会报错:“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'”. Stackverflow上有类似的提问,但是他这个只是/var/run/mysqld下的socket丢了,在/var/lib/mysql下还能找到