vim: comment rechercher/remplacer des caractères spéciaux?
Après un copier-coller de wikipedia dans vim, j'obtiens ceci:
1 A
2
3 [+] Métier agricole<200e> – 44 P • 2 C
4 [×] Métier de l'ameublement<200e> – 10 P
5 [×] Métier de l'animation<200e> – 5 P
6 [+] Métier en rapport avec l'art<200e> – 11 P • 4 C
7 [×] Métier en rapport avec l'automobile<200e> – 10 P
8 [×] Métier de l'aéronautique<200e> – 15 P
Le problème est que <200e>
n'est qu'un char.
Je voudrais savoir comment faire pour le mettre dans une recherche/remplacement (via le /
ou :
).
- quelle page est-il de toute façon?
Vous devez vous connecter pour publier un commentaire.
Vérifiez l'aide
\%u
:Ce sont des séquences que vous pouvez utiliser. On dirait que vous avez deux octets, de sorte que
\%u200e
doit correspondre à cela. De toute façon, c'est assez étrange. 20 en UTF-8 /ASCII est l'espace
caractère, et 0e est ^N. Vérifier vos paramètres de codage.
\u200e
n'est jamais codé comme\x20\x0e
en utf-8, il est codé en trois bytes\xE2\x80\x8E
, vous pouvez le tester en exécutantecho "\u200E" is# "\xE2\x80\x8E"
: elle renvoie 1 si vous avez d'encodage", " option égal à 'utf-8'. Ainsi, cette séquence n'a aucun lien avec l'espace ou saut de ligne.\u202E
est\xE2\x80\xAE
à la place (je commence à le voir un peu maintenant)echo "\u202E"[0] "\u202E"[1] ... "\u202E"[len("\u202E")-1]
ou l'automatiser à l'aide delet s="\u202E" | echo map(range(len(s)), 's[v:val]')
.Si vous souhaitez sélectionner rapidement cette étrangère caractère partout et de le remplacer /se débarrasser de lui, vous pouvez :
set hlsearch
, vous devriez ensuite voir toutes les occurances externe de caractère mis en surbrillance.:%s//something else/
remplacer
^@
:%s/\%x00//g
remplacer
^L
//Entrer le ^L à l'aide de ctrl-V ctrl-L
:%s/^L//g
se réfère: