Что команда (команды) Vim может использоваться для заключения слов в кавычки/закрытия кавычки?

Как я могу быстро заключить в кавычки/закрыть кавычки слова и заключение в кавычки изменения (например, от ' кому: ") в Vim? Я знаю о surround.vim плагине, но я хотел бы использовать просто Vim.

184
задан dreftymac 15 June 2018 в 14:01
поделиться

5 ответов

Surround.Vim будет вашим самым простым ответом. Если вы действительно настроен на это, вот несколько примеров для того, что вы можете сделать. Не обязательно самый эффективный, но вот почему Surround.Vim был написан.

  • Цитировать слово, используя отдельные кавычки
    CiW'CTRL + R "'
    • CIW - Удалить слово курсор включен и в конечном итоге в режиме вставки.
    • - Добавить первую цитату.
    • Ctrl + R " - Вставьте содержимое реестра » , ака последний янк / удаление.
    • ' - Добавить цитату закрытия Отказ

  • Отказ от слова, которое заключено в отдельные цитаты
    di'hpl2x
    • di ' - Удалите слово, заключенное по одним цитатам.
    • HP - перемещайте курсор на одно место (сверху открывающегося цитаты) и поместите только удаленный текст перед цитатой.
    • l - Переместите курсор на одно место (сверху открывающей цитаты).
    • 2x - Удалите две цитаты.

  • Измените отдельные цитаты в двойные кавычки
    VA ': S / \% V' \% V / "/ G
    • VA ' - визуально выберите цитируемое слово и цитаты.
    • : S / - начать замену.
    • \% V '\% v - соответствует только одиночным цитатам, которые находятся в визуально выбранной области.
    • / «/ G - замените их все с двойными кавычками.
230
ответ дан 23 November 2019 в 05:55
поделиться

Как насчет этого?

 :%s/\'/"/g
0
ответ дан 23 November 2019 в 05:55
поделиться

Вот некоторое сопоставление, которое может помочь:

:nnoremap <Leader>q" ciw""<Esc>P
:nnoremap <Leader>q' ciw''<Esc>P
:nnoremap <Leader>qd daW"=substitute(@@,"'\\\|\"","","g")<CR>P

, если вы не изменили MapLeader Переменная, затем активируйте отображение \ Q » \ Q ' или \ Qd . Они добавляют двойную цитату вокруг слова под курсором, одинокая цитата вокруг слова под Курсор, удалить любые цитаты вокруг слова под курсором соответственно.

27
ответ дан 23 November 2019 в 05:55
поделиться

Дополнение к другим командам, это приложит все слова в строке в двойных цитатах (согласно вашему комментарию)

:s/\(\S\+\)/"\1"/

или если вы хотите уменьшить количество обратных язвище, вы можете поставить \ v ( Очень волшебный) модификатор в начале шаблона

:s/\v(\S+)/"\1"/
26
ответ дан 23 November 2019 в 05:55
поделиться

Я не знаю какой-либо встроенной команды VIM для этого, но с использованием R "F'R" , чтобы изменить из «на» и R'F » R ', чтобы измениться от «на» работает, если вы будете стоять на первом или ». Команда R ' заменяет любой символ под вашим курсором с помощью «, и перемещается вперед к следующему ».

5
ответ дан 23 November 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: