map, cmap и прочие

и другие vi-подобные редакторы

Модератор: /dev/random

miramir
Сообщения: 3
ОС: Gentoo

map, cmap и прочие

Сообщение miramir »

Что-то у меня неправильно работает мапинг клавиш. Делаю такую строчку в ~/.vimrc

Код: Выделить всё

map <F2> <ESC>:w<CR>

по идее (по документации) должна получится привязка для всех режимов, а выходит только для нормального режима
в чём я ошибаюсь?
Спасибо сказали:

Аватара пользователя
кып
Сообщения: 77
ОС: Xubuntu

Re: map, cmap и прочие

Сообщение кып »

miramir писал(а):
30.01.2009 15:38
Что-то у меня неправильно работает мапинг клавиш. Делаю такую строчку в ~/.vimrc

Код: Выделить всё

map <F2> <ESC>:w<CR>

по идее (по документации) должна получится привязка для всех режимов, а выходит только для нормального режима
в чём я ошибаюсь?


map это для нормального, режима командной строки и режима ожидания оператора(что это хз)
так что если надо в режиме вставки то то же самое пропиши для imap

есть еще вроде map! это то же самое, что и map, но включая режим вставки. хотя насчет map! я может и ошибаюсь.
Спасибо сказали:

miramir
Сообщения: 3
ОС: Gentoo

Re: map, cmap и прочие

Сообщение miramir »

кып писал(а):
31.01.2009 01:01
map это для нормального, режима командной строки и режима ожидания оператора(что это хз)
так что если надо в режиме вставки то то же самое пропиши для imap

есть еще вроде map! это то же самое, что и map, но включая режим вставки. хотя насчет map! я может и ошибаюсь.

Спасибо, похоже чтоб примапить клавише во всех режимах придутся перебирать map, imap и ещё какую-то команду вроде. Я в одной статье читал что можно использовать map! , но у меня это не заработало.
Спасибо сказали:

Аватара пользователя
nonstop
Сообщения: 132
ОС: Slackware

Re: map, cmap и прочие

Сообщение nonstop »

miramir писал(а):
30.01.2009 15:38
Что-то у меня неправильно работает мапинг клавиш. Делаю такую строчку в ~/.vimrc

Код: Выделить всё

map <F2> <ESC>:w<CR>

по идее (по документации) должна получится привязка для всех режимов, а выходит только для нормального режима
в чём я ошибаюсь?

Нужно добавить строку

Код: Выделить всё

imap <F2> <Esc>:w<CR>li
slackware - linux for human brains
Спасибо сказали:

Аватара пользователя
кып
Сообщения: 77
ОС: Xubuntu

Re: map, cmap и прочие

Сообщение кып »

miramir писал(а):
02.02.2009 06:36
Спасибо, похоже чтоб примапить клавише во всех режимах придутся перебирать map, imap и ещё какую-то команду вроде. Я в одной статье читал что можно использовать map! , но у меня это не заработало.


Я еще порекомендую скачать русскую документацию отсюда
Она хотя от версии 6.2, но в ней наверное почти все про vim (читать не перечитать :rolleyes: ).
Спасибо сказали:

Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: map, cmap и прочие

Сообщение ZyX »

nonstop писал(а):
02.02.2009 11:37
Нужно добавить строку

Код: Выделить всё

imap <F2> <Esc>:w<CR>li
Опять же, логичнее «inoremap <F2> <C-o>:up<CR>». «<C-o>» позволит не видеть
мигание при попытке зайти за конец строки, но курсор при этом возвратиться на
прежнее место. «:up» позволит не сохранять файл, если в нём нет изменений.
«inoremap» гарантирует, что вы сможете не заморачиваться, если переназначите
какую-нибудь клавишу.
Спасибо сказали: