Pertanyaan gVim menunjukkan carriage return (^ M) bahkan ketika mode file secara eksplisit adalah DOS


Saya menggunakan gVim di Windows. Kode saya menunjukkan ^M karakter di akhir baris. Saya menggunakan :set ff=dos tidak berhasil. Itu ^M karakter tetap untuk baris yang ada, tetapi tidak muncul untuk baris baru yang saya masukkan. Saya sudah beralih mode ke mac (pertunjukan ^J karakter) dan unix (juga ditampilkan ^M karakter) dan kembali ke dos. Apakah ada orang lain yang melihat ini?


75
2018-04-28 19:08


asal


Jawaban:


Ini terjadi ketika Anda memiliki campuran ujung Windows dan yang Unix. Jika Anda memiliki 100 baris, 99 adalah \ r \ n dan satu lagi \ n, Anda akan melihat 99 ^ karakter M. Perbaikannya adalah menemukan satu baris dan menggantikannya. Atau jalankan dos2unix pada file. Anda dapat mengganti akhiran Windows dengan:

:%s/\r\(\n\)/\1/g


137
2018-04-28 19:12



Anda juga dapat menjalankan:

:e ++ff=dos

Untuk menghapus ^M: Lihat Format file - Vim Tips Wiki.


40
2017-07-26 14:37



Saya biasanya menggunakan yang berikut ini untuk membersihkan akhiran baris saya:

:g/^M$/s///

Untuk mendapatkan ctrl-M saya biasanya mengetik ctrl-Q, lalu ctrl-M dan memasukkannya. (Di beberapa lingkungan mungkin ctrl-V kemudian ctrl-M.) Saya tidak tahu mengapa, tapi saya menemukan bahwa yang lebih mudah diingat daripada rq's.

Jangan lupa lakukan :set ff=dos juga, atau Anda akan berakhir menabung dengan akhiran baris UNIX.


19
2018-04-29 00:00



Saya tahu ini sudah dijawab, tetapi trik yang saya gunakan adalah

:%s/\r/\r/g

Ini menggantikan pengembalian unix carriage dengan jendela CRLF. Hanya ditambahkan jika ada orang lain yang memiliki masalah.


15
2018-05-28 19:22



Anda bisa mengabaikan karakter ini!

masukkan ini ke vimrc Anda

pertandingan Abaikan / $ $ /


6
2018-03-24 11:10



Sebenarnya apa yang berhasil untuk saya (pada windows 64-bit, gVIM: 7.2) adalah:

:set ffs=dos

bukan hanya: ff


4
2017-12-02 15:58



Menjalankan Vim 7.3 pada Windows 7. Saya menggunakan perintah berikut:

:%s/^M/\r/g

Untuk membuat ^ M saya ketik CTRL + Q lalu CTRL + M.


4
2018-05-31 16:56



Ini mungkin agak mudah bagi banyak dari Anda tetapi jika tidak, itu berguna.

Berdasarkan jawaban richq, saya menemukan ini berguna dalam vimrc saya. Catatan, yang kedua dikomentari secara normal karena membuat dd sedikit membingungkan karena Vim akan menunggu tombol lain untuk bekerja jika itu adalah perintah ex yang dipetakan.

fungsi! D2u ()
    jalankan '% s / \ r \ (\ n \) / \ 1 / g'
fungsi akhir
"map d2u:% s / \ r \ (\ n \) / \ 1 / g

Yang pertama dijalankan dengan mengetik call D2u() menjadi mantan dan yang kedua dengan menekan D2u dalam mode edit.


2
2018-01-18 14:20



Ini adalah akhiran garis CR tambahan biasanya karena menggunakan file pada sistem UNIX / DOS campuran.

Mungkin jawaban terpendek untuk menghapus satu ^ M dari ujung setiap baris, dan apa yang saya gunakan, adalah:

:%s/\r

yang setara dengan:

:%s/\r//

tetapi garis miring akhir tidak diperlukan (diasumsikan).


2
2018-06-19 11:31



mencoba banyak hal tetapi yang berikut berhasil

:%s/\r/\r/g

catatan: gunakan g jika Anda menginginkan efek pada seluruh file


0
2017-09-01 13:32