Perkenalan

Perkenalan

Pertama dan terutama, kata peringatan: sementara artikel sebelumnya berpusat di sekitar pemula, artikel ini untuk pengguna yang lebih maju, yang sudah "berbicara" satu atau dua bahasa pemrograman, dan ingin menyesuaikan editor mereka untuk menjadi ideal untuk yang tugas. Jadi Anda diharapkan menjadi lebih atau kurang mahir dalam cara Emac, untuk dapat menggunakannya untuk tugas sehari -hari dan memiliki kemampuan dan keinginan untuk mempelajari sesuatu yang baru. Lagipula, itu akan menjadi hadiah Anda sendiri, dan tugas pemrograman Anda akan menjadi lebih efisien. Pendekatan kami adalah mengambil beberapa bahasa populer, menunjukkan kepada Anda cara mengkonfigurasi Emacs untuk lingkungan pengembangan yang sempurna, kemudian beralih ke bahasa berikutnya. Konfigurasi Emacs dibuat dalam dialek lisp yang disebut ELISP, tetapi jangan khawatir jika Anda belum mengetahuinya, kami akan memberi tahu Anda apa yang Anda butuhkan.

Bahasa

Pertama, beberapa latar belakang. Artikel ini adalah tentang Emac, bukan tentang turunan seperti MG atau Jed yang mungkin atau mungkin tidak menawarkan fungsionalitas yang diinginkan. Itu karena banyak turunan yang lahir dari kebutuhan menciptakan Emac yang lebih kecil, karena aslinya cukup besar, diakui. Jadi dalam proses menghilangkan fungsionalitas mungkin hanya ada beberapa fungsionalitas yang dihapus dan kita mungkin akan membutuhkan di sini. Singkatnya, hanya Emacs. Kedua, file. Dalam contoh kami, selain menyesuaikan ~/.File Emacs, kami akan membuat direktori bernama ~/.Emacs.D/ Di mana kami akan menempatkan mode kami. Sama seperti Emacs tahu jenis sintaksis apa yang menyoroti, lekukan, dll. Untuk digunakan untuk beberapa jenis teks, seperti HTML, TEX, kode sumber C, dan lainnya, melalui mode, kita dapat menambahkan/memodifikasi mode sesuai dengan kesukaan kita, untuk inilah yang akan kita lakukan. Secara praktis, mode adalah file dengan a .EL Extension (dari ELISP) yang akan dijatuhkan dalam ~/.Emacs.D, lalu ~//.Emacs akan diubah untuk editor untuk "tahu" tentang ekstensi baru. Anda akan melihat dalam beberapa saat, tergantung seberapa cepat Anda membaca.

C/c++

Tampak jelas bahwa kita akan mulai dengan C, karena itu adalah bahasa pergaulan dari UNIX dan Linux. Emacs juga ditulis (sebagian) di C, jadi ada alasan lain untuk Anda. Meskipun Emacs tahu cara mendeteksi bahasa yang Anda tulis, berdasarkan ekstensi file, Anda mungkin perlu kustomisasi lebih lanjut. Dalam artikel kami, kami mengatakan bahwa ketika dalam mode C, Emac sudah sesuai dengan pedoman pengkodean GNU tentang tab, lekukan dan sebagainya. Tetapi jika Anda ingin berkontribusi kode ke kernel Linux, situasinya berubah. Jelas Anda sudah memiliki kernel mencoba diunduh di suatu tempat, tetapi jika tidak, inilah kutipan dari dokumentasi/codingstyle (tetapi jika Anda bekerja dengan orang -orang kernel, file ini harus di bawah bantal Anda):

Tab adalah 8 karakter, dan dengan demikian lekukan juga 8 karakter. Ada gerakan sesat yang mencoba membuat lekukan 4 (atau bahkan 2!) Karakter dalam, dan itu mirip dengan mencoba mendefinisikan nilai pi menjadi 3. […] Masalah lain yang selalu muncul dalam gaya C adalah penempatan kawat gigi. Berbeda dengan ukuran indentasi, ada beberapa alasan teknis untuk memilih satu strategi penempatan di atas yang lain, tetapi cara yang disukai, seperti yang ditunjukkan kepada kita oleh para nabi Kernighan dan Ritchie, adalah untuk menempatkan penjepit pembukaan terakhir di telepon, dan menempatkan penutupan penutupan Brace First, dengan demikian: if (x benar) kami lakukan y 

