Adakah yang tahu tentang editor teks di Linux yang memungkinkan saya melihat jeda baris dan carriage return? Apakah Vim mendukung fitur ini?
vim
newline
text-editor
line-breaks
carriage-return
usertest
sumber
sumber
Jawaban:
:set list
di Vim akan menampilkan spasi putih. Akhir baris ditampilkan sebagai '$
' dan carriage return biasanya ditampilkan sebagai '^M
'.sumber
:set list
TIDAK akan menampilkan^M
karakter (CR). Menyediakan-b
opsi untuk vi / vim akan berhasil. Atau, setelah vim dimuat, ketik::e ++ff=unix
:set nolist
Untuk tidak setuju dengan jawaban resmi:
:set list
tidak akan menampilkan ^ M karakter (CRs). Memasok opsi -b ke vi / vim akan berhasil. Atau, setelah vim dimuat, ketikkan:e ++ff=unix
.sumber
:help edit
menunjukkane[dit]! [++opt] [+cmd]
. Dan:help ++e
mengatakan argumen [++ opt] dapat digunakan untuk memaksa nilai 'fileformat' [..] .:set list
menunjukkan baris baru ($
),:e ++ff=unix
menunjukkan CR (^M
); jika Anda ingin melihat keduanya,:set list
maka:e ++ff=unix
:set ff=unix
tahu Vim untuk mengubah akhir baris menjadi gaya unix (sebagai bagian dari pengaturan format file), sehingga karakter ^ M sudah tidak ada lagi (dan tidak ditampilkan).:e ++ff=unix
memintanya untuk secara paksa mengatur format file sebagaiunix
tanpa benar-benar mengubah konten. Jadi, vim membacanya seperti file Unix, melihat karakter CR sebagai ekstra dan menampilkannya sebagai ^ M.vim
untuk beberapa alasan ... Maksud saya tidak ada-b
pilihan, atau:e ++ff=unix
ketika di dalam :(VI menunjukkan baris baru (karakter LF, kode
x0A
) dengan menunjukkan teks berikutnya pada baris berikutnya.Gunakan
-b
sakelar untuk mode biner. Misalnyavi -b filename
atauvim -b filename --
.Ini kemudian akan menampilkan karakter CR (
x0D
), yang biasanya tidak digunakan dalam file gaya Unix, sebagai karakter^M
.sumber
Unix
lingkungan. Tapi saya ingin diperingatkan tentang ujung tipe Windows jika ada dalam file. Apakahvi -b filename
atau:set binary
hanya akan menunjukkan^M
apakah itu file jenis windows dan tidak ada akhiran baris lain?Hanya untuk mengklarifikasi mengapa
:set list
tidak akan menunjukkan CR sebagai^M
tanpae ++ff=unix
dan mengapa:set list
tidak ada hubungannya dengan CR^M
.Secara internal ketika Vim membaca file ke dalam buffernya, ia mengganti semua karakter akhir baris dengan perwakilannya sendiri (sebut saja
$
itu). Untuk menentukan karakter apa yang harus dihapus, ia pertama-tama mendeteksi dalam akhiran format apa yang disimpan dalam file. Jika hanya ada CRLF'\r\n'
atau hanya CR'\r'
atau hanya'\n'
karakter akhir baris LF , maka'fileformat'
diatur kedos
,mac
danunix
masing - masing.Ketika
list
opsi diatur, Vim menampilkan$
karakter ketika jeda baris terjadi, apa punfileformat
opsi yang terdeteksi. Itu menggunakan representasi internal sendiri dari jeda baris dan itulah yang ditampilkannya.Sekarang ketika Anda menulis buffer ke disk, Vim menyisipkan karakter akhir baris sesuai dengan
fileformat
opsi apa yang telah terdeteksi, pada dasarnya mengubah semua internal$
dengan karakter yang sesuai. Jikafileformat
kebetulanunix
maka itu hanya akan menulis\n
di tempat line-break internal.Caranya adalah dengan memaksa Vim untuk membaca
dos
file yang disandikan sebagaiunix
satu. Efek bersih adalah bahwa hal itu akan menghapus semua\n
's meninggalkan\r
' s tersentuh dan menampilkan mereka sebagai^M
's dalam buffer Anda. Pengaturan juga:set list
akan menunjukkan akhir baris internal sebagai$
. Setelah semua, Anda lihat^M$
di tempatdos
garis yang disandikan.Perhatikan juga bahwa
:set list
tidak ada hubungannya dengan pertunjukan^M
. Anda dapat memeriksanya sendiri (pastikan Anda telah menonaktifkanlist
opsi terlebih dahulu) dengan memasukkan CR tunggalCTRL-V
diikuti denganEnter
mode insert. Setelah menulis buffer ke disk dan membukanya lagi Anda akan melihat^M
meskipunlist
opsi diatur ke 0.Anda dapat menemukan lebih banyak tentang format file di http://vim.wikia.com/wiki/File_format atau dengan mengetikkan
:help 'fileformat'
Vim.sumber
Coba perintah berikut.
: set binary
Dalam VIM, ini harus melakukan hal yang sama seperti menggunakan opsi baris perintah "-b". Jika Anda meletakkan ini di file startup Anda (yaitu .vimrc), file itu akan selalu ada untuk Anda.
Pada banyak sistem * nix, ada perintah "dos2unix" atau "unix2dos" yang dapat memproses file dan memperbaiki masalah yang dicurigai sebagai akhir baris. Jika tidak ada masalah dengan akhir baris, file tidak akan berubah.
sumber
set binary
tidak sama denganvim -b filename.py
. Ada yang tahu kenapa? Saya memang memeriksahelp
dan sepertinya apa yang Anda katakan pada umumnya benar. Bagaimana saya mencari tahu mengapa demikian?:e ++ff=unix
tidak menunjukkan dengan^M
benar dan tidak menunjukkannya ketika saya menggunakanunix
jenis file .. Jadi saya kira masalahnya terpecahkan untuk saat ini ...Saya sarankan Anda untuk mengedit file .vimrc Anda, untuk menjalankan daftar perintah. Edit file .vimrc Anda, seperti ini:
Saat Anda menjalankan vim, perintah ke .vimrc dieksekusi, dan Anda dapat melihat contoh ini:
sumber
dengan menggunakan
cat
dan-A
Anda dapat melihat baris baru sebagai$
, tab sebagai^I
cat -A myfile
sumber
Anda dapat melihat garis putus menggunakan gedit editor .
Pertama, jika Anda belum menginstal:
Sekarang, instal plugin gedit :
dan pilih plugin Draw Spaces , masukkan pada Preferences, dan pilih Draw baris baru
Dengan menggunakan VSCode Anda dapat menginstal ekstensi akhiran Line .
Sublime Text 3 memiliki plugin bernama RawLineEdit yang akan menampilkan akhiran baris dan memungkinkan penyisipan tipe akhiran garis sewenang-wenang
shift + ctrl + p
dan mulai ketik nama plugin, dan beralih untuk menunjukkan akhiran baris.sumber