Frage

Von Frage Wie ein ersetzen Zeichen für eine neue Zeile in Vim? . Sie haben \ r zu verwenden, wenn Text für eine neue Zeile zu ersetzen, wie dies

:%s/%/\r/g

Aber wenn das Ende der Zeilen und Zeilenumbrüche für ein Zeichen zu ersetzen, können Sie es mögen:

:%s/\n/%/g 

Welche Abschnitt des Handbuchs dokumentiert diese Verhaltensweisen und was ist die Argumentation hinter ihnen?

War es hilfreich?

Lösung

vim docs auf Muster :

  

\r Spiele

     

\n passt eine End-of-line -     Wenn sie in einem String-Matching statt   Puffer Text ein Literal newline     Charakter angepasst ist.

Andere Tipps

http://vim.wikia.com/wiki/Search_and_replace :

  

Bei dem Suchen

     

...

     

\n ist Zeilenvorschub- \r ist CR (Carriage Return = Ctrl-M = ^M)

     

beim Ersetzen

     

...

     

\r Newline ist, \n ist ein Null-Byte (0x00).

Ein weiterer Aspekt ist, dass \0, die traditionell NULL ist, wird genommen in s//\0/ bedeutet „das ganze abgestimmte Muster“. (Was, nebenbei bemerkt, ist redundant mit, und länger als &).

  • So Sie nicht \0 können NULL bedeuten, so dass Sie verwenden \n
  • So Sie nicht \n bedeuten \n verwenden können, so dass Sie \r verwenden.
  • So Sie nicht \r können \r bedeuten, aber ich weiß nicht, wer das Zeichen absichtlich hinzufügen wollen.

-☈

:help NL-used-for-Nul

  

Technisches Detail:

     

<Nul> Zeichen in der Datei werden als <NL> im Speicher abgelegt. Im Display   sie werden als „^@“ gezeigt. Die Übersetzung erfolgt beim Lesen und Schreiben   Dateien. Um eine <Nul> mit einem Suchmuster zu entsprechen, die Sie gerade eingeben CTRL- @ oder   " CTRL-V 000". Dies ist wahrscheinlich genau das, was Sie erwarten. intern werden die   Charakter ist mit einem <NL> im Suchmuster ersetzt. Ungewöhnlich ist,   dass Typisierung CTRL-V CTRL-J auch eine <NL> einfügt, so sucht auch nach einem <Nul>   in der Datei.

{Vi nicht <Nul> Zeichen in der Datei überhaupt behandeln}

Zunächst einmal offen :h :s den Abschnitt siehe „4.2 Ersatz "die Dokumentation auf‚ändern‘. Hier ist, was der Befehl akzeptiert:

:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]

Beachten Sie die Beschreibung pattern und string

  

Für die {pattern} finden Sie unter |pattern| .
  {string} kann eine Zeichenkette, oder etwas sein
  Besondere; finden Sie unter |sub-replace-special| .

So, jetzt wissen Sie, dass die Suchmuster und Ersatz Muster unterschiedliche Regeln. Wenn Sie den Link |pattern| folgen, gelangen Sie zu dem Abschnitt, der die ganze regexp Muster verwendet in Vim erklärt.

Inzwischen |sub-replace-special| bringen Sie zu dem Unterabschnitt „4.2 Substitute“, die die Muster für die Substitution enthalten, unter denen \r für Zeilenumbruch / split ist.

(Die Verknüpfung zu diesem Teil des Handbuchs ist :h :s% )

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top