Ich kann Zeilenumbrüche in vim und iterm nicht ersetzen

408
clumsyjedi

In Vim in iTerm stelle ich häufig Probleme mit Zeilenumbrüchen fest. Wenn ich zum Beispiel eine Datei mit dem gefürchteten ^ M habe, werden die meisten Online-Tutorials sagen, dass ich zur Durchführung eines Austauschs eine reguläre Suche und Ersetzung für eine Datei wie:

%s/^M/^J/g 

Mein Problem ist, dass ich das ^ M nicht eingeben kann - wenn ich ^ V ^ M (Strg + V Strg + M) eingebe, was tatsächlich eingefügt wird, ist ^ J. Das Ergebnis dieses Austauschs ist "keine Vorkommen gefunden". Mache ich etwas falsch oder könnten VIM oder iTerm irgendwie falsch konfiguriert werden?

Einige zusätzliche Infos:

  1. Dies geschieht auch in /usr/bin/vider Terminal-App, wenn sie aktiviert set compatibleist
  2. Hier ist eine Beispielzeile durch Hexdump, die die Zeilenumbrüche nach den schließenden eckigen Klammern als Hexadezimalzeichen 0d zeigt, was meiner Meinung nach ^ M ist

00000120 3c 2f 6c 6f 63 3e 0d 20 20 3c 2f 75 72 6c 3e 0d |</loc>. </url>.|

1
Ich sollte auch darauf hinweisen, dass die Verwendung des Hex-Codes für "0d" auch ^ J erzeugt, dh "^ VX0d" erzeugt ^ J clumsyjedi vor 9 Jahren 0
Wird ^ V gefolgt von der Arbeit eingegeben? SΛLVΘ vor 9 Jahren 0
Dasselbe zeigt es ^ J clumsyjedi vor 9 Jahren 0

1 Antwort auf die Frage

0
clumsyjedi

Den Täter gefunden, sieht aus, als wäre es das Erreger-Plugin vim-sensible. Ich habe einfach Pathogen-Plugins aus ~ / vim / bundle gelöscht und erneut getestet, bis es funktioniert hat.

Thanks for closing the loop on your question. Can you expand your answer a little to explain what you did to solve it? fixer1234 vor 9 Jahren 0
Ich habe wirklich nicht viel Einblick in das Thema. Ich habe Pathogen-Plugins aus ~ / vim / bundle gelöscht und erneut getestet, bis es funktioniert hat. Vermutlich hält vim-sensible es für sinnvoll, Zeilenenden in Benutzereingaben (dh eingefügte Daten, Tastatureingaben) von Windows in den Unix-Stil zu transformieren. clumsyjedi vor 9 Jahren 0