Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have been playing with tmux and I'm loving it. However, there's an annoying issue when running vim inside it.

Somehow the arrow keys get remapped, but only on certain times, like when firing up Command-T, if I try to scroll down the file list, the command is cancelled and I'm thrown into insert mode, and depending on the arrow key I pressed, an A, B, C, or D is inserted.

If I use the arrows to move through a buffer for example, they work properly.

Any ideas?

Thanks!

share|improve this question
1  
What is $TERM outside tmux? What about inside? It sounds like something is going on with application and normal keypad modes. –  Dennis Williamson Jan 25 '11 at 20:26
    
Outside tmux: xterm, inside: screen... so if I run TERM=screen vim I see the same behavior, so I must fix screen? –  Ivan Jan 26 '11 at 0:49

5 Answers 5

up vote 5 down vote accepted

Finally I found my answer here: when running screen on OSX, command+r messes up arrow keys in vim across all screens

The weird thing is I only added ONE mapping to my .vimrc file:

map <Esc>[B <Down>

But that single mapping makes ALL the arrow keys work properly...

share|improve this answer
    
Somehow... this was the only solution that worked for me on Centos 6.3 –  Patryk Aug 20 '13 at 11:20
    
This makes absolutely no sense to me, but adding a single mapping appears to fix all keys for me as well. Even stranger (at least to me) the direct mapping for the keypress in insert mode doesn't fix it (map ^[A <Up> works from pressing Ctrl+V <Up> and deleting the O, map ^[OA <Up> from pressing Ctrl+V <Up> and leaving the O doesn't). I don't get it...but whatever. My keys now work. Thank you. –  ND Geek Aug 26 '13 at 20:01

I simply added set -g default-terminal "xterm" to my .tmux.conf

This made tmux use xterm instead of screen, so life is beautiful and I don't need to worry about stomping on keybindings.

share|improve this answer
1  
Better like this set -g default-terminal "xterm-256color". Otherwise I couldn't notice when in visual mode due to limited colors. –  Macario Feb 18 '12 at 11:39
    
I had to combine this with set -g xterm-keys on. –  Dan Stahlke Nov 25 '12 at 5:03
1  
It's worth noting that the man page for tmux says to never set default-terminal. I'm not sure what the ramifications are. –  Dan Stahlke Nov 25 '12 at 5:33
1  
Given the warning that default-terminal should not be set, there is perhaps a better fix from the vim side: link. –  Dan Stahlke Nov 25 '12 at 14:34

The xterm and xterm-256color causes the BCE problem. See http://permalink.gmane.org/gmane.comp.terminal-emulators.tmux.user/1932.

share|improve this answer

Command-T does something dumb by mapping when running in a terminal. It skips the mapping if $TERM is vt100* or xterm*, but that's not a good solution.

share|improve this answer

Just in case someone happens to get mad with this solutions not working.

Check out that you don't are actually using tmux + vim + AutoClose vim plugin. Autoclose maps something that causes you having ABCD chars inserted in the previous line!

I just erased the plugin and it's working alright now

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.