Чи є рух, подібний до ", який ніколи не включає провідні пробіли?


10

Я використовую a"рух досить часто in vim; наприклад, використовуючи ca"під час рефакторингу фрагмента коду для заміни твердокодованого аргументу на ім'я змінної. Проблема такого підходу полягає в тому, що a" включає провідне пробілеве місце, якщо немає пробілу пробілу :

Будь-який пробіл білого кольору включений, якщо його немає, то включається провідний пробіл білого кольору.

Таким чином, коли я редагую функцію виклику так:

aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3)    #refactored

Мені потрібно вручну вставити пробіл раніше, replacedArgоскільки ca"його видаляється.

Чи є подібний рух, який не включає цей пробіл, або щось інше, що я можу використовувати замість цього ca", рятує мене від необхідності вводити додатковий простір?

Примітки:

  • cf"робить те, що я хочу, доки рядок не містить жодних прокладених лапок, але вимагає від мене курсором на початку рядка. Мені б хотілося щось, що я можу використовувати з будь-якого місця в рядку, і ?"<Enter>cf"це досить незручно набирати.
  • Це менше про один <Space>натискання клавіші і більше про те, що я спочатку забуваю включити простір, що коштувало мені щонайменше чотирьох додаткових натискань клавіш ( bi<Space><Esc>) і порушує фокус. Таким чином, довжина команди заміни не настільки важлива, якщо вона видаляє лише текст між заданими символами і потім переходить у режим вставки.

1
Замість того, ?"<Enter>щоб шукати цитату назад у рядку, ви можете використовувати F". Fте саме, що fй пошук зліва. Відповіді нижче виглядають краще для вашого питання, але Fє корисною командою самостійно.
Літіс

Відповіді:



10

Є плагін Wellle в targets.vim . Процитуйте відповідну частину (всередині розділу " Цитата "):

a' a" a

  • Виберіть пропозицію.

  • Це переосмислює текстовий об'єкт Vim за замовчуванням для підтримки пошуку.

  • На відміну від текстових об'єктів цитати Віма, це не включає навколишній пробіл .


Схоже, цей плагін перекриває a"і використовує A"для оригінальної поведінки?
Martin Tournoij

... хоча, я вважаю, також дозволяють шукати "ліворуч"
VanLaser

5

В якості альтернативи можна використовувати аргумент / параметр текстового об'єкта. Тепер у Vim немає власних текстових об’єктів аргументу, але є кілька плагінів, які роблять:

Особисто я використовую власний плагін, argumentative.vim, однак я чув хороші речі як про sideways.vim, так і targets.vim.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.