Как ввести ^ M в vim, когда ctrl-v используется как вставка

Мой vim использовал ctrl-v как вставку с кратким отрезком, конфликтующим с командами, нужно ctrl-v как префикс ярлыка.

Например, ^M требуется ctrl-v ctrl-m. Я могу сделать это в командной строке vim и vim без иналинизации. Но символ не перейдет в буфер из командной строки vim. :s/aaa/^M/g не работает.

Хотя, я могу использовать echo -e "\r" или no-initialized vim, чтобы обойти его.

Но как набрать этот символ в моей текущей конфигурации vim?

Ответ 1

для ввода ^M вы можете попробовать следующее:

  • Ctrl-V Enter
  • Ctrl-V Ctrl-M
  • Использование орграфа Ctrl-K C R, C R означает CR.

Ответ 2

Вы можете попробовать использовать сопоставление с исходной функцией ctrl-v:

noremap! <C-Q>  <C-V>

Но как объясняется на :h CTRL-V-alternative и отмечен ZyX комментариями, ваши проблемы могут заключаться в том, что ваш терминал захватывает ctrl-q (подробнее здесь ). Если приведенное выше отображение не работает, вы можете попробовать сопоставить что-то еще:

noremap! <leader><C-V>  <C-V>

Тогда нажатие leader (обычно \), за которым следует ctrl-v ctrl-m, должно вставить ^M в режиме insert и command.

Ответ 3

попробуйте Ctrl-Q Enter

(Это решение также работает, когда вы пытаетесь ввести орграфы по номеру в Vim)