GNU/Linux >> Belajar Linux >  >> Linux

Memulai Emacs:Penjelasan Perintah Dasar

Ada banyak editor berbasis teks di Linux. Beberapa datang dengan sebagian besar distro, yang lain Anda harus menginstal setelah fakta. Editor berbasis teks adalah alat penting untuk setiap pengguna atau admin Linux. Server sering tidak memiliki GUI, dan meskipun Linux itu sendiri sangat stabil, saya telah melihat GUI crash berkali-kali. Saat Anda kehilangan GUI, memiliki seperangkat alat berbasis teks yang nyaman bagi Anda adalah suatu keharusan.

Sebelum saya memulai dasar-dasar pengoperasian GNU Emacs, saya ingin mengklarifikasi sesuatu terlebih dahulu. Anda mungkin menyadari perang "Emacs Vs Vim" yang menyebabkan banyak diskusi yang terlalu panas. Saya suka Vim, menggunakannya selama lebih dari satu dekade. Tapi inilah hal tentang Emacs, ini bukan hanya editor teks.

Pada intinya, Emacs secara sederhana dapat digambarkan sebagai kerangka kerja penyangga dan bingkai. Bingkai adalah cara Anda membagi jendela, Anda dapat memiliki bingkai sebanyak yang Anda inginkan. Dalam mode GUI, Anda dapat memiliki beberapa jendela Emacs, masing-masing berisi satu atau lebih bingkai. Kemudian Anda memiliki buffer, buffer diisi dengan konten yang diumpankan dari suatu tempat. Saat Anda memberi makan buffer dengan file, maka Emacs memainkan peran sebagai editor teks. Anda bahkan dapat menggunakan Emacs sebagai pengelola jendela Anda.

Memahami tata letak Emacs

Pertama, mari kita fokus pada dasar-dasarnya. Di sini Anda akan mempelajari dasar-dasar pengoperasian Emacs.

Emacs dapat diinstal langsung melalui manajemen paket distribusi Anda. Setelah instalasi, memulai Emacs akan memulai mode GUI. Mode ini dapat berguna saat Anda memulai, karena menyediakan akses bilah menu. Penting untuk diingat bahwa setiap entri menu cukup menjalankan perintah Emacs dan ini semua dapat dilakukan dalam mode teks. Untuk memaksa mode teks saat berada di lingkungan GUI, jalankan emacs –nw di terminal.

Saat pertama kali memulai Emacs, Anda akan disajikan layar selamat datang. Layar ini sudah menampilkan lebih banyak fitur Emacs. Teks yang digarisbawahi adalah tautan, mereka dapat diaktifkan dengan klik mouse atau tekan enter dengan kursor di salah satunya. Beberapa adalah tautan ke halaman web, yang kemungkinan besar akan membuka eww (peramban web bawaan Emacs). Ada juga tutorial bawaan di halaman itu.

Tata letak awal Anda akan terdiri dari satu bingkai, kemungkinan besar berisi konten tentang Emacs. Di bawah bingkai, Anda memiliki bilah status dan apa yang tampak seperti ruang kosong di bawah bilah status. Ruang kosong ini sebenarnya adalah buffer mini yang digunakan Emacs untuk berinteraksi dengan Anda. Pada gambar, mini-buffer memiliki teks undefined.

Konsep penting dari key binding di Emacs

Pengikatan tombol (atau pintasan keyboard) adalah cara Anda memerintahkan Emacs. Itu selalu dimulai dengan pengikatan kunci.

Emacs menggunakan kunci pengubah sebagai awalan pengikatan kunci. Pengubah yang paling penting adalah C (Ctrl), M (Meta), S (Shift). M (Meta, biasanya ditetapkan ke ALT).

Untuk meringkas, konvensi kuncinya adalah:

  • C =Ctrl
  • M =Meta =Alt
  • S =Pergeseran

Sejujurnya saya berpikir bahwa pengikatan kunci adalah salah satu alasan utama orang menjauh dari belajar Emacs. Ada lebih dari 1300 ikatan kunci dalam pengaturan Emacs default. Tapi jangan lupa, Emacs hanyalah editor teks saat mengedit file, 1300+ key binding itu lebih dari sekadar mengedit file.

Jadi bagaimana seseorang mulai mempelajari Emacs dan obsesinya dengan ikatan kunci? Hal ini cukup sederhana, ide dasarnya adalah untuk berlatih beberapa kunci mengikat pada suatu waktu, mereka akan menjadi memori otot dengan sangat cepat. Ketika saya merekam pelajaran video tentang Emacs, saya mengucapkan kunci yang mengikat saat saya menekannya, setidaknya saya mencoba. Yang benar adalah bahwa penekanan tombol sudah lama dilakukan dan diproses sementara saya masih mencoba mencari tahu yang mana. Bagian terbesar dan tersulit adalah dokumen ini.

Mari kita mulai dan ingat untuk banyak berlatih mengikat kunci!

Cara terbaik untuk menjelaskan bagaimana kita menulis key binding adalah dengan beberapa contoh. Tidak semua contoh adalah pengikatan kunci fungsional:

  • C-x =CTRL+x
  • C-x 2 =Tekan CTRL dan x lalu tekan 2 (tombol CTRL harus dilepaskan sebelum menekan 2)
  • C-x C-2 =Tekan CTRL dan x lalu CTRL dan 2. Atau CTRL-x-2 (Jangan lepaskan CTRL)
  • Perintah M-x =Tekan META+x

Anda juga akan secara teratur melihat dalam dokumentasi pengikatan kunci yang ditulis dengan teks di ().

C-x C-f (find-file)

Teks di dalam () mewakili fungsi Emacs yang akan dieksekusi dengan pengikatan kunci ini. Akan menjadi jelas mengapa ini penting segera.

Kunci favorit Emacs adalah CTRL dan ALT. Sementara tombol ALT tidak menimbulkan masalah, penggunaan ekstensif tombol CTRL Kiri sangat terkenal menyebabkan masalah jari kelingking. Anda dapat dengan mudah menggunakan xmodmap untuk menukar tombol CTRL dan CAPSLOCK atau kunci lain yang Anda inginkan.

Menggunakan Emacs dengan ikatan kunci alias Perintah Emacs

Seperti yang disebutkan sebelumnya, fokus mempelajari beberapa ikatan kunci sekaligus, mereka akan menjadi memori otot. Set pertama adalah bagian tersulit tetapi akan cukup bagi Anda untuk mulai bekerja dengan Emacs sebagai editor teks.

Memanipulasi Frame
C-x 2 split-window-bawah
C-x 3 split-window-kanan
Cx o jendela lain
C-x 1 hapus-jendela-lainnya
C-x 0 hapus-jendela
Memanipulasi buffer
C-x b beralih ke buffer
C-x C-B daftar-buffer
Cx k kill-buffer
Buka dan simpan file
C-x C-f cari file
C-x C-s save-buffer
Telusuri &ganti
C-s cari-maju
C-r mencari-mundur
Pilih, potong, salin &tempel
C- set-mark-command
B-w wilayah pembunuhan
M-w bunuh-cincin-simpan
C-y tarik
Melaksanakan perintah
M-x execute-extended-command

Mari kita bicarakan ini secara mendetail.

Memanipulasi Frame di Emacs

Seperti yang disebutkan sebelumnya, bingkai adalah cara Emacs membagi jendelanya. Sebelum belajar tentang buffer mari kita lihat bagaimana kita membagi layar kita.

  • C-x 2 akan membagi frame saat ini secara horizontal.
  • C-x 3 akan membagi frame saat ini secara vertikal.
  • C-x o akan memindahkan fokus ke frame berikutnya. Jika mini-buffer aktif, itu akan menjadi bagian dari siklus.
  • C-x 1 akan menutup semua bingkai lainnya, hanya menyisakan bingkai saat ini. Itu tidak menutup buffer.
  • C-x 0 menutup frame saat ini.

Gambar di bawah ini menampilkan banyak frame, beberapa menampilkan buffer yang sama tetapi dengan kursor di lokasi yang berbeda.

Memanipulasi Buffer di Emacs

  • C-x b (switch-to-buffer)
  • C-x C-B (daftar-buffer)
  • C-x k (pembunuh-buffer)

