Περισσότερα
Πώς να αντικαταστήσετε έναν χαρακτήρα με μια νέα γραμμή στον Vim
Προσπαθώ να αντικαταστήσω κάθε ,
στο τρέχον αρχείο με μια νέα γραμμή:
:%s/,/\n/g
Αλλά εισάγει κάτι που μοιάζει με ^@
αντί για πραγματική νέα γραμμή. Το αρχείο δεν είναι σε λειτουργία DOS ή οτιδήποτε άλλο.
Τι πρέπει να κάνω;
Αν είστε περίεργοι, όπως εγώ, ελέγξτε και την ερώτηση Γιατί το \r είναι μια νέα γραμμή για τον Vim;.
1859
3
Χρησιμοποιήστε
\r
αντί για\n
.Η αντικατάσταση με
\n
εισάγει έναν μηδενικό χαρακτήρα στο κείμενο. Για να λάβετε μια νέα γραμμή, χρησιμοποιήστε\r
. Ωστόσο, όταν αναζητάτε μια νέα γραμμή, εξακολουθείτε να χρησιμοποιείτε το\n
. Αυτή η ασυμμετρία οφείλεται στο γεγονός ότι το\n
και το\r
κάνουν ελαφρώς διαφορετικά πράγματα:Το
\n
ταιριάζει με το τέλος της γραμμής (newline), ενώ το\r
ταιριάζει με το carriage return. Από την άλλη πλευρά, στις αντικαταστάσεις το\n
εισάγει έναν μηδενικό χαρακτήρα, ενώ το\r
εισάγει μια νέα γραμμή (ακριβέστερα, αντιμετωπίζεται ως η είσοδος ). Ακολουθεί ένα μικρό, μη διαδραστικό παράδειγμα για να το δείξουμε αυτό, χρησιμοποιώντας τη δυνατότητα γραμμής εντολών του Vim (με άλλα λόγια, μπορείτε να αντιγράψετε και να επικολλήσετε τα παρακάτω σε ένα τερματικό για να το εκτελέσετε). Τοxxd
δείχνει ένα hexdump του αρχείου που προκύπτει.Πρέπει να χρησιμοποιήσετε
Για να λάβετε τον χαρακτήρα
^M
, πατήστε CtrlΤο
\r
μπορεί να κάνει τη δουλειά εδώ για εσάς.