Переплутані ключі в vim при запуску всередині tmux


9

Я грала з tmux і люблю це. Однак виникає дратівлива проблема під час запуску vim всередині нього.

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

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

Будь-які ідеї?

Дякую!


1
Що $TERMзовні tmux? А як всередині? Здається, щось відбувається з додатком та звичайними режимами клавіатури.
Призупинено до подальшого повідомлення.

Зовні tmux: xterm, всередині: screen ... тож якщо я запускаю, TERM=screen vimя бачу таку саму поведінку, тож я повинен виправити екран?
Іван

Відповіді:


13

Я просто додав set -g default-terminal "xterm"до свого .tmux.conf

Це змусило tmux використовувати xterm замість екрану, тож життя прекрасне, і мені не потрібно турбуватися про тупання на клавіатурних вкладках.


5
Краще так set -g default-terminal "xterm-256color". Інакше я не міг помітити, коли у візуальному режимі через обмежені кольори.
Макаріо

1
Мені довелося це поєднувати set -g xterm-keys on.
Dan Stahlke

4
Варто зауважити, що сторінка man для tmux каже ніколи не встановлювати default-terminal. Я не впевнений, що таке наслідки.
Dan Stahlke

1
З огляду на попередження, яке default-terminalне слід встановлювати, можливо, краще виправити з боку vim: посилання .
Dan Stahlke

У моєму випадку не працює ...
Blaszard

6

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

Дивна річ - я лише додав ОДНЕ відображення до мого .vimrc-файлу:

map <Esc>[B <Down>

Але це єдине відображення змушує ВСІ клавіші зі стрілками працювати належним чином ...


Яким - то чином ... це було єдине рішення , яке працювало для мене на Centos 6.3
Patryk

Це абсолютно не має сенсу для мене, але додавання єдиного відображення, як видається, виправить усі ключі і для мене. Навіть незнайоме (щонайменше для мене) пряме відображення натискання клавіш у режимі вставки не виправляє це ( map ^[A <Up>працює від натискання клавіш Ctrl + V <Up> та видалення O, map ^[OA <Up>натискання Ctrl + V <Up> і залишення O doesn 'т). Я не розумію ... але що б там не було. Зараз мої ключі працюють. Дякую.
ND Geek


1

Про всяк випадок, якщо хтось злий з цього рішення, це не працює.

Переконайтеся, що ви насправді не використовуєте плагін tmux + vim + AutoClose vim. Автозакривання відображає щось, що спричиняє вставлення символів ABCD у попередній рядок!

Я просто стер плагін, і він працює зараз добре


Дякую! Це було для мене. Я в кінцевому підсумку використовував цей плагін автозакриття . Він забезпечує аналогічну функціональність.
ollpu

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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.