Editörde satır sonlarını ve satır başlarını görme


180

Linux'ta satır sonlarını ve satır başlarını görmeme izin veren bir metin düzenleyicisi bilen var mı? Vim bu özelliği destekliyor mu?


1
NOT: bazen satırsonu ($) ve satır başı (^ M) MANY renk şemalarında ve ayrıca ssh'tan macun kullanırken gizlenir.
Vanessa Sanchez

1
OP Bence seçilen cevabı tekrar gözden geçirmelisin. seçilen cevap çalışmaz. ancak CaptSaltyJack yanıtı iyi çalışıyor.
JavaSheriff

OP BOTH'u gösterecek olan şey @arno'nun çözümüdür. İKİ görmek gerekiyordu, çünkü 3 dosya biçimini rastgele kullanan bir dosyam var ... Ve arno'nun çözümü işe yarıyor
Wayne Walker

Yanıtlar:


139

:set listVim beyaz boşluk gösterecektir. Satır sonu ' $' ve satır başı genellikle ' ^M' olarak gösterilir .



254
Yanlış, :set listgöstermeyecek bir ^Mkarakter (CR). Temini -bvi / vim çalışacaktır seçeneği. Veya vim yüklendikten sonra şunu yazın::e ++ff=unix
CaptSaltyJack

15
FYI, "set list" modunu kapatmak için şunu kullanın::set nolist
Tomofumi

@Tomofumi, perpozisyonunuzla bir düzenleme hoş geldiniz!
Pipo

