Как я вставляю разрыв строки, где курсор, не вводя в режим вставки в Vim?

76
задан Stefan van den Akker 31 May 2014 в 09:59
поделиться

6 ответов

Для примера Вы дали, Вы могли использовать r , Входят для замены отдельного символа (пространство) с Входят. Затем f пространство . , чтобы продвинуться к следующему пространству и повторить последнюю команду.

В зависимости от Ваших настроек автоматического отступа, вышеупомянутое может или не может расположить оператор возврата с отступом правильно. В противном случае тогда используйте s , Вводят Вкладку Esc вместо этого, чтобы заменить пространство новой строкой, расположить строку с отступом и выйти из режима вставки. Необходимо было бы заменить второе пространство различной командой, таким образом, Вы не могли использовать '.' в этом случае.

98
ответ дан Alex 24 November 2019 в 11:19
поделиться

Это отображение разобьет любую короткую функцию, которую Вы имеете. Просто поместите свой курсор на строку и поразите 'g' в нормальном режиме:

:map g ^f{malr<CR>`a%hr<CR>`a

Это предполагает, что у Вас есть пространство после вводной фигурной скобки и пространства перед закрывающей фигурной скобкой. Посмотрите, работает ли это на Вас.

-1
ответ дан Lucas Oman 24 November 2019 в 11:19
поделиться

Vim автоматически уничтожит любой пробел направо от курсора при повреждении строки в два, в то время как autoindent (или любая другая помощь для добавления отступа) включен.

, Если Вы не хотите использовать какую-либо из тех настроек, используйте s вместо i чтобы к substitute Ваш новый текст для пробела вместо просто вставки. (Если существует несколько пробелов, помещают курсор на крайнее левое и используют cw вместо этого.)

1
ответ дан Aristotle Pagaltzis 24 November 2019 в 11:19
поделиться

При обычном расширении одного блока строки до трех строк попробуйте замену. Измените открывающую скобку в скобку/возврат и закрывающую скобку в возврат/скобку.

команда для того, чтобы заменить скобкой/возвратом скобку похожа на это:

:s/{/{\r/

, Так как Вы хотите использовать это часто, Вы могли отобразить полную последовательность на неиспользованное нажатие клавиши как это:

:map <F7> :s/{/{\r/ ^M :s/}/\r}/ ^M

, Где Вы видите , ^M в последовательности, тип [Ctrl-V] , затем нажимает входят .

Теперь с Вашим курсором где угодно на Вашей демонстрационной строке, нажмите отображенную клавишу, и возвраты каретки добавляются.

Проверка :help map-which-keys для совета относительно выбора неиспользованных нажатий клавиш для отображения.

4
ответ дан slothbear 24 November 2019 в 11:19
поделиться

Вот то, как создать макрос, который вставляет новую строку в курсоре каждый раз, когда Вы нажимаете 'g' в то время как не в режиме вставки:

Из энергии, введите:

:map g i[Ctrl+V][Enter][Ctrl+V][Esc][Enter]

, Где:

  • [Ctrl+V] средства содержат клавишу Ctrl, и 'v'
  • нажатия [Входят], средства нажимают клавишу Enter
  • [Esc], средства нажимают клавишу Esc

, Вы будете видеть следующее у основания своего окна энергии, пока Вы не нажмете, финал Войдите:

:map g i^M^[

Объяснение:

[Ctrl+V] означает, "заключают следующий символ в кавычки" - это позволяет Вам встраивать символы новой строки и символы ESC в команде.

, Таким образом, Вы отображаете 'g' ключ к последовательности:

i [Enter] [Escape]

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

Тонкие настройки:

  • можно заменить 'g' любым символом, это уже не связано с командой, которую Вы используете.
  • Добавляют больше к команде, , например, f}i^M^[O - Это будет find } и я nsert другая новая строка, затем сбегать из режима вставки, и сочиняют O пустую строку для Вас для ввода большего количества кода.
  • можно добавить команду к .vimrc или .exrc файлу для создания его постоянным. Просто опустите двоеточие с начала, таким образом, команда запускается с "карты"

, Обладают!

11
ответ дан Adam Liss 24 November 2019 в 11:19
поделиться

Простое сопоставление для разрыва строки в месте курсора нажатием Ctrl + Enter:

: nmap i

по существу вводит 'insert 'вставляет разрыв строки и возвращается в обычный режим.

поместите его в свой .vimrc файл для использования в будущем.

10
ответ дан 24 November 2019 в 11:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: