Vi di Linux: tampilkan ^ M akhiran baris untuk file berformat DOS


10

Pada Solaris, jika Anda membuka file in vi yang memiliki ujung garis Windows, ini muncul sebagai ^ M di akhir setiap baris.

Di Linux, vi lebih pintar dan memahami format file Windows, dan tidak menampilkan ^ M.

Apakah ada pengaturan untuk membuat Linux vi berperilaku sama dengan Solaris dalam hal ini?

Masalah umum bagi kita adalah menyalin skrip shell dari kotak dev (Windows) dan lupa untuk dos2unix itu, dan kemudian menjadi bingung ketika itu tidak berfungsi dengan baik. Pada Solaris masalahnya jelas segera setelah Anda vi file, tetapi tidak di Linux.

Terima kasih.


Di Linux, vi biasanya vim Bram Moolenaar , saya berharap vi di Solaris adalah Bill Joy vi , asli, asli tetapi kurang mampu.
RedGrittyBrick

Pada saya vim, secara default saya biasanya melihat tidak ^M, tetapi kadang-kadang ada satu di akhir file.
trysis

Jawaban:


10

Coba :set ffs=unixketika memulai vi (atau atur sebagai default di vimrc) yang akan menampilkan semua karakter CR sebagai ^M.

vi menebak secara otomatis format mana yang digunakan berdasarkan apakah atau tidak memenuhi garis yang berakhir dengan hanya LF atau keduanya CR / LF.


2
@RedGrittyBrick - Di sistem saya, :set listditampilkan $di akhir semua baris (format Unix & DOS), jadi tidak membantu membedakan keduanya.
sss

@sss: Kesalahan saya, saya akan menghapus komentar.
RedGrittyBrick

2
@man - perintah ini tidak bekerja untuk saya tepatnya - saya dapatkan Not an editor command: ffs=unix- tetapi mengatur saya di jalan yang benar. Menjalankan :set ffs=unixdengan file yang terbuka di vi tidak bekerja - tidak ada kesalahan tetapi tidak ada yang terjadi. Saya memasukkan set ffs=unixfile .vimrc saya dan itu berhasil.
sss

Saya mengalami hal yang persis sama dengan @sss
SSH

Dengan demikian merusak konfigurasi pengguna yang disiapkan dengan cermat. Saya kemungkinan besar menginginkan ffsapa adanya. Tapi lihat jawabannya dari @wisbucky.
fork0

2

Untuk menampilkan akhiran baris dos untuk file saat ini:

:e +ff=unix

Ini memaksa format file untuk unix, yang akan dirender CRsebagai^M


Untuk menjadikan pengaturan ini permanen, tambahkan ke ~/.vimrc:

set ffs=unix

Perhatikan bahwa pengaturan .vimrc ffstidak ff.


Ini seharusnya :e ++ff=unix, saya percaya.
fork0

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.