LINUX.ORG.RU

Alt+Left и Alt+Right

 , ,


0

1

Кто может простыми словами обьяснить почему нельзя забайндить подобные комбинации в vim и почему это правильно и хорошо. В инете одни портянки

★★★★★

портянки

ватаны реально не в теме, потому что.

Делаешь так, пишешь в insert mode: nmap (жмешь) C-v A-Left

на выходе получится:

nmap ^[[1;3D

вот эта закорлючка ^[ — непечатаемый символ, запастить сюда его нельзя, он отобразится в виме другим цветом, в итоге можно мапить на альт стрелки и всё, что хочешь.

redhat
()
Ответ на: комментарий от redhat

если работает автозакрытие скобок, он может ступить и дописать закрывающую квадратную скобку, она не нужна, вот так: http://i.imgur.com/PQiEW1P.png

redhat
()
Ответ на: комментарий от redhat

Тоесть если просто любым другим способом (например в gedit) в ~/.vimrc внести ^[[1;3D, то это в кобминациях будет значить A-Left.

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

нет. Это нужно делать прямо в вим, этот символ хоть выглядит из 2х символов, на самом деле один.

На гитхабе тоже нельзя показать, копипаст на него тоже не работает, так-то.

redhat
()
Ответ на: комментарий от redhat

когда пытаешь его сюда вставить и запостить, ЛОР ругается на:

0x1b is not a legal XML character

redhat
()
Ответ на: комментарий от redhat

^[ — непечатаемый символ

Это Ctrl+[, он же ESC, передаваемый эмулятором терминала при помощи непечатаемой части ASCII:

(из man ascii)

       Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
       ────────────────────────────────────────────────────────────────────────
       033   27    1B    ESC (escape)                133   91    5B    [
Т.ч. ^[<Esc> или <C-[>. Но для GUI-версии нужно будет создавать отдельные шорткаты, ЕМНИП через <M-…>.

anonymous
()
Ответ на: комментарий от vertexua

в termite и urxvt — работает, кажется работало во всех терминалах, нужно: нажал Ctrl+v отпустил, нажал Alt+Left отпустил, на выходе то, что на картинке.

redhat
()
Ответ на: комментарий от anonymous

Но для GUI-версии нужно будет создавать отдельные шорткаты, ЕМНИП через <M-…>.

возможно, я гвимом не пользуюсь, не в курсе.

redhat
()
Ответ на: комментарий от vertexua

я не знаю, у меня и на маке и на линуксе — всегда работало, это единственный способ, как можно настроить Alt, ну есть еще вариант костылей алиас на алиас, но лучше разобраться, почему у тебя такая базовая вещь не работает, если ты всё делаешь правильно, конечно.

redhat
()
Ответ на: комментарий от vertexua

ты видишь в виме в insert mode после C-v: ^ со смещением на этот же символ, т.е. курсор не сходит? Вим его в любом случае делает другим цветом, хоть даже цветсхема не включена.

redhat
()
Ответ на: комментарий от vertexua

У меня вводится только ^[

Потому что в обозначении клавиши есть два символа «Escape». Тебе надо:

- Выполнить в Vim'e

:inoremap <ESC> (ESC)

- Перейти в режим ввода (если что — выйти в Normal потом можно будет через Ctrl-C);

- Нажать свои клавиши;

- Скопировать появившееся в маппинг, заменяя (ESC) на <ESC>.

У меня:

<ESC><ESC>OD — Alt+Left;

<ESC><ESC>OC — Alt+Right.

Возможно, нужно будет сделать set timeoutlen=1, чтобы обычный ESC не тормозил.

anonymous
()
Ответ на: комментарий от anonymous

О, вот это сработало. Неплохо. Спасибо

У меня теперь что-то вроде

noremap ^[^[OD :tabp<CR>

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