Я вижу несколько (возможно, неоптимальных) решений:
курсор в первом символе в первой строке:
- D - удалить условие
if
, но оставить курсор в той же позиции (не удалять строку)
- J - присоединить следующую строку к текущей
- A - добавить пробел и выйти в обычный режим
- p - паста
if
условие
- , а затем удалите оставшийся конец с помощью jdd
курсор в первом символе в первой строке, как и ранее:
- j - перейти к следующей строке
- dd - удалить эту строку
- k - вернуться в
if
состояние
- P - вставить удаленную строку перед реальной строкой, курсор должен быть помещен на вставленную строку
- J - присоединить следующую строку к текущей
- == или << </kbd> - текущая строка без отступа
- , а затем удалите оставшийся конец с помощью jdd
другое решение:
- j - перейти ко второй строке
- J D - соединить строку со следующей, удалить то, что было присоединено
- dd - удалить текущую строку
- k - перейти к предыдущей строке
- P J << </kbd> - вставлять, объединять и отменять смещение
Это, вероятно, не оптимально, но я делаю это без раздумий, потому что большинство этих команд находятся в моей мышечной памяти (вы не думаете, как перемещаться вокруг вас, как выдергивать / удалять и вставлять большую часть времени, и также полезно помнить о присоединении).
Если в конфигурации включено virtualedit
вместо A , вы можете $ , но я нахожу $ труднее в использовании, чем A , за которым следует Ctrl - [ (аналогично ESC).
В качестве совета: если вы используете некоторые заглавные буквы, попробуйте объединить их, если это возможно, поэтому вам нужно только удерживать нажатой клавишу Shift, а затем выполнять некоторые команды, вместо того, чтобы смешивать верхнюю и нижнюю буквы и нажимать две клавиши в время (верхняя буква - 2 нажатия клавиши, одна - Shift). Однажды я нашел комбо полезным для перезапуска сервера в консоли Ctrl + cpj, который отправляет Ctrl + c, Ctrl + p (предыдущая команда) и Ctrl + j (клавиша Enter) одним нажатием Ctrl. С тех пор я пытаюсь найти похожую на Vim комбинацию, экономящую время, в основном с помощью Shift, так как Ctrl редко используется в Vim.