LINUX.ORG.RU
ФорумTalks

vim - маппинг клавиш с Esc-последовательностями

 , , ,


2

2

Мучал гугол, но нужного ответа не нашёл.

Хочу сделать перемещение курсора по atl+hjkl. В моём случае alt+h даёт ввод ^[h. Другие буквы аналогично. Делаю map <Esc>[h - первое же нажатие выводит из режима вставки (что логично, ведь указан <Esc>). Замена на ^ ситуацию не меняет. Как сделать так, чтобы он не выходил из режима вставки?

Можно, конечно воткнуть обратно переход в режим вставки, но это ж какой оверхед будет, на каждое нажатие кнопки скакать между режимами?

★★★★

Делаю map <Esc>[h

нет, там пишешь хоткей на пустом месте нажми C-v и нужный хоткей, например: C-v A-h

http://i.imgur.com/pJggp7c.png

Он вставит туда непечатаемый символ, который нельзя закопипастить, это будет работать.

slon
()
Последнее исправление: slon (всего исправлений: 1)
Ответ на: комментарий от slon

Без разницы. Он всё так же выходит из режима вставки после первого же нажатия. alt+l вообще не сдвигает курсор, сразу выходит из режима вставки.

ekzotech ★★★★
() автор топика
Ответ на: комментарий от slon

нельзя закопипастить

В виме можно. :3

Esc, vy, Esc
Но вставляется только в пределах вима, ибо гуйня положила на esc-последовательности.

r3lgar ★★★★★
()
Ответ на: комментарий от slon

Таки нагуглил решение. Дичь, но по-другому, видимо никак.

set <A-h>=h
set <A-j>=j
set <A-k>=k
set <A-l>=l

imap h <A-h>
imap j <A-j>
imap k <A-k>
imap l <A-l>

imap <A-h> <Left>
imap <A-j> <Down>
imap <A-k> <Up>
imap <A-l> <Right>

Приходится делать двойной imap. Комбинация Alt+l не отрисовалась в браузере, но работает.

Теперь зафигачу ещё навигацию по словам и прочую мелочь.

Не знаю, сработает оно с Shift? Как вообще Shift указывать для комбинации alt+shift+o, например?

ekzotech ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.