Buffer adalah apa yang Anda gunakan, buffer berisi data, sebagian besar teks. Saat Anda membuka file, konten file itu ditempatkan di buffer. Buffer ini akan diberi nama setelah nama file. Anda kemudian bekerja di dalam buffer. Perubahan diterapkan ke sumber (file) saat penyimpanan diminta. Secara default, Emacs memiliki penyimpanan otomatis. Itu tidak menyimpan setiap x menit, tetapi setiap x modifikasi dilakukan pada buffer. Buffer terbuka tanpa modifikasi tidak akan memicu penyimpanan otomatis.

Untuk beralih ke buffer lain, tekan C-x b, minibuffer akan aktif dan siap menerima nama buffer. Pelengkapan otomatis terikat dengan kunci . Jika beberapa kecocokan dimungkinkan, tekan untuk kedua kalinya akan membuat buffer sementara dengan semua kemungkinan kecocokan. Jika Anda memberikan nama buffer yang tidak ada, buffer baru akan dibuat. Ini TIDAK membuat file baru. Saya sering menggunakan ini untuk membuat buffer sementara.

Tidak perlu waktu lama untuk memiliki banyak buffer, dan Anda mungkin tidak mengingat semuanya. Untuk membuat daftar semua buffer yang sedang dibuka, tekan C-x C-b . Buffer baru akan terbuka dalam bingkai terpisah dengan daftar lengkap buffer. Anda dapat bermanuver di dalam buffer itu dengan tombol panah dan beralih ke buffer di titik dengan .

Dari dalam daftar buffer, Anda dapat menandai entri pada titik untuk:

  • menyimpan dengan menekan s
  • Deletion (Membunuh buffer, tidak menghapus file) dengan menekan d atau k
  • Hapus bendera dengan menekan u
  • Jalankan semua tanda yang ditandai dengan menekan x

Untuk mematikan buffer apa pun, tekan C-x k buffer mini akan aktif dan menunggu nama buffer, Anda dapat memasukkan nama buffer yang ada dan tekan . Jika Anda tidak memberikan nama dan menekan , Emacs akan menutup buffer saat ini.

Gambar berikut menampilkan daftar buffer dengan buffer yang ditandai untuk disimpan atau dihapus.

Buka dan simpan file di Emacs

  • C-x C-f (cari file)
  • C-x C-s (save-buffer)

Sebagian besar waktu Anda perlu bekerja dengan file. Mulailah dengan membuka file dengan menekan C-x C-f. Buffer mini memberi Anda jalur dan siap bagi Anda untuk memasukkan jalur untuk file yang ingin Anda buka. Pelengkapan otomatis juga berfungsi di sini, akan melengkapi direktori dan nama file secara otomatis. Setelah Anda puas dengan jalur file, tekan . Buffer baru akan terbuka dengan konten file. Buffer akan diberi nama setelah file. Setelah buffer dimodifikasi, 2 bintang akan muncul di sisi kiri bilah status. Untuk menyimpan modifikasi Anda:C-x C-s

Jika Anda memberikan jalur ke file yang tidak ada setelah menekan C-x C-f, buffer baru akan dibuat tetapi file hanya akan dibuat saat Anda menyimpan buffer.

Jika Anda memberikan jalur direktori setelah C-x C-f, buffer baru akan terbuka dengan konten direktori. Buffer baru ini akan berada dalam mode DIRED. Saat dalam mode DIRED Anda dapat bermanuver dengan tombol panah. Ketika pada file yang diinginkan, tekan dan itu akan terbuka di buffer baru. Jika Anda kembali memilih untuk menekan pada direktori, sekali lagi buffer baru akan terbuka dalam mode DIRED.

Banyak operasi yang dapat dilakukan pada sistem file saat dalam mode DIRED, tetapi seperti yang dijelaskan sebelumnya, mari kita fokus pada dasar-dasarnya terlebih dahulu.

Saat Anda bekerja pada sistem Linux, Anda sering kali harus mengerjakan file yang memerlukan akses root. Emacs menangani ini dengan sangat baik. Jangan tutup Emacs dan jalankan sebagai root, ini bukan ide yang baik.

