Vim yalnızca ASCII karakterlerini görüntüleyebilir ve diğer baytlara ikili veri gibi davranabilir mi?


14

Zaten bildiğim vim -bancak, kullanılan yerel ayara bağlı olarak, tek harfler olarak (UTF-8) gibi çok baytlık karakterler görüntüler.

vimKarakter ne olursa olsun, yalnızca ASCII yazdırılabilir karakterlerini görüntülemeyi ve geri kalanları ikili veri olarak nasıl ele alabilirim ?

Yanıtlar:


19

Kullanırken vim -b, tüm yüksek karakterleri şu şekilde görüntüler <xx>:

set encoding=latin1
set isprint=
set display+=uhex

Herhangi bir tek bayt kodlama işe yarayacaktır, vim tüm düşük grafikler için ASCII kullanır ve yazdırılabilir olarak sabit kodlanmış olmasını sağlar. isprintBoş ayarı , diğer her şeyi yazdırılamaz olarak işaretler. Ayar uhexonları onaltılık olarak görüntüler.

Her komuttan sonra ekran şu şekilde değişir:

önce kodlamayı ayarladıktan sonra isprint ayarlandıktan sonra uhex ayarladıktan sonra


Bu seçenekler bağlı değildir -b, bu sadece birkaç seçenek daha ayarlar, bkz :help edit-binary. Yazdırılamayan baytların gösterilmesinde bir fark görmüyorum ( -bgenellikle NUL'u da gösterir ). Çoğunlukla kullanmıyorum -b, çünkü metin dosyalarındaki garip kodlamaları kontrol etmek için bu seçenekleri kullanıyorum.
pascal

Çok kullanışlı, Word'den metne yapıştırırken kullanacağım. Bu komutlar tek bir satıra da konabilir:set encoding=latin1|set isprint=|set display+=uhex
Philip Kearns

1

Bu aradığınıza benziyor. Wiki'den bu ipucu vim: UTF-8 Vim'i Latince1'i Latin1 olarak okumaya zorlamak .

$ vim -c "e ++enc=latin1" file.txt

Ayrıca vim's :helpkodlamalar hakkında daha fazla görmek için bunu yapabilirsiniz.

:help enc

alıntı :help enc

'encoding' 'enc'        string (default: "latin1" or value from $LANG)
                        global
                        {only available when compiled with the +multi_byte
                        feature}
                        {not in Vi}
    Sets the character encoding used inside Vim.  It applies to text in
    the buffers, registers, Strings in expressions, text stored in the
    viminfo file, etc.  It sets the kind of characters which Vim can work
    with.  See encoding-names for the possible values.

    NOTE: Changing this option will not change the encoding of the
    existing text in Vim.  It may cause non-ASCII text to become invalid.
    It should normally be kept at its default value, or set when Vim
    starts up.  See multibyte.  To reload the menus see :menutrans.

    This option cannot be set from a modeline.  It would most likely
    corrupt the text.

    NOTE: For GTK+ 2 it is highly recommended to set 'encoding' to
    "utf-8".  Although care has been taken to allow different values of
    'encoding', "utf-8" is the natural choice for the environment and
    avoids unnecessary conversion overhead.  "utf-8" has not been made
    the default to prevent different behavior of the GUI and terminal
    versions, and to avoid changing the encoding of newly created files
    without your knowledge (in case 'fileencodings' is empty).
    ...
    ...

3
Bu oldukça hoş, ama "istiyorum vimsadece ekran yazdırılabilir ASCII karakter" ve çözüm latin1 karakter setlerini kullanır (yani ISO-8859-1, ASCII bir üst kümesidir), bu nedenle gibi karakterleri görüntüler éhangi ı' d olarak gösterilmek yerine <e9>.
Ocak'ta Totor
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.