SORU
22 ŞUBAT 2010, PAZARTESİ


Değişim Kodlama utf-8 Bir komut vim üzerinden Dosya

sadece bizim server 5 Debian 4 güncellendi sonra yere yıkıldı. Değiştik için UTF-8'ler ve şimdi biz sorunları almaya metni basılmış doğru tarayıcı, çünkü tüm dosyaları non-utf8 kodlamaları gibi ıso-8859-1, ascıı, vb.

Birçok farklı senaryo çalıştım.

Denedim ilki"". iconv O çalışmıyor, içeriğini değiştirir, ama dosyaları enconding hala non-utf8.

Enca, encamv, convmv ve bazı diğer araçlar ile aynı sorunu apt-get ile yüklü.

Sonra bulduğum bir python kodu kullanır, hangi chardet Evrensel Dedektör modülü için tespit kodlama dosyası (sorunsuz çalışıyor), ama kullanarak unicode sınıf veya Kodek sınıfı için tasarruf olarak utf-8 çalışmıyor, herhangi bir hata olmadan.

İçeriği UTF-8, dönüştürülen dosya için bulduğum tek yolu vı.

Bu bir dosya için yaptığım adımlar:

vi filename.php
:set bomb
:set fileencoding=utf-8
:wq

Aynen öyle. O mükemmel çalışır. Ama bu nasıl bir senaryo üzerinden çalışıyor. Bir dizini tüm php dosyaları alıyorum, sonra onları dönüştürmek geçtiği bir script (linux shell) komutları ile vı yukarıda kullanarak yazmak istiyorum. Vı uygulamayı başlatmak için ihtiyacım var, böyle bir şey yapmak için nasıl bilmiyorum:

"vi --run-command=':set bomb, :set fileencoding=utf-8' filename.php"

Birisi bana yardımcı olabilir umuyoruz.

CEVAP
22 ŞUBAT 2010, PAZARTESİ


Bu bu kolayca komut satırından yapmak için bildiğim en basit yolu

vim  "argdo se bomb | se fileencoding=utf-8 | w" $(find . -type f -name *.php)

Ya da daha iyisi eğer dosya sayısı çok büyük olması bekleniyor:

find . -type f -name *.php | xargs vim  "argdo se bomb | se fileencoding=utf-8 | w"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 30GB

    30GB

    14 AĞUSTOS 2006
  • Julian Smith

    Julian Smith

    31 EKİM 2006
  • Vsauce

    Vsauce

    30 Temmuz 2007