![]()
From: Recai Oktas (roktas@omu.edu.tr)
Date: Thu 14 Aug 2003 - 01:09:02 EEST
* Onur Kucuk <onur@kablonet.com.tr> [2003-08-13 20:11:49+0300]
> Istedigim C kodunu / kodlarini guzel bir sekilde renklendirip
> duzenleyip basacak bir arac ariyorum. Bunu kolay yapabilecegim bir
> ortam var mi ?
>
> Renklendirme bir sekilde elde ediliyor ama onemli nokta sayfa
> duzeni. Ornegin bir sayfaya 4-6 sayfalik kod gelecek sekilde
> basilmasini istiyorum (yan yana alt alta dizilmis), ve dosya adedi
> cok oldugu icin bu isi otomatik yapan birsey guzel olurdu.
>
> Amacim beni ugrastirmamasi.
Kullandigim *etkilesimli* yontemi anlatayim. Bu yontem gunu birlik
isler icin pratik duser. Normal de hacimli bir kitabi formali halde
basacaksam bu yontemi onermiyorum. (O tip isler hata kaldirmaz.
Cesitli postscript araclariyla tercihen bir Makefile ile ciktiyi uretmek
ve kontrol ettikten sonra yaziciya gondermek daha dogrudur.)
Baski sistemi olarak CUPS'i kullandiginizi ve bunu dogru sekilde
yapilandirdiginizi varsayiyorum. (Eger klasik BSD veya `lprng' gibi
birsey kullaniyorsaniz acilen CUPS'a gecmenizi oneririm.)
Renklendirilmis halde kod ciktisi almak icin VIM'den daha guzel bir
arac bilmiyorum. Dolayisiyla hilight isini VIM'e havale ediyoruz.
2up, 4up seklinde coklu baski icin baska bir arac kullanacaksiniz. Ben
hafifliginden ve komut satiri uyumundan dolayi `gtklp'yi oneriyorum. [1]
Bir zamanlar `xpp' kullanirdim, o da fena degildir. Dilerseniz `qtcups'
da olabilir.
Yontemin anlasilmasi icin once acik halde bir dizi adim:
* Ciktisini almak istediginiz dosyayi VIM'de (veya GVIM'de) acin ve VIM
komut satirinda:
:hardcopy >foo.ps
ile dosyaya yazin.
* Ghostview ile bu dosyayi acarak inceleyin:
gv foo.ps &
* Sonuc tatmin edici ise `Print All' ile baskiya gecin.
`Print Command:'de `lpr' yerine `gtklp' yazdiginizda "Cozunurluk, 2up,
4up ...", artik istediginizi yapabilirsiniz.
* Peki bu isi daha pratik nasil yapabiliriz? "VIM yardim"da o da tarif
edilmis (":help printexpr"). Su satirlari $HOME/.vimrc'ye ekliyorsunuz:
set printexpr=PrintFile(v:fname_in)
function PrintFile(fname)
call system("gv " . a:fname)
call delete(a:fname)
return v:shell_error
endfunc
Bundan sonra sadece ":hardcopy" komutunu kullanmaniz yeterli, otomatik
olarak `ghostview' cagirilacaktir. `lpr' komutunu da `gtklp'ye
yonlendirerek isi daha pratik hale getirebilirsiniz, fakat bunu
onermiyorum. Klasik BSD print komutlarina hic dokunmasaniz daha
guzel olur, birakin onlar beklenildigi gibi calisin. ("Simplify,
simplify, but don't oversimplify." --Einstein)
* Renkli cikti alan bir yaziciniz yoksa (lazer) veya ciktinin BW
olmasini istiyorsaniz "www.vim.org"a ugrayin. Bu ihtiyaci karsilayan
bazi betikler bulabilirsiniz.
* Bu adimlarin bir betikle gerceklestirilmesi de mumkun. `gtklp'nin
komut satiri secenekleri zengindir ve VIM'in betik diliyle (ki oldukca
kolaydir) bir seyler yapilabilir. Yine de "yigin" isleme icin uygun
oldugunu soyleyemem. (Ciktilarin "yigin" olarak alinmasina da
karsiyimdir ;-) Otomatizasyon sizin icin daha onemliyse `enscript' veya
`a2ps' uzerinden bir cozum uretmenizi oneririm.
Kolay gelsin,
[1] http://gtklp.sourceforge.net/index.html
-- roktas linux-sohbet listesinden cikmak ve tum listeci islemleri icin http://liste.linux.org.tr/ adresini kullanabilirisniz. Bu listeden cikmak icin <a href="mailto:linux-sohbet-request@liste.linux.org.tr?Subject=unsubscribe">tiklayiniz</a>
![]()