8

Я играл с tmux и мне это нравится. Однако при запуске vim внутри него возникает досадная проблема.

Каким-то образом клавиши со стрелками перераспределяются, но только в определенные моменты времени, например при запуске Command-T, если я пытаюсь прокрутить список файлов вниз, команда отменяется, и меня переводят в режим вставки, и в зависимости от клавиши со стрелкой Я нажал, A, B, C или D вставлен.

Если я использую стрелки для перемещения, например, через буфер, они работают правильно.

Есть идеи?

Спасибо!

6 ответов6

11

Я просто добавил set -g default-terminal "xterm" в мой .tmux.conf

Это заставило tmux использовать xterm вместо экрана, так что жизнь прекрасна, и мне не нужно беспокоиться о том, как надо нажимать на клавиши.

6

Наконец, я нашел свой ответ здесь: при запуске экрана в OSX команда +r портит клавиши со стрелками в vim на всех экранах

Странно то, что я только добавил ОДНО сопоставление в мой файл .vimrc:

map <Esc>[B <Down>

Но это единственное отображение заставляет ВСЕ клавиши со стрелками работать должным образом ...

1

Просто на случай, если кто-то разозлится из-за того, что это решение не работает.

Убедитесь, что вы на самом деле не используете плагин tmux + vim + AutoClose vim. Автоматически закройте карты, что приведет к вставке символов ABCD в предыдущую строку!

Я просто стер плагин, и теперь он работает нормально

1

Xterm и xterm-256color вызывают проблему BCE. См. Http://permalink.gmane.org/gmane.comp.terminal-emulators.tmux.user/1932.

0

Command-T делает что-то глупое, отображая при запуске в терминале. Он пропускает отображение, если $ TERM равен vt100 * или xterm *, но это не очень хорошее решение.

0

Для тех людей, которые хотят переместить курсор в режиме командной строки, посмотрите этот пост в блоге. Я добавил восемь строк в свой vimrc;

" Needed for tmux and vim to play nice
" Needed for tmux and vim to play nice
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>

" Console movement
cmap <Esc>[A <Up>
cmap <Esc>[B <Down>
cmap <Esc>[C <Right>
cmap <Esc>[D <Left>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .