5.6.07

vim ile dosya calistirmaca

bakiniz: http://blog.arsln.org/vim-icinden-python-kodu-calistirmak/ Simdi bunu F8'e basildiginda her dosyayi calistirir hale getirmek gerek. Bunu daha once emacs icin yapmistim, ancak isin mantigini da elisp ile yaptirmaya ugrastigim icin karman corman birsey olmustu ne yazik ki. Simdi aklim basima geldi, bu isi bir shell script'e yaptirmak gerek. Bu ~/bin/calistir dosyasinin icerigi:
#!/bin/bash

dosya=$1

case $dosya in

"")
   echo "Kullanim: $0 <dosya_ismi>"
   ;;
*.js)
   js $dosya
   ;;
*.py)
   python $dosya
   ;;
*.sh)
   /bin/bash $dosya
   ;;
*.rb)
   ruby $dosya
   ;;
*.c)
   gcc $dosya
   ./a.out
   ;;
*.cpp)
   g++ $dosya
   ./a.out
   ;;
/*)
   $dosya
   ;;
*)
   ./$dosya
   ;;

esac
Ve ~/.vimrc dosyasina su satiri ekliyoruz:
map <F8> :!/home/kullanici/bin/calistir % <ENTER>
Bu da ~/.emacs dosyasina:
(defun exec-file () 
  "Execute a file, if possible."
  (interactive)
  (let ((curr-buf (buffer-name))
        (exec-buffer "execute-buffer"))
    (if (get-buffer exec-buffer) 
    
      ;; su anda bir calistirma buffer'i acik, kapat
      (kill-buffer exec-buffer)
      
      ;; calistir
      (progn
        (call-process "/home/kullanici/bin/calistir" nil exec-buffer t curr-buf)
        (switch-to-buffer-other-window exec-buffer)
        (switch-to-buffer-other-window curr-buf)))))

(global-set-key [f12] 'exec-file)

3 comments:

Anonymous said...

Bir de calistir dosyasına clear ekledik mi tadından yenmez oluyor.

Anonymous said...

Arkadaşım merhaba bloğuna vim'le ilgili bilgi ararken geldim..Vim'le ilgili verdiğin ipucu için çok teşekkür ederim ama galiba siz Linux içerisinde kullanıyorsunuz ben henüz bu konularda acemiyim ve Vim'i windows'ta kullanıyorum.
Çalıştırılacak dosyayı kaydettim ancak çalışmıyor.Alttaki emacs'la işim yok değil mi? Yani Vim için sadece üst kısmı kopyaladım ve yapıştırıp kaydettim.Windowsta Vim klasörü içerisinde kayıtlı.
Path'da J:\Program Files\Vim\calistir
şeklinde..Şimdi sizin map ile başlayan yerde !işaretinden sonra Home ile başlayan pathi silip bu bendeki yolu mu yazmaliyim?
Ayrıca heartsmagic demişki Bir de calistir dosyasına clear ekledik mi tadından yenmez oluyor.Yukarıda yazılanların altınamı eklemeliyim ve Clear nasıl yazılacak tam olarak yani map ! felan şeklinde komutları yok mu ve bu clear tam olarak ne işe yarıyor?..
Teşekkürler

herhangibiri said...

Ne yazik ki o kod windowsta calismaz. Onun yerine bir windows bat dosyasi olusturabilirsin (nasil yazilir, onu bilmiyorum tabii), veya cygwin kurabilirsin.