Відповіді:
Використовувати 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
. (Не впевнений)