Emacs Command line – (Lisp Oriented)


Emacs dibangun dengan bahasa Lisp dan bahasa C, dari sebuah sumber yang pernah dibaca dijelaskan bahwa program yang ditulis dengan bahasa Lisp maka otomatis bisa sebagai _interpreter_ dari bahasa Lisp itu sendiri, begitu juga dengan Emacs, bisa digunakan sebagai _interpreter_ bahasa Lisp, untuk hal ini bisa dicari sendiri referensinya karena saya sendiri tidak pernah membuat aplikasi dengan bahasa Lisp kecuali  sintaks Lisp pada _macro_ yang digunaan pada Emacs.

Seperti halnya bahasa python atau perl, ketika kita menjalankan perl seperti ini $perl -e 'print "hello world"' maka akan tercetak tulisan hello world di layar, hal ini disebut dengan  _interpreter_ atau penerjemah, dimana program perl akan melakukan _parsing_ pada opsi yang diberikan kemudian mengeksekusinya. Namun bedanya perl atau python adalah program untuk menerjemahkan bahasa itu sendiri tanpa adanya editor, kalaupun ada tidak selengkap Emacs atau Vi .

Jika ingin mengeksekusi Lisp _function_ dengan menggunakan emacs maka kita tidak harus menyertakan opsi –batch, jadi _Lisp Oriented_ ini bisa juga disebut dengan Batch mode.

Opsi dasar untuk Lisp oriented :

  • -f function, –funcall function Opsi ini akan memanggil fungsi-fungsi yang terdapat pada Emacs.
    Misalkan kita ingin bermain game snake ketika emacs pertama kali dijalankan, berikut perintah yang diberikan :
    _ $emacs -f snake_

  • -l file, –load file Opsi ini untuk meload fungsi atau command yang terdapat pada “file”.
  • –eval ”lisp expression”, –execute “lisp expression” Opsi untuk mengetikkan perintah Lisp ketika emacs dijalankan (Seperti interpreter pada python), biasanya opsi ini dijalankan bersamaan dengan opsi –batch. Beberapa opsi dasar pada batch mode :

  • –batchOpsi harus selalu disertakan jika ingin mengeksekusi fungsi fungsi yang terdapat dalam bahasa Lisp.
    Contoh: $emacs --batch test.c --eval '(indent-region (point-min) (point- max) nil)' -f save-buffer
    Perintah ini berarti mengeksekusi perintah ‘(indent-region (point-min) (point- max) nil)’ terhadap file test.c kemudian memanggil fungsi save-buffer untuk penyimpanan file, secara sederhana ini untuk melakukan indentation pada file “test.c”.

  • –script namaScript Dengan menggunakan opsi ini kita bisa menyimpan _script_ Lisp terlebih dahulu pada sebuah file dan kemudian mengeksekusi dengan emacs, hal ini akan lebih mudah untuk memahami sintaks sintaks Lisp itu sendiri, selain itu juga lebih menyingkat _command line argument_ yang kita berikan.
    Contoh : $emacs --batch --script "namaScript"

  • –insert namaFile menambahkan isi file “namaFile” kedalam buffer yang sedang aktif.
    Contoh: $emacs file.c --insert "namaFile"
    perintah ini berarti semua isi file “namaFile” dimasukkan ke file “file.c” di awal file.

  • –kill Opsi ini saya sendiri juga kurang mengerti untuk apa. Berdasarkan manualnya dijelaskan seperti ini _“Exit Emacs while in batch mode.”_ yaitu exit Emacs selama dalam batch mode, tapi ketika dicoba dengan opsi ini Emacs otomatis keluar sesaat setelah tampil di layar.:(

  • -L direktori, –directory direktori Sekali lagi saya tidak tahu kegunaan dari fungsi ini