Tekan C-x C-f kemudian lanjutkan untuk menghapus jalur yang diberikan di minibuffer dan menggantinya dengan /sudo::/path/to/file . Emacs akan mencoba membuka file dengan perintah sudo and jika diperlukan, Anda akan dimintai kata sandi.

Jika Anda mencoba menggunakan pelengkapan otomatis , kata sandi Anda akan diminta jika diperlukan dan pelengkapan otomatis akan berfungsi. Mode DIRED dapat dibuka sebagai root. Perhatikan bahwa buffer baru bernama *tramp/sudo …. akan dibuat. Ini adalah buffer yang dibutuhkan oleh Emacs untuk menangani sudo.

Jika Anda menghapusnya, meskipun tidak disarankan, kemungkinan besar Anda akan dimintai kata sandi saat mencoba menyimpan dan buffer gelandangan akan kembali. Membuka banyak buffer sebagai root akan menghasilkan banyak buffer gelandangan.

Membuka file di komputer jarak jauh semudah menggunakan ssh dari dalam Emacs:

C-x C-f /ssh:[email protected]:/path/to/file

Haruskah Anda bertanya-tanya tentang membuka file pada sistem jarak jauh sebagai root? Ya, tapi saya akan menyimpan ini untuk lain waktu.

Gambar ini ditampilkan pada mode DIRED bingkai kiri dari direktori home saya dan di sebelah kanan file .emacs saya.

Cari &Ganti di Emacs

  • C-s (isearch-forward)
  • C-r (isearch-mundur)
  • M-% (penggantian kueri)

Untuk melakukan pencarian terusan, tekan C-s ini akan mengaktifkan minibuffer bagi Anda untuk memasukkan teks yang akan dicari. Pencarian terjadi saat Anda mengetik. Untuk pindah ke pertandingan berikutnya, tekan C-s lagi. Pencarian akan membungkus tetapi setelah memperingatkan Anda sekali. Perhatikan bahwa menekan backspace terlebih dahulu akan kembali ke pertandingan sebelumnya sebelum menghapus karakter.

Untuk menelusuri mundur, tekan C-r

Untuk mengganti, tekan M-% dan Anda kemudian akan menyiapkan minibuffer untuk mengambil parameter pencarian. Masukkan dan tekan , lalu lanjutkan dengan memberikan string pengganti dan tekan .

Pencarian &penggantian akan dijalankan dari kursor hingga akhir buffer.

Pilih, potong, salin, dan tempel di Emacs

  • C- (set-mark-command)
  • C-w (wilayah pembunuhan)
  • M-w (kill-ring-save)
  • C-y (tarik)
  • M-y (yank-pop)

Emacs memiliki konsep pilih, potong, salin &tempel yang sangat berbeda. Pertama, mari kita lihat memilih. Sementara mouse bekerja sangat baik dalam mode GUI, belajar untuk tidak menggunakannya akan terbayar ketika GUI hilang. Apa yang Anda sebut sebagai area yang dipilih, Emacs menyebutnya sebagai wilayah aktif. Untuk memilih atau mengaktifkan suatu wilayah, tempatkan kursor Anda di awal area yang diinginkan, lalu tekan C- pindahkan kursor Anda 1 karakter melewati akhir area yang diinginkan. Wilayah ini secara otomatis diaktifkan. Meskipun konsep wilayah aktif ini mungkin tampak tidak berguna sekarang, penting untuk memahaminya saat Anda mulai membuat fungsi untuk mengotomatiskan tugas yang berulang.

Emacs tidak memotong, itu membunuh. Saat Anda membunuh wilayah aktif dengan C-w , Emacs akan "memotong" itu dari buffer dan menyimpannya di ring pembunuh. Cincin pembunuh menyimpan beberapa entri baik terbunuh C-w atau menyalin M-w . Anda kemudian dapat menarik (menempelkan) entri tersebut keluar dari cincin pembunuh dan ke buffer saat ini pada titik dengan C-y . Jika tepat setelah menekan C-y Anda melanjutkan dengan M-y, entri yang ditempelkan ke buffer dari cincin pembunuh akan diganti dengan yang sebelumnya. Menarik entri dari cincin pembunuh TIDAK menghapusnya dari cincin pembunuh dan dapat ditarik kembali nanti.

