Tag Archives: vim

Menulis di GitBook

Minggu lalu, saya membuka akun di gitbook. Saya ingin bereksperimen menulis menggunakan gitbook. Ide pertama yang muncul adalah menulis bagaimana saya menggunakan penyunting teks vim. Saya pertama kali tahu soal gitbook saat membaca tutorial django yang ditulis oleh komunitas django girls.

Belum banyak yang saya tulis di buku vim saya. Saya pun masih mengeksplorasi fitur gitbook. Satu hal yang sudah saya coba adalah fitur menyunting via web. Jadi menulis tak harus menggunakan penyunting teks. Termasuk saat membuat berkas baru, bisa dilakukan via web.

Nah, sekarang saatnya saya menambahkan tulisan sedikit demi sedikit…

VIM 101: Mencari dan Mengganti

VIM; search and replace

Pagi ini saya dihadapkan dengan situasi perlu menambahkan path pada file konfigurasi. Saya sedang menyiapkan situs agregasi blog dengan engine planet. Berikut situasinya:

#template_files = examples/basic/index.html.tmpl
examples/atom.xml.tmpl
examples/rss20.xml.tmpl
examples/rss10.xml.tmpl
examples/opml.xml.tmpl
examples/foafroll.xml.tmpl

Lokasi file *.tmpl ini berada pada direktori /home/za/planet/examples Nah bisa saja saya menambahkan satu-per-satu. Tapi untuk apa ada VIM? Eh tapi bagaimana caranya melakukan penggantian string dengan tanda ‘/’? Bukankah selama ini sintaks yang digunakan adalah:

:s/cari/ganti

Ternyata triknya adalah mengganti separator ‘/’ dengan ‘#’ Lalu agar satu baris pada pola yang dicari ini terganti semua, tambahkan lagi separator, lalu sertakan ‘g’.

Berikut perintah VIM-nya:

:s#examples#/home/za/planet/examples#g

Voila!

#template_files = /home/za/planet/examples/basic/index.html.tmpl /home/za/planet/examples/atom.xml.tmpl
/home/za/planet/examples/rss20.xml.tmpl
/home/za/planet/examples/rss10.xml.tmpl
/home/za/planet/examples/opml.xml.tmpl
/home/za/planet/examples/foafroll.xml.tmpl

Tantangan VIM

Pada berkas .vimrc saya men-set agar lebar penyunting teks saya adalah 80 karakter.

$ vim ~/.vimrc
set textwidth=80

Ternyata pada praktiknya, ada beberapa berkas teks yang memiliki lebar lebih dari 80 karakter. Dan untuk menjaga konsistensi, sebaiknya saya mengikuti preferensi lebar teks ini.

Nah bagaimana caranya agar saya bisa memilih kapan saya akan menggunakan konfigurasi VIM dengan 80 karakter atau dengan lebar karakter lainnya?

vim 101: Template

Seringkali kita dihadapkan pada situasi harus membuat berkas yang sama berulang kali. vim memiliki fitur template yang dapat menyediakan kita secara otomatis isi suatu file.

Berikut contoh berkas template vim saya:

za@zara:~/.vim/templates$ ls
html.tpl  py.tpl

Setiap berkas template perlu diletakkan pada direktori di atas. Saya baru memiliki dua template, yaitu untuk berkas html dan berkas python.

Coba saya cuplik template sederhana saya ini.

Berikut template untuk html
[sourcecode lang=”html”]
<html>
<head>
<title></title>
<meta name="generator" content="Vim" />
<meta name="author" content="za" />
</head>
<body>
<p>Something</p>
</body>
</html>
[/sourcecode]

Berikut untuk template python
[sourcecode lang=”python”]
!/usr/bin/python

def main():
print ‘hello world’

# Standard boilerplate to call the main() function
if __name__ == ‘__main__’:
main()
[/sourcecode]

Setiap kali saya membuat berkas baru dengan ekstensi html atau py, maka vim akan langsung mengisinya dengan kerangka template.

Silakan coba ketikkan

$ vim index.html

Lalu lanjutkan dengan

$ vim aritmatika.py

Template vim ini dapat membantu dalam mengingat kerangka dasar dan yang pasti tentu akan menghemat waktu.

Kekuatan VIM

Saya berencana menulis artikel agak panjang mengenai VIM, salah satu penyunting teks yang tersohor sekali kehebatannya. Tapi karena belum juga mulai menulis, saya coba mau mulai menulis saja dengan kebutuhan yang saya temui hari ini.

Necessity is the mother of invention.

Hari ini saya membutuhkan menyunting teks yang kondisinya kurang lebih seperti ini:

Di atas adalah nama-nama halte Transjakarta koridor 6. Ternyata saya baru ingat usai mengetik, bahwa setelah Departemen Pertanian masih ada halte lain yang belum tertulis. Hal ini bisa saja saya modifikasi dengan masuk ke mode insert lalu ketikkan enter pada baris yang ingin ditambahkan. Coba hitung berapa tombol yang perlu saya tekan.

  1. i; untuk masuk mode insert
  2. enter; membuat baris baru
  3. esc; keluar dari mode insert
  4. k; membawa kursor ke atas
  5. i; ketikkan nama halte sebelum Pejaten

Panjang kan. Lalu ternyata ada tombol pintasnya. Yaitu ‘o’ atau ‘O’. Cukup satu tombol lalu mode akan berubah menjadi mode insert.

  • o; akan membuat baris baru di bawah kursor
  • O; akan membuat baris baru di atas kursor

Oh ya, saya dihadapkan pada kondisi harus menyunting ratusan baris seperti ini. Terbayang kan betapa terbantunya hanya dengan menekan ‘o’ atau ‘O’ saja.