Я использую a"
движение довольно часто в VIM; например, используя ca"
при рефакторинге кусок кода, чтобы заменить жестко закодированный аргумент именем переменной. Проблема с этим подходом состоит в том, что a"
включает ведущие пробелы, если нет пробелов :
Любые конечные пробелы включены, если их нет, тогда включается начальный пробел.
Таким образом, когда я редактирую вызов функции следующим образом:
aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3) #refactored
Я должен вручную повторно вставить пространство до того, replacedArg
как ca"
удалит его.
Есть ли подобное движение, которое не включает это пустое пространство, или я могу использовать что-то еще, ca"
что избавляет меня от необходимости вводить дополнительное пространство?
Ноты:
cf"
делает то, что я хочу, пока строка не содержит экранированных кавычек, но требует, чтобы у меня был курсор в начале строки. Я хотел бы что-то, что я могу использовать в любом месте строки, и?"<Enter>cf"
довольно неудобно печатать.- Речь идет не столько об одном
<Space>
нажатии клавиши, сколько о том, что я часто поначалу забываю включить пробел, что обходится мне как минимум в четырех дополнительных нажатиях клавиш (bi<Space><Esc>
) и нарушает мой фокус. Таким образом, длина команды замены не так важна, поскольку она удаляет только текст между заданными символами и затем переходит в режим вставки.
replace
cursor-motions
l4mpi
источник
источник
?"<Enter>
чтобы использовать для поиска цитаты в обратном направлении в строке, вы можете использоватьF"
.F
так же, как,f
но ищет влево. Ответы ниже выглядят лучше для вашего вопроса, ноF
это полезная команда сама по себе.Ответы:
С /superuser/537453/vim-copy-quoted-string-without-whitespace : используйте
2i"
вместоa"
. Также см:help i'
.источник
Существует, в Wellle в targets.vim плагин. Цитировать соответствующую часть (внутри раздела « Цитата »):
a' a" a
источник
a"
и используетA"
для исходного поведения?В качестве альтернативы вы можете использовать текстовый объект аргумент / параметр. Теперь у Vim нет собственных текстовых объектов-аргументов, но есть несколько плагинов, которые делают:
Лично я использую свой собственный плагин argumentsmen.vim, но я слышал хорошие отзывы как о sideways.vim, так и о целях.
источник