Настройка разделителей слов в vi - PullRequest
50 голосов
/ 22 октября 2008

vi обрабатывает тире - и пробел как разделители слов для таких команд, как dw и cw.

Есть ли способ добавить подчеркивание _?

Я довольно часто хочу изменить часть имени переменной, содержащую подчеркивание, например, изменить src_branch на dest_branch. Я заканчиваю тем, что подсчитываю символы и использую s (например, 3sdest), но использовать cw (например, cwdest) будет намного проще.

Ответы [ 5 ]

35 голосов
/ 23 июня 2009

Есть ли способ добавить подчеркивание _?

:set iskeyword-=_ 
22 голосов
/ 22 октября 2008

Если вы используете vim, вы можете изменить это, установив параметр iskeyword (:he iskeyword). Если это не вариант, вы всегда можете использовать ct_ вместо подсчета.

5 голосов
/ 14 мая 2012

Еще один хороший вариант в таких случаях - использовать плагин camelcasemotion .

Он добавляет новые движения ,b, ,e и ,w, которые работают аналогично b, e и w, за исключением того, что они распознают слова CamelCase и snake_case. С ним вы можете использовать

c,edest

и это заменит "src_branch" на "dest_branch", если ваш курсор был на первом символе "src_branch".

1 голос
/ 22 октября 2008

Вы можете набрать cf_dest_ и сохранить счетную часть.

Редактировать: или как предложено: ct_ изменяет текст до правого знака подчеркивания. (Я использую движение f больше, поэтому оно пришло ко мне более естественно)

Или вы можете переопределить 'iskeyword' (:help iskeyword для деталей).

0 голосов
/ 08 апреля 2009

Я просто смотрел на это сам и добавил это в свой .vimrc:

set iskeyword=!-~,^*,^45,^124,^34,192-255,^_

У моего .vimrc были проблемы с ^ | и ^ ", который был частью iskeyword по умолчанию для моей установки, поэтому я изменил на их значения ascii, и он работает нормально. Моей основной модификацией было добавить« ^ _ »в конец настройки по умолчанию, чтобы vim не видел подчеркивания как часть слова.

...