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?
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?
Yanıtlar:
:set listVim beyaz boşluk gösterecektir. Satır sonu ' $' ve satır başı genellikle ' ^M' olarak gösterilir .
: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
:set nolist
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.
:help editgösterir e[dit]! [++opt] [+cmd]. Ve [++ opt] argümanı 'fileformat' [..] değerini zorlamak için kullanılabilir:help ++e diyor .
:set listnewline ( $) :e ++ff=unixgösterir, CR ( ^M) gösterir ; ikisini de görmek istiyorsanız, :set listo zaman:e ++ff=unix
: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
vimsebepten dolayı benim için çalışmıyor ... Ne -bseçenek ne :e ++ff=unixde içeride ne zaman demek istiyorum :(
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.
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?
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 .
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.
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?
:e ++ff=unixgösterir ^Mve doğru kullandığım zaman bunu göstermiyor unix... tip dosyaları Sorunun şimdilik çözüldü tahmin Yani ..
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¶
kullanarak catve -Ayeni satırları $sekmeler olarak^I
cat -A myfile
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
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.