1
Yanlış cevap. : ayar listesi ^ M karakterlerini (CR'ler) GÖSTERMEZ. Vi / vim için -b seçeneği kullanılacaktır.
nanosoft 13:18

265

Resmi yanıta katılmamak için:

:set listolacak değil ^ M karakterleri (CR) göstermektedir. Vi / vim'e -b seçeneği sağlamak işe yarayacaktır. Veya vim yüklendikten sonra yazın :e ++ff=unix.


4
Sözdizimi. :help editgösterir e[dit]! [++opt] [+cmd]. Ve [++ opt] argümanı 'fileformat' [..] değerini zorlamak için kullanılabilir:help ++e diyor .
dennis

19
sadece açıklığa kavuşturmak için, :set listnewline ( $) :e ++ff=unixgösterir, CR ( ^M) gösterir ; ikisini de görmek istiyorsanız, :set listo zaman:e ++ff=unix
Yibo Yang

5
@ Dennis'in yorumunu genişletmek için Vim'e satır sonlarını unix stiline (dosya biçimini ayarlamanın bir parçası olarak) değiştirmesini:set ff=unix söyler , böylece ^ M karakterleri artık orada değildir (ve böylece görüntülenmez). dosyaya , içeriği gerçekten değiştirmeden dosya biçimini zorla ayarlamasını söyler . Böylece vim bir Unix dosyası gibi okur, CR karakterlerini fazladan görür ve ^ M olarak görüntüler. :e ++ff=unixunix
sundar - Monica'yı eski

2
Ne hala bir vimsebepten dolayı benim için çalışmıyor ... Ne -bseçenek ne :e ++ff=unixde içeride ne zaman demek istiyorum :(
RAM237

3
tamam,: e ++ ff = unix çalıştı. Şimdi nasıl kapatabilirim?
Croo

78

VI, bir x0Asonraki satırda sonraki metni göstererek yeni satırları (LF karakteri, kod ) gösterir.

-bİkili mod için anahtarı kullanın . Örneğin vi -b filenameveya vim -b filename --.

Ardından, x0Dnormalde Unix stil dosyalarında kullanılmayan CR karakterlerini ( ) karakterler olarak gösterir ^M.


Genellikle çizginin sonunu görmem gerekmiyor, çünkü çoğunlukla Unixçevrede çalışıyorum. Ancak dosyada varsa Windows türü satır sonları konusunda uyarılmak istiyorum. Will vi -b filenameveya :set binarysadece göstermek ^Mbir pencere tipi dosyası ve aksi başka hiçbir satır sonları ise?
alpha_989

31

Sadece neden :set listCR'leri olduğu gibi ^Mgöstermeyecek e ++ff=unixve nedenlerle :set listilgisi olmadığını açıklığa kavuşturmak için ^M.

Dahili olarak Vim arabelleğe bir dosya okuduğunda , tüm satır sonu karakterlerini kendi temsiliyle değiştirir (diyelim $). Hangi karakterlerin kaldırılması gerektiğini belirlemek için, öncelikle bir dosyada hangi satır sonlarının saklandığını algılar. Sadece CRLF varsa '\r\n'veya sadece CR '\r'veya sadece LF '\n'satır sonu karakterleri, ardından 'fileformat'ayarlandığında dos, macve unixsırasıyla.

Ne zaman listbir seçenek ayarlanırsa, Vim görüntüler $karakter satır sonu ne olursa olsun meydana geldiğinde fileformatalgılandı seçeneği. Satır kesmelerinin kendi dahili temsilini kullanır ve işte böyle gösterir.

Şimdi diske arabellek yazdığınızda , Vim hangi fileformatseçeneklerin algılandığına göre satır sonu karakterleri ekler , esas olarak tüm bu dahili $karakterleri uygun karakterlerle dönüştürür. Eğer fileformatolması oldu unixo zaman basitçe yazacak \niç hat sonu yerine.

İşin püf noktası, Vim'i doskodlanmış bir dosyayı bir dosya olarak okumaya zorlamaktır unix. Net etki, tüm \nayrılmaların \rel değmeden kaldırılması ve ^Mara belleğinizde olduğu gibi görüntülenmesidir . Ayar :set listayrıca dahili satır sonlarını olarak gösterecektir $. Sonuçta ^M$, doskodlanmış satır kesmelerinin yerine görürsünüz .

Ayrıca dikkat :set listgöstermek ^M' ile ilgisi yoktur . Kendinden (marka emin devre dışı bıraktık tarafından kontrol edebilirsiniz listkullanarak tek CR ekleyerek ilk seçeneği) CTRL-V, ardından Enterekleme modunda. Tamponu diske yazıp yeniden açtıktan sonra seçeneğin 0 olarak ayarlanmasına ^Mrağmen göreceksiniz list.

Dosya biçimleri hakkında daha fazla bilgiyi http://vim.wikia.com/wiki/File_format adresinde veya :help 'fileformat'Vim yazarak bulabilirsiniz .


11

Aşağıdaki komutu deneyin.

: ikili ayarla

VIM'de bu, "-b" komut satırı seçeneğini kullanmakla aynı şeyi yapmalıdır. Bunu başlangıç ​​(yani .vimrc) dosyanıza koyarsanız, her zaman sizin için yerinde olacaktır.

Birçok * nix sisteminde, dosyayı işleyebilen ve satır sonu şüphesi olan sorunları düzelten bir "dos2unix" veya "unix2dos" komutu vardır. Satır sonlarıyla ilgili bir sorun yoksa dosyalar değiştirilmez.


Ne yazık ki benim sistemimde (Ubuntu 16.04) set binaryaynı değil vim -b filename.py. Neden olduğu hakkında bir fikrin var mı? Kontrol ettim helpve söylediklerinizin genellikle doğru olduğu anlaşılıyor. Bunun neden böyle olduğunu nasıl anlayabilirim?
alpha_989

:e ++ff=unixgösterir ^Mve doğru kullandığım zaman bunu göstermiyor unix... tip dosyaları Sorunun şimdilik çözüldü tahmin Yani ..
alpha_989

6

Komutların bir listesini çalıştırmak için .vimrc dosyanızı düzenlemenizi öneririm. .Vimrc dosyanızı aşağıdaki gibi düzenleyin:

cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF

Vim yürütürken .vimrc komutları yürütülür ve şu örneği görebilirsiniz:

My line with CRLF eol here ^M¶


0

Kesme çizgilerini gedit düzenleyicisini kullanarak görüntüleyebilirsiniz .

İlk olarak, yüklemediyseniz:

sudo apt-get install gedit

Şimdi, gedit eklentilerini yükleyin :

sudo apt-get install gedit-plugins

ve Çizim Uzayları eklentisini seçin , Tercihler'e girin ve Yeni çizgiler çiz'i seçin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

VSCode kullanarak Line endings uzantısını kurabilirsiniz .

Sublime Text 3 , satır sonlarını görüntüleyecek ve rastgele satır sonu türünün eklenmesine izin veren RawLineEdit adlı bir eklentiye sahiptir

shift + ctrl + p ve eklentinin adını yazmaya başlayın ve satır sonunu göstermeye geçiş yapın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.