Я использую a"движение довольно часто в VIM; например, используя ca"при рефакторинге кусок кода, чтобы заменить жестко закодированный аргумент именем переменной. Проблема с этим подходом состоит в том, что a" включает ведущие пробелы, если нет пробелов :
Любые конечные пробелы включены, если их нет, тогда включается начальный пробел.
Таким образом, когда я редактирую вызов функции следующим образом:
aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3) #refactored
Я должен вручную повторно вставить пространство до того, replacedArgкак ca"удалит его.
Есть ли подобное движение, которое не включает это пустое пространство, или я могу использовать что-то еще, ca"что избавляет меня от необходимости вводить дополнительное пространство?
Ноты:
cf"делает то, что я хочу, пока строка не содержит экранированных кавычек, но требует, чтобы у меня был курсор в начале строки. Я хотел бы что-то, что я могу использовать в любом месте строки, и?"<Enter>cf"довольно неудобно печатать.- Речь идет не столько об одном
<Space>нажатии клавиши, сколько о том, что я часто поначалу забываю включить пробел, что обходится мне как минимум в четырех дополнительных нажатиях клавиш (bi<Space><Esc>) и нарушает мой фокус. Таким образом, длина команды замены не так важна, поскольку она удаляет только текст между заданными символами и затем переходит в режим вставки.
?"<Enter>чтобы использовать для поиска цитаты в обратном направлении в строке, вы можете использоватьF".Fтак же, как,fно ищет влево. Ответы ниже выглядят лучше для вашего вопроса, ноFэто полезная команда сама по себе.