2010-04-01 14 views
6

kullanılarak vim içeriğini e-posta mı: Gerçekten olmak istiyorum neben gibi bir komutla üzerinde çalışıyorum kaynak dosyaları mevcut farklılıkları görmek ister mümkün HTML

vim <(svn diff -dub) 

Bunu yapabilmek, o renklendirilmiş farklılığı e-postayla göndermektir. Vim'in HTML'yi şu şekilde dışa aktardığını biliyorum: TOHTML, ancak bu çıkışı bir html e-postasına nasıl aktarabilirim? İdeal. Tek kabuk komut dosyasıyla bir html diff gönderebilmek istiyorum.

cevap

10

aşağıdaki tek satırlık email.html adlı bir HTML dosyası üretir.

Ancak, doğru işe doğru aracı kullanarak inanıyorum - ve VIM burada doğru araç olmayabilir. Diğer vurgulayıcılar var ve bunların kullanımı burada daha uygun. Örneğin

, Pygments çok daha verimli, aynı sonucu üretmek ve olmak üzere kullanılabilecek sorunsuz: Bu sadece gerçek metin gövdesi değil, stil sayfası ürettiğini

diff -u report.log .report.log | pygmentize -l diff -f html > email.html 

Bildirim, ne de çevreleyen HTML iskele. Bu ayrı olarak eklenmelidir, ancak bu da zor değildir. - bana gelince - sen mail ve mutt gerekli sürümlerini yok çünkü durumunda

echo '<!DOCTYPE html><html><head><title>No title</title><style>' > email.html 
pygmentize -S default -f html >> email.html 
echo '</style></head><body>' >> email.html 
diff -u report.log .report.log | pygmentize -l diff -f html >> email.html 
echo '</body></html>' >> email.html 

DÜZENLEMEYİ Pekka kod işe yaramadı: Burada geçerli asgari HTML dosyası üretmek için tam bir betik görüyorsunuz

(echo 'To: [email protected]ple.com' 
    echo 'Content-Type: text/html' 
    echo 'Subject: test' 
    echo '' 
    cat email.html) | sendmail -t 

Bu başlık ve e-postanın gövdesi arasında boş bir satır bırakmak önemlidir: HTML e-posta göndermek için aşağıdaki gibi o zaman sendmail kullanabilirsiniz yüklü. Ayrıca, geçici dosyayı email.html oluşturmak için gereksiz olduğunu unutmayın. Sadece komutların geri kalanını yukarıdaki doğru yere yapıştırın ve dosyaya yönlendirmeleri silin.

+0

"daha verimli ve sorunsuz" ilginç bir tanım var. Komut satırından yazmak ve çıkmak için vim elde etmek için +1. – rampion

+0

sen +% 'için "+ w email.html" değiştirmek mutt' ya da her türlü vim doğrudan – rampion

+0

@rampion posta komutunu çağırmak için olabilir: Vim başlatma bu şekilde aslında oldukça verimsizdir. Pigmentler kolaylıkla daha iyi performans gösterir.Sorunsuz bir şekilde ifade etmek istiyorum ki, bu sadece daha fazla metne sahip olmasına rağmen, Pigmentlerin iş akışının kavramsal olarak daha kolay olduğu anlamına gelir (“bir editördeki bir açıklığı açma, bir komut çalıştırma, yakın düzenleyici” yerine) “farklı bir dizgeyi vurgulayın”. yazmak. Her iki yöntemin de bence yararları var. –

1

Hiç Linux Guru değilim, ama bu içine boruya Çıktınızı ihtiyaçlarınızı hizmet etmelidir benziyor:

Send an HTML file as email from the command line. tek satırlık mutt örnek here de var

(mail kullanır):

mutt -e "my_hdr Content-Type: text/html" 
    -s "my subject" [email protected] < message.html 

bu, saf bir metin alternatifi olmayan salt bir HTML E-Posta oluşturacaktır - bunun için çok parçalı posta oluşturmak zorunda kalacaksınız ... Ama belki de ihtiyacınız olan şey için yapacağız.

diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!' 

Artık e-posta göndermek Pekka kodunu kullanabilirsiniz:

+0

Reddetmeyi açıklamak ister misiniz? Burada teknik olarak yanlış bir şey mi var? –

İlgili konular