我想用「é」來搜索並替換「< e9>」。如何用vé中的é替換<e9>
:%s/< E9>/E/G
不工作,但< E9>似乎VIM特殊字符
/Ctrl + V xe9
找到正確的「é」,但沒有找到「< E9>」
,如果我在< E9>和我類型:ASCII。我已經得到了這樣的結果:
< E> 233,六00e9,八路351
,如果我在 「E」 和I型:ASCII我已經得到了這樣的結果:
< E> 233,六00e9,八路351
我想用「é」來搜索並替換「< e9>」。如何用vé中的é替換<e9>
:%s/< E9>/E/G
不工作,但< E9>似乎VIM特殊字符
/Ctrl + V xe9
找到正確的「é」,但沒有找到「< E9>」
,如果我在< E9>和我類型:ASCII。我已經得到了這樣的結果:
< E> 233,六00e9,八路351
,如果我在 「E」 和I型:ASCII我已經得到了這樣的結果:
< E> 233,六00e9,八路351
您的文字已經包含了適當的é
字符(如圖中:ascii
命令),它只是一個由Vim不一樣,顯示它。 (您可以使用另一個文本列表器/編輯器進行驗證。)
如何顯示字符受'isprint'
選項的控制。它的幫助說:
當「編碼」是Unicode一個,非法字節從128到255的 顯示爲
<xx>
,與一個字節的十六進制值。
因此,假設您沒有更改'isprint'值,您可能在檢測編碼時遇到問題。檢查
:set encoding? fileencodings? fileencoding?
並且正確。
AFAIK <e9>
是一個單字符以某種方式損壞與編碼轉換。
在命令模式下,當您的光標位於<e9>
時,給出命令yl
。這會使字符被緩衝。然後通過發出命令/<C-R>-
(包括進入搜索模式,按CTRL+R
並按-
)來搜索被抽出的字符。您的搜索應以文本形式查找所有<e9>
字符。最後做用過去的搜索結果包含取代
%s//é/g
好的命令yl但ctrl + r - 似乎不工作。 – ChoiZ 2013-03-28 07:52:15
通常情況下,它應該可以工作,但這可能不是非法角色的情況。 – infiniteRefactor 2013-03-28 07:59:23
再試'
編碼= UTF-8 fileencodings = UTF-8 fileencoding = – ChoiZ 2013-03-28 20:01:00
@ChoiZ:您的文件可能是編碼爲LATIN1(又名ISO-8859-1,或者0xE9是é的其他編碼,如cp1252),但是您的'fileencodings'設置會導致它始終以utf-8加載(其中0xE9本身無效),因此Vim顯示''格式。您可以使用':e ++ enc = latin1'將文件加載爲latin1。如果你想將它轉換爲UTF-8,然後用':set fenc = utf-8 | w'(該字符將被寫爲兩個字節:0xC3 0xA9)進行跟蹤。 –
2013-03-29 06:18:01
偉大的答案@ChrisJohnsen!我可以指定將某些行轉換爲latin1嗎?並讓其他人在UTF8? – ChoiZ 2013-03-31 10:14:38