Ответы:
Использование ci"
, что означает: изменить то, что находится внутри двойных кавычек.
Вы также можете аналогичным образом манипулировать другими текстовыми объектами, например:
ci'
- изменить внутри одинарных кавычекciw
- изменить внутри слова ci(
- заменить внутри скобокdit
- удалить внутри тега HTML и т. д.Подробнее о различных текстовых объектах vim здесь .
F"ci"
.
Вы можете выбрать между кавычками, а затем удалить ( d
), изменить ( c
) и т. Д., Используя
vi"
Точно так же вы можете заменить фигурные скобки, скобки, элементы XML и т. Д. Таким образом:
vi(
vi{
vit
или просто изменить / удалить сделайте соответствующие di"
и ci"
т. д. Замена a
на i
будет охватывать окружающие элементы (например, вы помечаете или изменяете скобки и содержимое)
Я сделал плагин vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
Он предоставляет текстовые объекты для ближайших пар цитат любого типа и поддерживает кавычки, занимающие несколько строк. Использование только iq
илиaq
позволяет вам работать с содержимым одинарных ('), двойных (") или обратных (`) кавычек, которые в данный момент окружают курсор, находятся перед курсором или позади него (в указанном порядке предпочтения) Другими словами, он прыгает вперед или назад, когда это необходимо, чтобы добраться до кавычек.
Это легче понять, посмотрев на примеры (курсор отмечен значком |
):
foo '1, |2, 3' bar
:; после нажатияdiq
:foo '|' bar
foo| '1, 2, 3' bar
:; после нажатияdiq
:foo '|' bar
foo '1, 2, 3' |bar
:; после нажатияdiq
:foo '|' bar
foo '1, |2, 3' bar
:; после нажатияdaq
:foo | bar
foo| '1, 2, 3' bar
:; после нажатияdaq
:foo | bar
foo '1, 2, 3' |bar
:; после нажатияdaq
:foo | bar
Приведенные выше примеры даны для одинарных кавычек, плагин точно так же работает для двойных (") и обратных (`) кавычек.
Вы также можете использовать любые другие операторы: ciq
, diq
, yiq
, viq
и т.д.
Пожалуйста, посмотрите на страницу github, указанную выше, для получения более подробной информации.
Уже внутри цитат вы можете сделать
di"
Прочтите как удалить внутри "
В дополнение к ответу Брайана вы также можете p
(вставить) и y
(выдернуть) новое значение, поэтому, если вы хотите заменить значение внутри кавычек другим значением, вы можете сделать yi"
выбор, который вы хотите скопировать, vi"
чтобы выбрать область которое вы хотите заменить, а затем просто p
правильно заменить значение.
Выбранный ответ подходит ТОЛЬКО для ViM, но НЕ для vi. Вопрос неточен еще и потому, что автор не упомянул начальную позицию курсора. Если мы предположим, что курсор находится внутри двойных кавычек, то для vi ответ будет:
T"ct"
Куда:
T "- вернуться сразу после символа"
c - изменить команду
t "- укажите конечную позицию для команды c, где она должна прекратить стирание символов, другими словами диапазон для изменения
vim
, но НЕvi
. (Не уверен)