Скажем, у меня есть эта строка кода:
$query = "SELECT * FROM table";
Есть ли команда в vi/vim, которая может мгновенно удалить все между кавычками и поместить курсор между ними, чтобы я мог начать вводить?
Скажем, у меня есть эта строка кода:
$query = "SELECT * FROM table";
Есть ли команда в vi/vim, которая может мгновенно удалить все между кавычками и поместить курсор между ними, чтобы я мог начать вводить?
Используйте ci"
, что означает: измените то, что внутри двойных кавычек.
Вы также можете манипулировать другими текстовыми объектами аналогичным образом, например:
ci'
- изменение внутри одиночных кавычекciw
- изменить внутри словаci(
- изменить внутри круглых скобокdit
- удалить внутри тега HTML и т.д.Подробнее о различных текстовых объектах vim здесь.
Вы можете выбрать между кавычками, а затем удалить (d
), изменить (c
) и т.д., используя
vi"
Аналогичным образом вы можете подставить фигурные скобки, скобки, элементы XML и т.д. таким образом:
vi(
vi{
vit
или просто изменить/удалить, выполните соответствующие di"
, ci"
и т.д. Подстановка a
для i
будет охватывать окружающие элементы (например, вы отмечаете или изменяете скобки и содержимое, например)
Из уже внутри кавычек вы можете сделать
di"
Прочитайте его как удалить внутри "
Я создал плагин 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 для более подробной информации.