Jalankan perintah yang diperluas di Emacs

  • M-x (execute-extended-command)

Meta-x adalah pengikatan kunci yang unik. Setelah menekan tombol pengikatan, lihat buffer mini. Kursor Anda akan secara otomatis ditempatkan di sana dan Emacs dan siap menerima perintah.

Perintah untuk ikatan kunci ditulis dalam tanda kurung. Jangan ketik tanda kurung saat mengetik perintah. Setelah menulis perintah Anda, tekan .

Perintah M-x biasanya ditulis dalam format berikut:

M-x find-file <RET> ~/path/to/file <RET>

Perhatikan bahwa pelengkapan otomatis didukung dengan kunci

Mengapa mempelajari tentang perintah ketika saya dapat menggunakan pengikatan kunci? Pertama, bahkan dengan lebih dari 1300 ikatan kunci, tidak setiap perintah memilikinya. Perintah ini juga memberi Anda kekuatan untuk menulis fungsi untuk melakukan modifikasi yang diinginkan ke area yang dipilih (wilayah aktif) atau seluruh buffer. Fungsi-fungsi tersebut kemudian dapat dipanggil dengan M-x functionName dan jika perlu terikat pada kombinasi tombol pilihan Anda.

Satu perintah yang layak ditampilkan kepada pengguna baru adalah M-x shell . Ingat seperti yang saya katakan Emacs bukan hanya editor teks. Perintah di atas akan membuka buffer baru dengan prompt shell. Ini bukan emulator terminal lengkap, misalnya, tidak menangani aplikasi berbasis curl dengan sangat baik. Tampilan tidak disegarkan dengan benar. Tetapi memiliki kelebihan lain. Buffer shell ini adalah buffer teks baca/tulis. Saat Anda meletakkan kursor di akhir dan mengetik perintah, lalu tekan   , perintah dikirim ke subkulit dan output ditambahkan ke buffer. Ini memungkinkan Anda untuk dengan mudah mencari bolak-balik, menyalin dan menempel, memilih seluruh wilayah dan bahkan menyimpan konten buffer ke file.

Perintah terpenting kedua untuk dipelajari adalah M-x ren-buf NewBufferName . Perintah ini memungkinkan Anda untuk mengganti nama buffer saat ini. Jika buffer berisi konten file, ini tidak akan mengubah nama file. Ini berguna ketika Anda membutuhkan lebih dari satu shell. Jika Anda mengetik M-x shell dan Anda memiliki satu yang terbuka, itu akan memunculkan yang sudah ada. Ganti nama buffer *shell* untuk membuka lebih banyak shell. Emacs juga memiliki eshell dan istilah, tetapi ini di luar cakupan kami saat ini.

Kesimpulan

Artikel ini merupakan pengantar yang sangat singkat dan cepat untuk Emacs. Anda telah mempelajari perintah dasar/ikatan kunci Emacs dan beberapa konsep dasar tentang pengeditan dengan Emacs.

Ada banyak lagi yang bisa dilakukan untuk Anda. Dengan lebih dari 4000 paket yang tersedia untuk instalasi dengan sistem manajemen paket terintegrasi Emacs. Fleksibilitas yang ditawarkannya sungguh mencengangkan. Emacs akan tumbuh dan berkembang bersama Anda.

Untuk informasi lebih lanjut tentang Emacs dan subjek Linux lainnya, ikuti saya di Facebook:Belajar Linux dengan Eric Simard


Linux
  1. Memulai dengan Zsh

  2. Memulai PostgreSQL di Linux

  3. Memulai SSH di Linux

  1. 20 Perintah Dasar Linux untuk Pemula Dijelaskan dengan Contoh

  2. Memulai dengan ls

  3. Memulai Samba untuk interoperabilitas

  1. Memulai dengan GnuCash

  2. Memulai dengan Etcher.io

  3. Memulai dengan ekspresi reguler