Jadi Anda melihat bahwa ini sudah bertentangan dengan cara Emacs melakukan hal -hal secara default, ditambah Anda ingin memiliki fungsionalitas tambahan, seperti mungkin penomoran garis atau warna yang berbeda dengan menyorot. Jadi, ini dia. Karena sudah ada mode C, kita hanya perlu menyesuaikannya dengan mengedit ~/.Emacs:

;; Beginilah komentar digunakan, tetapi lebih baik dibaca ;; http: // www.CS.CMU.edu/cgi-bin/info2www?%28elisp%29comment%20tips (setq standar-inden 8) (garis-angka-mode 1) (kolom-number-mode 1) (set-background-color "hitam") (set-Cursor-color "Red") 

Mengenai kawat gigi pembukaan yang tidak ditempatkan di barisan mereka sendiri, tidak ada yang perlu dikhawatirkan: Emacs akan bertindak seperti yang Anda harapkan jika Anda lebih suka gaya pengkodean itu.

Python

Terima kasih kepada Pedro Kroger, kami memiliki ide sederhana (dan ingin membagikannya) tentang cara mengkonfigurasi Emac Anda jika Anda adalah pengembang Python. Tak perlu dikatakan, yang Anda baca di sini adalah dengan asumsi bahwa Anda menjalankan versi stabil terbaru, bahwa menjadi 23.X . Selain itu, Anda sendiri, karena masalah kompatibilitas mungkin muncul.

Banyak distribusi menawarkan a Mode Python dikemas. Pada Debian, Gentoo dan turunannya disebut mode Python, di Fedora tampaknya terintegrasi dalam paket Emacs, Arch memilikinya dengan nama EMACS-Python-mode, dan OpenSUSE memiliki situasi yang sama dengan Fedora. Sekarang mari edit ~/.Emacs jadi ia tahu tentang itu, setelah kami menginstalnya, tentu saja:

(Tambah-ke-daftar 'load-path "~/.Emacs.d ") (membutuhkan 'Mode Python) (add-to-list' Auto-Mode-Alist '(" \\.py \\ '" . mode python)) 

Ada banyak mode lain untuk Python, dikemas atau tidak, dan kami merekomendasikan blog Pedro untuk informasi lebih lanjut. Wiki Emacs juga merupakan tempat yang baik untuk dilihat, tidak hanya untuk informasi Python, karena ini adalah sumber daya yang kaya. Dengan mode Python, Anda dapat menjalankan kode yang baru saja Anda tulis di jendela yang sama, karena sifat bahasa yang ditafsirkan. Jadi setelah membuka/membuat/mengedit Anda .file py, ketik c-c ! untuk mendapatkan shell ularung. Kembalilah ke sumber dengan c-x o, lalu ketik c-c c-c untuk membuat penerjemah ... yah, tafsir isi buffer. Anda dapat melihat hasilnya di bagian bawah jendela.

Php

Karena, dan ini juga tersedia untuk mode Python di atas, berbagai distribusi cenderung menyebutkan mode ini secara berbeda, dan beberapa bahkan tidak memilikinya sama sekali, kami akan merekomendasikan Anda menghemat waktu dan menemukan beranda mode masing -masing, menyimpan .file el dalam ~/.Emacs.D dan beri tahu Emac tentang hal itu. Dalam kasus kami, mode PHP mudah ditemukan, jadi unduh dan kemudian ketik yang berikut di ~/.Emacs:

