2008-10-22 31 views
44

vi將短劃線-和空格 用作命令的單詞分隔符,如dwcw在vi中自定義單詞分隔符

有沒有辦法增加下劃線_

我經常想改變包含下劃線,如改變src_branchdest_branch變量名的一部分。我最終計數字符和使用s(如3sdest),但它會更容易使用cw(如cwdest)。

+0

FWIW你可以用`ct_dest`避免計數 – Cuadue 2015-03-06 23:33:00

回答

17

如果你使用vim,你可以通過設置iskeyword選項(:he iskeyword)來改變它。如果這不是一個選項,您可以始終使用ct_而不是計數。

+0

只是vi,而不是vim。不知道ct - 這肯定會有幫助,謝謝 – 2008-10-22 12:09:25

1

您可以輸入cf_dest_並保存計數部分。

編輯:或如建議:ct_更改文字,直到下劃線字符之前。 (我更多地使用f動作,所以對我來說更自然)

或者您可以重新定義'iskeyword':help iskeyword瞭解詳情)。

0

我只是看着這個自己和添加到了我的.vimrc:

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

我的.vimrc有問題與^ |和^「,這是我的設置的默認iskeyword的一部分,所以我改變了他們的ASCII值並且工作正常。我的主要修改是將」^ _「添加到默認設置的末尾以防止vim看到下劃線作爲一個詞的一部分。

+3

僅供參考,從iskeyword中刪除下劃線可能會導致語法突出顯示。如果有人知道如何讓vim將下劃線看作是用於導航目的的非單詞字符,但不用於語法突出顯示,請告訴我。 – kbosak 2009-04-09 12:43:24

+0

您可以使用插件來獲得這種效果,例如camelcasemotion。 – 2012-05-09 08:35:46

31

有沒有辦法添加下劃線_呢?

:set iskeyword-=_ 
4

一個在這種情況下,其他好的選擇是使用camelcasemotion插件。

它增加了新的動作,b,,e,w,它們與b,ew類似地工作,除了它們識別CamelCase和snake_case字。有了它,你可以使用

c,edest 

,這將取代「src_branch」與「dest_branch」如果你的光標是在「src_branch」的第一個字符。