开发工具 tmux 下 vim 有些行为很怪异

dfang · 2012年08月11日 · 最后由 sdpfoue 回复于 2015年04月07日 · 14091 次阅读

tmux 后,启动 vim,insert 模式下,按上下左右方向键出来是的 ABCD 几个字母, 还有 backspace 不能删除 我需要对 tmux 设置些什么吗?不用 tmux 的时候,vim 的 insert 模式很正常,怎么彻底解决 tmux 引起 vim 键位各种错乱的问题呢?

环境: ubuntu 12.04 server vim 7.3 tmux 1.6

LZ 用的是 vi 吧?

@yesmeck no,我查过,如果是 vi,:set nocp 即可

bash 下呢,会有这种情况吗?

@LarryLv 是的啊,不知道为什么啊 查了很多资料 比http://vim.wikia.com/wiki/Fix_arrow_keys_that_display_A_B_C_D_on_remote_shell 这个误打误撞的解决了,我用:set term=cons25, 这样 insert 模式方向键一按就自动切换到 Esc 模式 试试:set term=linux ,方向键变 ABCD 的问题好了 ,但是 :h term 看不太懂说的什么啊,默认:set term? 得出的结果是 screen

我按 F4(我自己设置的用来 toggle nerdtree 的快捷键)会出 S 我按照这个设置了 http://superuser.com/questions/237751/messed-up-keys-in-vim-when-running-inside-tmux set -g default-terminal "xterm" F4 的问题又好了

我担心的是 tmux 会把 vim 的某些键位映射 mess up 了,总感觉在 tmux 里运行 vim 和直接运行 vim 有点不一样....... 搞定了一个小问题,又有一个新的问题

@xds2000 ,你有靠谱一点的 tmux 设置吗?我是看到你在那个帖子里提到 tmux,才去试用的 .

我的配置环境是 ubuntu + bash + tmux + vim

@yesmeck 都有注释 我看能不能偷点下来 非常感谢

@yesmeck 我安装了没用,貌似启动 tmux 没有调用.tmux.conf ,真是奇怪了

#7 楼 @dfang 额。。你不用那个脚本,手工生成下 .tmux.conf 试试。。

@yesmeck ~/ 下有那个文件的,链接文件,我自己进入.tmux 文件用 ln -sf 创建也是没用的,你的那些按键配置都没生效,还是原来的 ctrl b , " 等有用

#9 楼 @dfang 我特地跑到 Ubuntu 12.04 Server 上去试了下,好像没碰到你说的问题。。。你可以新建个 ~/.tmux.conf ,然后自己写一条配置进去试试。

@yesmeck 嗯 弄好了 状态栏蛮炫的 不过有些还看不懂 vim 里 insert 模式下 方向键还是会变成 ABCD,ctrl+ 方向键 也有问题 Home/End 键也有 , 我知道作为使用最好不用这些,都有替代的,但我有时候忍不住按两把,现在能屏蔽也好,不要出现莫名其妙的情况就好,不知道还有其他按键会不会这样错乱呢,表示担心,目前只有碰到一个解决一个呢

awesome 表示不会有这种问题..:)

@jinleileiking 😢 忘了说 之前是先装 screen ,后装 tmux 的,我现在把 screen 卸载了,重启了再看看

@jinleileiking tmux + vim insert 模式下,你的方向键没有变成 ABCD ?

@jinleileiking tmux + vim insert 模式下,你的方向键没有变成 ABCD ?

@yesmeck 我知道不生效的原因了,是因为/tmp 文件夹有下 tmux 开头的文件,把这些都删除了就没事了

#16 楼 @dfang 额,可能是缓存。

@yesmeck 呵呵,我只要设置 window 和 pane index 的那两句就够了 因为默认的快捷键我第一次就记住了 换成 c-a 反而不习惯了

你的有没有上述我说的按键映射问题啊,我用了你的那个配置还是有的啊 比如 insert 模式下,方向键变成 ABCD 等

#18 楼 @dfang 我试了一下,只有在使用 vi 或者在 vim 没 set nocompatible 的情况下才会出现你说的问题。

#18 楼 @dfang 可以把 CpasLock 键映射成 Ctrl 键,这样按 C-a 会非常方便。

@yesmeck 这叫我情何以堪啊?set nocp 是早就设置了,因为我用了 vundle,不设根本就用不了,而且可以验证的,:set cp? 得出来的是 nocompatible

首先我应该不是 vim 配置或者 vim 插件的问题(不运行 tmux,直接 vim,insert 模式不会有方向键变 ABCD 的问题)

运行 tmux ,再运行 vim,insert 模式 方向键 有些反常,这只能怪到 tmux 头上了,找了一下午,都没找到正确的配置,用你的那个配置和 干净的配置(no .tmux.conf)都不行 , 郁闷死 , RPWT ?

@yesmeck 新建了一个用户,再试,竟然没有这个问题,真心伤不起

#16 楼 @dfang 我用的 awesome, 所以没这个问题.

#22 楼 @dfang 你最后换用户解决的问题?

#22 楼 @dfang 我最后是把 iTerm2 的和 tmux 的设置为同一个 color,在 tmux.conf 中添加了 set -g default-terminal "xterm-256color"就可以了

这帖时间好久 今天也有这个问题,和楼主非常像,楼主看看有没有用 autoclose 插件,把这个拿掉就一切正常了。参考下面这贴的第 10 条 http://vim.wikia.com/wiki/Fix_arrow_keys_that_display_A_B_C_D_on_remote_shell 我把 auto 升级到最新还是不行,我也用 vundle

需要 登录 后方可回复, 如果你还没有账号请 注册新账号