2013-11-20 4 views
0

Допустим, у меня есть файл, который содержит только эти строки:Выход из режима вставки по Ctrl + C

This strings 
need to be commented 

В то время как в обычном режиме я исполняю эту цепочку команд:

ггCtrl +vJI//

И теперь, если я нажимаю Ctrl +с я буду иметь это

//This strings 
need to be commented 

, но если я нажимаю Esc Я буду иметь это

//This strings 
//need to be commented 

Почему результаты отличаются?

+0

Какую версию Vim вы используете? Я не могу воспроизвести это. Для меня ведет себя точно так же, как и i_^c не отображается в моем env. –

+0

Ответ на [В чем разница между и в vim?] (Http://stackoverflow.com/q/80677). – glts

ответ

3

Согласно справке для i_Ctrl-c, при выходе из нормального режима с помощью Ctrl + C, ВЬЮТ не вызывает InsertLeave события, которое, как я думаю, добивает вставку.

Обход это переназначить Ctrl + C к Esc

noremap <C-c> <Esc> 
+0

Возможно, лучше всего сделать это отображение только в режиме вставки. 'inoremap ...' – progo

+1

Следует отметить, что '' и '' не эквивалентны. Однако '' равнозначно ''. –

+0

@progo, только для режима вставки лучше использовать 'inoremap', но я не вижу никаких проблем при настройке этого поведения для всех режимов. – rpeshkov

Смежные вопросы