emacs - @kholidfu
Table of Contents
- 1. Menjalankan emacs secara daemon
- 2. Mode Fullscreen di Emacs
- 3. Fungsi customize-saved
- 4. Menambahkan keyboard shortcut untuk emacs
- 5. Membuat tautan internal di emacs org-mode
- 6. Header org-mode untuk LaTeX export
- 7. Membuat teks rata tengah di org-mode
- 8. Syntax highlighting di latex org-mode
- 9. Membuat gambar centering di latex org-mode
- 10. Membuat garis horisontal di latex org-mode
- 11. Why org-mode not just plain LaTeX?
- 12. Memperbarui paket Emacs
- 13. Follow Mode
- 14. Remember Mode
- 15. Sunting Berkas sebagai sudo user
- 16. Inserting internal link (to a file)
- 17. Kombinasi keystroke yang sering saya pakai di org-mode
- 18. Emacs Good Reads
Tulisan/tips yang ada di laman ini merupakan kumpulan catatan saya
selama bergumul dengan emacs
. Syukur kalau masih works dan berguna
bagi pembaca sekalian.
1 Menjalankan emacs secara daemon
Emacs terasa lambat saat startup? Bahkan dengan processor i7 4790
RAM 8GB, dengan jumlah packages yang tidak terlalu banyak juga,
kadang emacs
terasa lambat ketika startup.
Untuk menghindari hal ini, saya coba menggunakan fitur daemon
yang
tersedia by default di emacs
. Caranya adalah sebagai berikut:
Jalankan perintah ini di console
:
emacs --daemon
Sekarang emacs
sudah berjalan secara daemon di background. Untuk
menjalankan client emacs
, jalankan perintah berikut:
# jalankan emacs window mode emacsclient -c -n /path/to/your/dir/or/file # jalankan emacs no-window mode emacsclient /path/to/your/dir/or/file
Perubahannya? Sangat signifikan! bahkan terasa lebih cepat membuka
emacs
dibanding membuka aplikasi terminal
.
Jika pingin lebih efektif lagi, Anda bisa menambahkan emacs --daemon
setiap kali mesin Anda boot.
Lagi, saya membuat custom alias
di .bashrc
sebagai berikut:
# alias emacs client alias emacs='emacsclient -n -c' # autostrat emacs --daemon if it's not running yet export ALTERNATE_EDITOR=""
Reload konfigurasi bash
Anda:
source ~/.bashrc
Sumber1
2 Mode Fullscreen di Emacs
Salah satu cara untuk mengurangi distraction ketika sedang coding
adalah dengan membuat layar editor menjadi fullscreen. Kalau
bekerja di terminal
, kita dapat dengan mudah menekan F11
untuk
mengaktifkan mode fullscreen. Bagaimana dengan emacs
? Bisa tapi
butuh sedikit tweak di .emacs
.
Tambahkan baris kode berikut di .emacs
Anda:
;; F11 key to toggle full screen mode (defun toggle-fullscreen () (interactive) (set-frame-parameter nil 'fullscreen (if (frame-parameter nil 'fullscreen) nil 'fullboth))) (global-set-key [f11] 'toggle-fullscreen)
Reload konfigurasi dengan M-x load-file
~/.emacs
. Sekarang coba
tekan F11
, dan layar emacs
akan berubah menjadi fullscreen!
Tekan F11
sekali lagi untuk kembali ke ukuran window sebelumnya.
3 Fungsi customize-saved
Ingin menghilangkan toolbar, menubar, scrollbar? Ada beberapa cara sih sebenarnya, pertama bisa melalui menubar, pilih
Options
>>
Customize Emacs
>>
Saved Options
Atau bisa dengan menambahkan baris berikut di ~/.emacs
Anda:
(menu-bar-mode -1) ;; Disable menubar (tool-bar-mode -1) ;; Disable toolbar (scroll-bar-mode -1) ;; Disable scrollbar (tooltip-mode -1)) ;; Disable tooltip
Atau melalui fungsi customize-saved
. Saya sendiri cenderung memilih
yang terakhir ini. Sebagai contoh, saya ingin menghilangkan
scrollbar di sebelah kanan, ketikkan fungsi berikut:
M-x customize-saved
Kemudian search scroll bar, cari Scroll Bar Mode
tekan Return
kemudian ubah nilai, dan tekan Apply and Save
.
4 Menambahkan keyboard shortcut untuk emacs
Pengguna ubuntu pasti familiar dengan shortkey Ctrl+Alt+t
, ya
kombinasi tombol tersebut dapat membuka aplikasi terminal tanpa
harus bersentuhan dengan mouse.
Pagi ini muncul pertanyaan, kenapa tidak bikin shortkey juga untuk
emacs? Yah akhirnya langsung dieksekusi dengan melakukan konfigurasi
melalui System Settings
>>
keyboard
(linux mint 17.1), dan
menambahkan custom shortcut disana.
Saya pilih kombinasi Ctrl+Alt+e
, e untuk emacs, biar mudah
diingat. Dan satu hal lagi, command yang saya jalankan bukan emacs
.
, melainkan emacsclient -n -c .
, hal ini karena saya sudah
menambahkan emacs --daemon
(Baca artikel emacs as daemon) setiap
kali komputer menyala.
Yak, Ctrl+Alt+e
, dan ZAP! emacs nongol dan siap diajak kerja!
5 Membuat tautan internal di emacs org-mode
Ingin merujuk ke bagian tertentu di org-mode? Caranya mudah, gunakan syntax tujuan seperti contoh berikut:
<<sec:1>>This is target heading.
Setelah itu Anda dapat merujuk pada tautan tersebut dengan:
[[sec:1][Lihat bagian ini]]
Secara otomatis, orgmode akan membuat tautan ke <<sec:1>>
dengan
anchor text Lihat bagian ini
. Atau jika ingin anchor text dibuat
otomatis menggunakan numbering (1, 2, 3, dst), dapat juga membuat
tautan tujuan dengan syntax:
[[sec:1]]
Selamat mencoba!
6 Header org-mode untuk LaTeX export
Awal perkenalan saya dengan LaTeX
dulu karena tidak menemukan
program word processor yang mumpuni di Linux. Dari jaman openoffice
sampai libreoffice, masih saja ada kekurangpuasan, apalagi kalau
sebuah dokumen dikerjakan bareng tim yang menggunakan MS. Office
family, tambah puyeng deh, setting sama hasilnya bisa beda.
Setelah browsing sana-sini, akhirnya sadar kalau mau dokumen kita bisa dibuka di OS apapun dengan format yang dijamin sama, salah satunya adalah dengan membuat berkas dengan tipe PDF.
Salah satu aplikasi yang bagus untuk generate dokumen PDF katanya adalah =LaTeX=2, maka dicobalah si Latex. Untuk hasil, jangan tanya, PDF keluaran Latex kualitasnya masih paling bagus dibanding misalnya dengan menggunakan libreoffice. Namun, learning curve nya itu yang mungkin tidak setiap orang mampu melewatinya.
Setelah berkutat dengan LaTeX
beberapa lama, dan mulai menggunakan
emacs
instead of vim
, tau jugalah saya bahwa ternyata ada
org-mode
di emacs yang dapat digunakan untuk mengekspor dokumen
.org
ke .tex
kemudian ke .pdf
. Meskipun dari pengalaman pribadi,
untuk dokumen yang sifatnya kompleks, kadang saya masih harus switch
ke .tex
lagi, namun untuk dokumen yang tidak terlalu rumit,
org-mode
ini adalah sebuah jawaban.
Producing high-quality PDF is as easy as typing in emacs + org-mode.
By default, tanpa setting tambahan, dokumen .org
dapat langsung
diekspor ke .pdf
(tentunya Anda sudah memasang tex
di OS
Anda). Berikut ini adalah tampilan standarnya:
A little bit scary, huh?. Kurang suka dengan tampilan defaultnya?
Anda pun dapat meng-custom nya dengan menggunakan #+LATEX_xxx
di
org-mode.
Dan berikut ini adalah salah satu setting-an yang sering saya pakai. Setting ini merubah link menjadi warna biru dan tanpa box merah yang menyeramkan itu.
#+TITLE: Beginning Ruby on Rails #+AUTHOR: Kholid Fuadi #+DATE: <2015-10-10 Sat> #+STARTUP: indent #+LATEX_CLASS: article #+OPTIONS: H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t #+LATEX_CLASS_OPTIONS: [a4paper] #+LATEX_HEADER: \usepackage{graphicx} #+LATEX_HEADER: \usepackage{hyperref} #+LATEX_HEADER: \hypersetup{colorlinks,citecolor=blue,filecolor=blue,linkcolor=blue,urlcolor=blue} #+LATEX_HEADER: \usepackage{minted} #+LATEX_HEADER: \usemintedstyle{emacs} #+LATEX_HEADER: \newminted{common-list}{font-size=\footnotesize} #+LATEX: \listoftables #+LATEX: \listoffigures #+LATEX: \pagebreak
Berikut ini tangkapan layarnya:
Lebih rapi dan lebih nyaman di mata (subjective detected)…
Note:
org-mode adalah satu mode yang kompleks di emacs, ini sepadan dengan fitur-fitur yang ditawarkan, jadi saran saya jangan pernah lelah mencoba dan eksplorasi.
Once you got hangout with it, it will be one of your most powerful tools
Selamat mencoba!
7 Membuat teks rata tengah di org-mode
Gunakan blok berikut untuk membuat teks rata tengah:
#+BEGIN_CENTER Teks ini rata tengah. #+END_CENTER
8 Syntax highlighting di latex org-mode
Tambahkan konfigurasi berikut di ~/.emacs
Anda:
;; Include the latex-exporter (require 'ox-latex) ;; Add minted to the defaults packages to include when exporting. (add-to-list 'org-latex-packages-alist '("" "minted")) ;; Tell the latex export to use the minted package for source ;; code coloration. (setq org-latex-listings 'minted) ;; set minted options (setq org-latex-minted-options '(("frame" "lines") ("linenos=true") ("mathescape" "true") ("numbersep" "5pt") ;("gobble" "2") ("framesep" "2mm") ) ) ;; Let the exporter use the -shell-escape option to let latex ;; execute external programs. ;; This obviously and can be dangerous to activate! (setq org-latex-pdf-process '( "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
Note: Di tutorial asli3, command yang digunakan adalah xelatex
,
saya sendiri menggunakan pdflatex
, so jika Anda punya command
lain, silakan disesuaikan.4
Tangkapan layar output:
9 Membuat gambar centering di latex org-mode
Berikut ini adalah contoh membuat gambar centering dan float here,
kalau di LaTeX
[h!]
.
#+ATTR_LATEX: :float nil :width .6\textwidth [[file:img/emacs_customize_saved.png]]
Anda dapat mengganti :float multicolumn
untuk membuat gambar di satu
halaman khusus, tanpa ada teks lain. Atau sideways
untuk membuat
gambar tercetak vertikal, dan banyak pilihan lainnya.
:width .6\textwidth
berarti ukuran gambar adalah 60%
dari lebar
area teks. Info lebih lanjut silakan pelajari tautan ini.
10 Membuat garis horisontal di latex org-mode
Membuat garis horisontal semudah mengetikkan karakter -
minimal
sebanyak 5 kali. Meski begitu, kita dapat mengcustom lagi dengan
menambahkan atribut tertentu di atas baris tersebut.
Berikut ini contoh membuat baris dengan lebar 60% dan ketebalan .8pt dan setting ini berlaku ketika dokumen org di ekspor latex.
#+ATTR_LATEX: :width .6\textwidth :thickness 0.8pt -----
11 Why org-mode not just plain LaTeX?
Flexibility! with org-mode we can deal with text at a higher level than LaTeX, but drop to LaTeX when necessary.5
12 Memperbarui paket Emacs
Cara memperbarui paket di emacs:
M-x package-list-packages ; tunggu sampai buffer repo muncul. M-x package-menu-mark-upgrades M-x package-menu-execute
Tunggu sampai semua proses selesai. Bagaimana mengetahui proses
selesai? Tekan C-x C-b
untuk melihat buffer dan process yang
aktif. Jika sudah tidak ada proses upgrading berarti upgrade sudah
berhasil.
Referensi6
13 Follow Mode
Mode ini berguna ketika teks yang kita baca cukup panjang dan layar monitor tidak cukup memadai. Dengan mode ini, ibarat kita membaca koran, yang antara kolom satu dengan yang lain saling tersambung.
Aktifkan follow mode dengan menjalankan fungsi M-x follow-mode
,
kemudian C-x 3
untuk split vertical window kita. Dapat dilihat
sekarang, jika kita melakukan navigasi maju mundur, baik menggunakan
mouse atau keyboard, maka window satunya akan merespon.
14 Remember Mode
This mode useful to create quick and dirty notes, misal tiba-tiba
teringat sesuatu dan Anda tidak ingin lupa dengan hal penting
tersebut. Press M-x remember
, tulis catatan penting tersebut, kalau
sudah tekan C-c C-c
untuk kembali ke buffer sebelumnya. Buffer by
default akan tersimpan di ~/.notes
, yang tentu saja dapat Anda buka
lagi dengan semudah C-x C-f
.
15 Sunting Berkas sebagai sudo user
Tentu kita dapat menggunakan tramp mode
, namun ada cara yang lebih
simpel. Tambahkan baris berikut di ~/.bashrc
:
alias E="SUDO_EDITOR=\"emacsclient -c -n -a emacs\" sudoedit"
Kemudian reload konfigurasi bash
Anda menggunakan perintah source
~/.bashrc
.
Sekarang jika ingin menyunting berkas, misal /etc/hosts
, jalankan
perintah berikut di terminal:
E /etc/hosts
Trik ini hanya berlaku jika Anda menggunakan emacsclient. Penjelasan
dari parameter-parameter yang digunakan dapat dilihat menggunakan
emacsclient -h
.
16 Inserting internal link (to a file)
By default, emacs mengasumsikan link atau tautan yang kita masukkan adalah tautan ke luar (web), bagaimana jika kita ingin memasukkan tautan ke sebuah berkas, misalnya HTML?
Urutannya hampir sama, cuma kita secara eksplisit menyebutkan jenis tautan yang ingin kita sisipkan.
;; insert new link C-c C-l ;; tekan tab, nanti muncul pilihan jenis2 tautan yang ingin kita masukkan, ;; pilih file: file: Ret ;; di mini buffer, akan muncul file browser, pilih berkas yang ingin kita masukkan Ret ;; isikan deskripsi dari link tersebut, (a html tag)
17 Kombinasi keystroke yang sering saya pakai di org-mode
Selain keystroke navigasi, ada beberapa kombinasi keystroke yang sering saya pakai di emacs. Berikut ini beberapa di antaranya:
Keystroke | Keterangan |
---|---|
C-c C-l | Membuat internal link with autocompletion, |
berguna ketika membuat tautan ke berkas di sebuah direktori. | |
C-c C-x f | Membuat footnote baru. |
C-c C-e h o | Export org to HTML and open it in browser |
C-c C-e l o | Export org to PDF and open it with PDF reader. |
Footnotes:
Font xelatex
berasa lebih pekat hitamnya dibanding pdflatex
.