2011-04-07 95 views
6

「全局」選項不能按預期工作(這似乎只在最近才發生變化,但我無法找出差異的原因)。Vim全局替換(行)

鑑於行:

ABA

我發出命令:

:S/A // g^

我希望得到的結果是:

b

然而,得到的線條是:

BA

有什麼我錯過了?

+1

適合我。你的'〜/ .vimrc'中可以有一些有趣的東西嗎? – SingleNegationElimination 2011-04-07 13:32:43

+1

是的,已設置gdefault。當我改變它時,我將不得不回到版本控制來提醒自己。我忘了這件事,感覺很愚蠢! o_O – yawmark 2011-04-08 02:46:25

回答

17

您很有可能在您的.vimrc中設置了gdefault

:help gdefault

When on, the ":substitute" flag 'g' is default on. This means that 
all matches in a line are substituted instead of one. When a 'g' flag 
is given to a ":substitute" command, this will toggle the substitution 
of all or one match. 

如果不設置這個在您的配置,你可以看到它是由發行:verbose set gdefault?設置。

+1

就是這樣。感謝您的提醒!現在,如果我只記得爲什麼我首先設置gdefault ...:o) – yawmark 2011-04-08 02:44:20

2

如果輸入和命令是剛好如你所說,我看不到這種行爲的原因。

我的錢是在第二個「a」不是你想象的那樣。例如,它可能是Cyrillic "a", i.e. "а" (U+0430)。在我的屏幕上,兩者是無法區分的。

+0

感謝您的補充見解。但是,他們確實是一樣的'a'。我輸入了他們! :o) – yawmark 2011-04-08 02:45:11