Я пытаюсь использовать энергию правильно - для помощи мне я отобразил свои клавиши со стрелками на "" так, чтобы я был вынужден использовать {hjlk} для перемещений.
Это вызывает меня проблема, когда я хочу просто окружить символ пробелами, например:
"2+3" лучше отформатирован "2 + 3"
Ранее я поместил бы свой курсор по + и ввел бы:
я [пространство] [право стрелки] [пространство] [Esc]
Это - 5 нажатий.
Чтобы сделать это без стрелки, я, кажется, должен поместить курсор по + и иду:
я [пространство] [Esc]lli [пространство] [Esc]
Это - 8 нажатий.
Я могу преобразовать "литий" в "a", который уменьшает его до 7 нажатий:
я [пространство] [Esc]la [пространство] [Esc]
За исключением записи этого в макрос там лучший способ сделать его? Есть ли некоторая волшебная команда энергии, которая позволит мне делать это в меньше, чем даже 5 нажатий - и некоторый способ обобщить его так, чтобы я мог сделать это ко всем словам или символам, например, если я хочу преобразовать 3 == от 4 до 3 == 4?
Лично я считаю, что разумнее всего уничтожить то, что вы хотите окружить, а затем вставить заново.
c w "" ESC P
Очевидно, что вы можете заменить и объект, и кавычки на то, что вам нравится. Чтобы изменить только один символ + на [пробел]+[пробел], вы должны сделать
s [space] [space] ESC P
на +
Вы можете создать макрос с одним из описанных действий и вызывать его каждый раз, когда он вам нужен (как amphetamachine, предложенный, когда я писал), или вы можете просто выполнить поиск и заменить:
:%s/\(\d\)\(+\|-\)\(\d\)/\1 \2 \3/g
Вероятно, вам придется выполнить эту команду два раза потому что он будет находить только каждое второе появление +/-.
РЕДАКТИРОВАТЬ:
Это заменит все без необходимости повторного вызова:
:%s/\d\@<=+\|-\d\@=/ \0 /g
Попробуйте расположить курсор над '+' и набрать следующее:
q1i[пробел][стрелка вправо][пробел][стрелка влево][esc]q
Это запишет быстрый макрос в слот 1, который вы сможете повторно использовать, когда вам захочется, и который будет окружать символ под курсором пробелами. Вы можете повторно вызвать его с помощью @1
.
Есть и более универсальный вариант:
q1ea[пробел][esc]bi[пробел][стрелка вправо][esc]q
При нажатии @1
слово под курсором ("==" считается словом) будет окружено пробелами.
Вы можете настроить сопоставление следующим образом (нажмите ввод в визуальном режиме, чтобы обернуть пробелы):
:vnoremap <CR> <ESC>`<i<SPACE><ESC>`>la<SPACE><ESC>h
Первое, что приходит в голову после прочтения заголовка, - это surround.vim , который является отличным сценарием для выполнения всех видов полезные вещи в соответствии с тем, что вы описали.
Чтобы решить вашу конкретную проблему, я бы, вероятно, поместил курсор на + и:
s [пробел] + [пробел] [esc]
Чтобы изменить 3 == 4 на 3 == 4, I может поставить курсор на первый знак = и:
i [пробел] [esc] ww.