Я використовую 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>
) і порушує фокус. Таким чином, довжина команди заміни не настільки важлива, якщо вона видаляє лише текст між заданими символами і потім переходить у режим вставки.
?"<Enter>
щоб шукати цитату назад у рядку, ви можете використовуватиF"
.F
те саме, щоf
й пошук зліва. Відповіді нижче виглядають краще для вашого питання, алеF
є корисною командою самостійно.