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 list
Vim beyaz boşluk gösterecektir. Satır sonu ' $
' ve satır başı genellikle ' ^M
' olarak gösterilir .
:set list
göstermeyecek bir ^M
karakter (CR). Temini -b
vi / 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 list
olacak 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 edit
gösterir e[dit]! [++opt] [+cmd]
. Ve [++ opt] argümanı 'fileformat' [..] değerini zorlamak için kullanılabilir:help ++e
diyor .
:set list
newline ( $
) :e ++ff=unix
gösterir, CR ( ^M
) gösterir ; ikisini de görmek istiyorsanız, :set list
o 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=unix
unix
vim
sebepten dolayı benim için çalışmıyor ... Ne -b
seçenek ne :e ++ff=unix
de içeride ne zaman demek istiyorum :(
VI, bir x0A
sonraki 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 filename
veya vim -b filename --
.
Ardından, x0D
normalde 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 filename
veya :set binary
sadece göstermek ^M
bir pencere tipi dosyası ve aksi başka hiçbir satır sonları ise?
Sadece neden :set list
CR'leri olduğu gibi ^M
göstermeyecek e ++ff=unix
ve nedenlerle :set list
ilgisi 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
, mac
ve unix
sırasıyla.
Ne zaman list
bir seçenek ayarlanırsa, Vim görüntüler $
karakter satır sonu ne olursa olsun meydana geldiğinde fileformat
algı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 fileformat
seç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 fileformat
olması oldu unix
o zaman basitçe yazacak \n
iç hat sonu yerine.
İşin püf noktası, Vim'i dos
kodlanmış bir dosyayı bir dosya olarak okumaya zorlamaktır unix
. Net etki, tüm \n
ayrılmaların \r
el değmeden kaldırılması ve ^M
ara belleğinizde olduğu gibi görüntülenmesidir . Ayar :set list
ayrıca dahili satır sonlarını olarak gösterecektir $
. Sonuçta ^M$
, dos
kodlanmış satır kesmelerinin yerine görürsünüz .
Ayrıca dikkat :set list
göstermek ^M
' ile ilgisi yoktur . Kendinden (marka emin devre dışı bıraktık tarafından kontrol edebilirsiniz list
kullanarak tek CR ekleyerek ilk seçeneği) CTRL-V
, ardından Enter
ekleme modunda. Tamponu diske yazıp yeniden açtıktan sonra seçeneğin 0 olarak ayarlanmasına ^M
rağ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 binary
aynı değil vim -b filename.py
. Neden olduğu hakkında bir fikrin var mı? Kontrol ettim help
ve söylediklerinizin genellikle doğru olduğu anlaşılıyor. Bunun neden böyle olduğunu nasıl anlayabilirim?
:e ++ff=unix
gösterir ^M
ve 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 cat
ve -A
yeni 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.