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)