Vim berusaha sangat keras untuk memahami apa pun yang Anda lakukan tanpa mengeluh. Ini menjadikannya alat yang relatif buruk untuk digunakan untuk mendiagnosis file
keluaran.
Pemberitahuan "[converted]" Vim menunjukkan ada sesuatu dalam file yang vim tidak harapkan untuk dilihat dalam pengkodean teks yang disarankan oleh pengaturan lokal Anda (LANG dll).
Yang lain sudah menyarankan
cat -v
xxd
Anda dapat mencoba mengambil karakter non-ASCII.
grep -P '[\x7f-\xff]' filename
Kemungkinan lainnya adalah akhiran baris non-standar untuk platform (yaitu CRLF atau CR) tetapi saya berharap file
untuk mengatasinya dan laporkan "file teks DOS" atau yang serupa.
Jika Anda menjalankan file -D filename
, file
menampilkan informasi debug, termasuk pengujian yang dilakukannya. Menjelang akhir, ini akan menunjukkan tes apa yang berhasil menentukan jenis file.
Untuk file teks biasa, tampilannya seperti ini:
[31> 0 regex,=^package[ \t]+[0-9A-Za-z_:]+ *;,""]
1 == 0 = 0
ascmagic 1
filename.txt: ISO-8859 text, with CRLF line terminators
Ini akan memberi tahu Anda apa yang ditemukan untuk menentukan jenis pantomim itu.
Saya menemukan masalah menggunakan pencarian biner untuk menemukan baris yang bermasalah.
head -n {1/2 line count} file.cpp > a.txt
tail -n {1/2 line count} file.cpp > b.txt
Menjalankan file
terhadap setiap bagian, dan mengulangi prosesnya, membantu saya menemukan garis yang menyinggung. Saya menemukan Kontrol +P (^P
) karakter yang tertanam di dalamnya. Menghapusnya memecahkan masalah. Saya akan menulis sendiri skrip Perl untuk mencari karakter ini (dan perluasan lainnya) di masa mendatang.
Terima kasih banyak untuk semua orang yang memberikan jawaban untuk semua tips!