(Tambah-ke-daftar 'load-path "~/.Emacs.d ") ;; perhatikan ' - itu bukan kesalahan ketik! (membutuhkan 'php-mode) 

Anda mungkin ingin menambahkan baris ketiga, seperti yang ada di bagian Python, sehingga Emac akan menggunakan mode php setiap kali dibuka a .file php. Kami tidak akan mengulangi perintah yang sudah disebutkan, jadi sekarang setelah Anda tahu apa yang harus ditambahkan ke ~/.File Emacs, kami hanya akan berkonsentrasi pada informasi baru. Karena kami berbicara tentang memperluas mode yang ada, sekarang Anda memiliki mode PHP di tempat, inilah cara memperpanjangnya di dalam ~/.Emacs untuk pengkodean khusus Drupal (terima kasih kepada orang-orang di Drupal, tentu saja)

(defun drupal-mode () "Drupal PHP-mode."(interaktif) (php-mode) (pesan" mode drupal diaktifkan.") (set 'tab-lebar 2) (set' c-basic-offset 2) (set 'indent-tab-mode nil) (c-set-offset' case-label '+) (c-set-offset' Arglist-Intro '+); untuk array FAPI dan DBTNG (c-set-offset' arglist-cont-nonepty 'c-lineup-math); Untuk bidang dan nilai DBTNG; lebih banyak kustomisasi spesifik drupal di sini) (Defun Setup-PHP -drupal (); drupal (add-to-list 'auto-mode-alist' ("\\.\\ (modul \\ | test \\ | instal \\ | tema \\) $ " . drupal-mode)) (add-to-list 'auto-mode-alist' ("/drupal.*\\.\\ (php \\ | inc \\) $ " . drupal-mode)) (add-to-list 'auto-mode-alist' ("\\.info " . conf-windows-mode))) (setup-php-drupal) 

Meskipun dalam kehidupan nyata saya mungkin sedikit berantakan, ketika datang ke tugas yang berhubungan dengan komputer saya. Inilah sebabnya saya meletakkan kode di atas di dalam file terpisah di ~/Emacs.D, lalu beri tahu ~/.Emacs Cara menggunakannya. Ini memungkinkan Anda untuk tidak mengacaukan ~/.File Emacs dan instruksi khusus bahasa yang terpisah dengan yang lebih umum. Misalnya, seperti yang Anda lihat di atas, ada lingkaran C ketika Anda diminta untuk pergi dengan cara tab 8-karakter. Tetapi jika saya seorang C dan juga seorang programmer Python, saya tentu tidak ingin menggunakan apa pun selain tab 4-karakter (lihat PEP 8 untuk pedoman pengkodean di Python).

SQL

Sekarang SQL adalah binatang buas yang agak berbeda. Ini belum mendapatkan pedoman pengkodean sebanyak bahasa lain, tetapi pada saat yang sama setiap vendor, komersial (oracle, microsoft) atau tidak (sqlite, postgres) memperluas bahasa standar ANSI dengan bagian tertentu. Jadi mode SQL yang baik harus tahu bagaimana menangani berbagai implementasi agar berguna. Benar, jadi melalui wiki Emacs yang sama kami temukan sqlmode, yang tampaknya persis seperti yang kami inginkan. Ia tahu postgres, mysql, ingres, db2, oracle, informix dan sybase, hanya untuk beberapa nama. Anda bisa mendapatkannya, menyimpannya dan menggunakannya. Anda juga dapat melihat Lisp yang lebih pendarahan: SQL, tetapi kami hanya akan melihat SQLMODE.

Ayo Bekerja. Untuk sampai ke interpreter SQL dari jendela yang sudah dalam mode SQL, lakukan ini: M-x sql-set-sqli-buffer return * sql * return. Berikut ini adalah cuplikan kode yang sangat praktis untuk menyimpan riwayat secara terpisah untuk setiap dialek SQL (e.G. Sybase, mssql, dan sebagainya). Agar ini berfungsi, cukup buat direktori SQL di bawah ~/.Emacs.D, lalu tambahkan kait ini ke ~/.Emacs:

(defun my-sql-save-history-hook () (let ((lval 'sql-input-ring-file-file-name) (rval' sql-product)) (if (simbol-value rval) (let ((nama file (concat "~/.Emacs.d/sql/"(simbol-nama (simbol-nilai rval))" -History.sql "))) (set (make-local-variable lval) nama))) (kesalahan (format" riwayat SQL tidak akan disimpan karena %s adalah nil "(simbol-nama rval)))))) (add-hook 'SQL-interactive-Mode-hook' my-sql-save-history-hook) 

Mode SQL Berguna Lainnya

  • Plsqlmode
  • Sqlindent
  • Sqltransform
  • Sqlplus
  • Sqlreplace

Semua ini dapat ditemukan menggunakan wiki Emacs, tetapi itu bukan satu -satunya. Menggunakan fungsi pencarian wiki akan membuat pengguna Emacs yang bahagia, karena Anda akan menemukan banyak mode praktis.

Kesimpulan

Ini hanya beberapa bahasa yang didukung Emac, baik di luar kotak atau melalui ekstensi. Sayangnya, karena kurangnya ruang, daftar di atas harus pendek, tetapi dengan kekayaan informasi yang tersedia secara online, Anda dapat, dengan sedikit usaha, menemukan mode untuk bahasa Anda atau, bahkan lebih baik, pelajari cara menulis Anda memiliki.

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Menguasai loop skrip bash
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Loop bersarang dalam skrip bash
  • Manipulasi data besar untuk kesenangan dan keuntungan bagian 1
  • Manjaro Linux vs Arch Linux
  • Ubuntu 20.04 Panduan
  • Game Terminal Terbaik di Linux