Domanda

Ho un file con alcuni caratteri non stampabili che si presentano come ^ C ^ o B, voglio trovare e sostituire quei personaggi, come posso fare per farlo?

È stato utile?

Soluzione

dire che si desidera sostituire ^ C con C:

:%s/CtrlVC/C/g

Dove Ctrl V C mezzi di tipo V allora C tenendo Ctrl premuto.

Ctrl V consente di immettere i caratteri di controllo.

Altri suggerimenti

La rimozione solo simboli di controllo:

:%s/[[:cntrl:]]//g

La rimozione caratteri non stampabili (si noti che nelle versioni precedenti alla 8.1.1 ~ Questo rimuove caratteri non-ASCII anche):

:%s/[^[:print:]]//g

La differenza tra loro potrebbe essere visto se si dispone di alcuni caratteri non stampabile-non-controllo, per esempio larghezza zero spazio :

entrare descrizione dell'immagine qui

Prova questo dopo aver salvato il file in vim (supponendo che si sono in ambiente Linux)

:%!tr -cd '[:print:]\n'

Nessuna delle risposte qui utilizzando i caratteri di controllo del Vim lavorato per me. Ho dovuto immettere un intervallo unicode.

:%s/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]//g

Questa gamma Unicode è stato trovato su questo altro post: https://stackoverflow.com/a/8171868/231914

È possibile utilizzare:

:%s/^C//g

Per ottenere ^C Tenere premuto il tasto di controllo, premere V quindi C (Sia tenendo premuto il tasto di controllo) e apparirà la ^C. Questo troverà tutte le ricorrenze e sostituirli con nulla.

Per rimuovere sia ^C e ^B si può fare:

:%s/^C\|^B//g

È possibile utilizzare la CTRL-V prefisso di entrare, o se non sono facilmente tipizzabile, strappo e l'inserto utilizzando CTRL-R ".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top