Pengenalan

Pengenalan

Pertama dan terpenting, kata amaran: sementara artikel -artikel sebelumnya berpusat di sekitar pemula, artikel ini adalah untuk pengguna yang lebih maju, yang sudah "bercakap" bahasa pengaturcaraan atau dua, dan ingin menyesuaikan editor mereka ke arahnya menjadi ideal untuk tugas. Oleh itu, anda dijangka lebih kurang mahir dalam cara emacs, dapat menggunakannya untuk tugas sehari -hari dan mempunyai keupayaan dan keinginan untuk mempelajari sesuatu yang baru. Lagipun, ia akan menjadi ganjaran anda sendiri, dan tugas pengaturcaraan anda akan menjadi lebih cekap. Pendekatan kami adalah untuk mengambil beberapa bahasa yang popular, menunjukkan kepada anda cara mengkonfigurasi emacs untuk persekitaran pembangunan yang sempurna, kemudian beralih ke bahasa seterusnya. Konfigurasi Emacs dibuat dalam dialek LISP yang dipanggil ELISP, tetapi jangan risau jika anda belum tahu, kami akan memberitahu anda apa yang anda perlukan.

Bahasa

Pertama, beberapa latar belakang. Artikel ini adalah mengenai emacs, bukan mengenai derivatif seperti mg atau jed yang mungkin atau mungkin tidak menawarkan fungsi yang dikehendaki. Itu kerana banyak derivatif dilahirkan dari keperluan mencipta emac yang lebih kecil, kerana asalnya cukup besar, diakui. Oleh itu, dalam proses menghapuskan fungsi mungkin hanya ada beberapa fungsi yang dikeluarkan dan kita mungkin perlu di sini. Pendek kata, Emacs sahaja. Kedua, fail. Dalam contoh kami, selain menyesuaikan ~/.fail emacs, kami akan membuat direktori bernama ~/.Emacs.d/ di mana kita akan meletakkan mod kita. Sama seperti Emacs tahu jenis sintaks yang menonjol, lekukan, dll. Untuk digunakan untuk beberapa jenis teks, seperti kod sumber HTML, TEX, C, dan lain -lain, melalui mod, kita boleh menambah/mengubah mod yang sesuai dengan keinginan kami, untuk ini adalah apa yang akan kami lakukan. Secara praktiknya, mod adalah fail dengan a .lanjutan EL (dari ELISP) yang akan dijatuhkan dalam ~/.Emacs.d, kemudian ~/.Emacs akan diubah untuk editor untuk "tahu" mengenai lanjutan baru. Anda akan melihat dalam beberapa saat, bergantung pada seberapa cepat anda membaca.

C/c++

Nampaknya jelas bahawa kita akan bermula dengan C, kerana ia adalah Lingua Franca Unix dan Linux. Emacs juga ditulis (sebahagiannya) di C, jadi ada sebab lain untuk anda. Walaupun Emacs tahu bagaimana untuk mengesan bahasa yang anda tulis, berdasarkan lanjutan fail, anda mungkin memerlukan penyesuaian selanjutnya. Dalam artikel kami, kami mengatakan bahawa ketika dalam mod C, emacs sudah mematuhi garis panduan pengekodan GNU mengenai tab, lekukan dan sebagainya. Tetapi jika anda ingin menyumbang kod kepada kernel Linux, keadaan berubah. Jelas sekali anda sudah mempunyai kernel cuba dimuat turun di suatu tempat, tetapi jika tidak, inilah petikan dari dokumentasi/codingstyle (tetapi jika anda bekerja dengan orang kernel, fail ini mesti berada di bawah bantal anda):

Tab adalah 8 aksara, dan dengan itu lekukan juga 8 aksara. Terdapat pergerakan bidaah yang cuba membuat lekukan 4 (atau bahkan 2!) watak -watak yang mendalam, dan itu serupa dengan cuba menentukan nilai pi menjadi 3. [...] isu lain yang selalu muncul dalam gaya C adalah penempatan pendakap. Tidak seperti saiz indent, terdapat beberapa sebab teknikal untuk memilih satu strategi penempatan di pihak yang lain, tetapi cara yang disukai, seperti yang ditunjukkan kepada kami oleh para nabi Kernighan dan Ritchie, adalah meletakkan pendakap pembukaan yang terakhir, dan meletakkan penutupan Brace terlebih dahulu, dengan demikian: jika (x adalah benar) kita lakukan y 

Oleh itu, anda melihat bahawa ini sudah bertentangan dengan cara emacs melakukan perkara secara lalai, dan anda akan mempunyai fungsi tambahan, seperti mungkin penomboran garis atau warna yang berbeza dengan menonjol. Jadi, di sini kita pergi. Kerana sudah ada mod C, kita hanya perlu menyesuaikannya dengan mengedit ~/.Emacs:

;; Ini adalah bagaimana komen digunakan, tetapi lebih baik dibaca ;; http: // www.cs.CMU.edu/cgi-bin/info2www?%28ELISP%29COMMENT%20TIPS (SETQ Standard-Indent 8) (Line-Number-Mode 1) (Lajur-Number-Mode 1) (set-background-color "hitam") (set-color "Red") 

Mengenai pendakap pembukaan yang tidak diletakkan di barisan mereka sendiri, tidak ada yang perlu dibimbangkan: Emacs akan bertindak seperti yang anda harapkan jika anda lebih suka gaya pengekodan itu.

Python

Terima kasih kepada Pedro Kroger, kami mempunyai idea yang mudah (dan ingin berkongsi) tentang cara mengkonfigurasi emac anda jika anda seorang pemaju python. Tidak perlu dikatakan, semua yang anda baca di sini adalah mengandaikan bahawa anda menjalankan versi stabil terkini, yang menjadi 23.x . Selain itu, anda sendiri, kerana masalah keserasian mungkin timbul.

Banyak pengagihan menawarkan a Python-Mode dibungkus. Pada Debian, Gentoo dan Derivatif Ia dipanggil Python-Mode, di Fedora nampaknya ia disepadukan dalam pakej Emacs, Arch memilikinya di bawah nama Emacs-Python-Mode, dan OpenSuse mempunyai situasi yang sama seperti Fedora. Sekarang mari kita edit ~/.Emacs jadi ia tahu mengenainya, setelah kita memasangnya, tentu saja:

(Tambah ke senarai 'Laluan Laluan "~/.Emacs.d ") (memerlukan 'python-mod) (add-to-list' auto-mode-alist '(" \\.py \\ '" . mod python)) 

Terdapat banyak mod lain untuk python, dibungkus atau tidak, dan kami mengesyorkan blog Pedro untuk maklumat lanjut. Wiki Emacs juga adalah tempat yang baik untuk dilihat, bukan hanya untuk maklumat python, kerana ia adalah sumber yang kaya. Dengan python-mod, anda boleh melaksanakan kod yang anda tulis dalam tetingkap yang sama, kerana sifat bahasa yang ditafsirkan. Jadi setelah membuka/membuat/mengedit anda .fail py, taipkan c-c ! untuk mendapatkan cangkang python. Bergerak kembali ke sumber dengan C-X O, kemudian ketik C-C C-C untuk mendapatkan jurubahasa ... dengan baik, mentafsirkan kandungan penampan. Anda dapat melihat hasilnya di bahagian bawah tingkap.

Php

Oleh kerana, dan ini juga tersedia untuk mod python di atas, pelbagai pengagihan cenderung untuk menamakan mod ini secara berbeza, dan ada juga yang tidak memilikinya sama sekali, kami akan mengesyorkan anda menjimatkan masa dan mencari laman utama mod masing -masing, simpan .el file di ~/.Emacs.D dan beritahu Emacs mengenainya. Dalam kes kami, mod php mudah dicari, jadi muat turun dan kemudian taipkan perkara berikut ~/.Emacs:

(Tambah ke senarai 'Laluan Laluan "~/.Emacs.d ") ;; perhatikan ' - bukan kesilapan kesilapan! (memerlukan 'php-mod) 

Anda mungkin mahu menambah baris ketiga, sama seperti yang ada di bahagian python, sehingga emacs akan menggunakan mod php setiap kali ia membuka a .fail php. Kami tidak akan mengulangi arahan yang telah disebutkan, jadi sekarang anda tahu apa yang perlu ditambah kepada anda ~/.fail emacs, kami hanya akan menumpukan perhatian pada maklumat baru. Oleh kerana kami bercakap tentang memperluaskan mod yang ada, sekarang anda mempunyai mod PHP di tempat, inilah cara untuk melanjutkannya ke dalam ~/.Emacs untuk pengekodan khusus Drupal (terima kasih kepada lelaki di Drupal, tentu saja)

(Defun Drupal-Mode () "Drupal PHP-Mode."(interaktif) (php-mod) (mesej" mod Drupal diaktifkan.") (set 'Tab-width 2) (set' C-Basic-offset 2) (set 'indent-tabs-mode nil) (C-set-offset' Case-label '+) (c-set-offset' arglist-intro '+); untuk tatasusunan fapi dan dbtng (c-set-offset' arglist-cont-nonempty 'c-lineup-math); untuk bidang dan nilai dbtng; lebih banyak penyesuaian khusus di sini) -drupal (); drupal (add-to-list 'auto-mode-alist' ("\\.\\ (modul \\ | test \\ | Pasang \\ | tema \\) $ " . mod drupal)) (add-to-list 'auto-mode-alist' ("/Drupal.*\\.\\ (php \\ | inc \\) $ " . mod drupal)) (add-to-list 'auto-mode-alist' ("\\.Maklumat " . conf-windows-mode))) (persediaan-php-drupal) 

Walaupun dalam kehidupan sebenar saya mungkin sedikit kemas, ketika datang ke tugas berkaitan komputer saya, saya suka pesanan. Inilah sebabnya saya meletakkan kod di atas di dalam fail berasingan di ~/emacs.D, kemudian beritahu ~/.emacs cara menggunakannya. Ini membolehkan anda tidak berantakan ~/.fail emacs dan arahan khusus bahasa yang berasingan dengan lebih banyak generik. Contohnya, seperti yang anda lihat di atas, terdapat lingkaran C ketika anda diminta untuk pergi ke Tab 8-karakter. Tetapi jika saya adalah C dan juga seorang pengaturcara Python, saya pasti tidak mahu menggunakan apa-apa lagi daripada tab 4 aksara (lihat PEP 8 untuk garis panduan pengekodan di Python).

SQL

Sekarang sql adalah binatang yang agak berbeza. Ia tidak mendapat banyak garis panduan pengekodan sebagai bahasa lain, tetapi pada masa yang sama setiap vendor, komersial (Oracle, Microsoft) atau tidak (SQLite, postgres) memanjangkan bahasa standard ANSI dengan bahagian tertentu. Oleh itu, mod SQL yang baik mesti tahu bagaimana menangani pelbagai pelaksanaan agar berguna. Betul, jadi melalui wiki emacs yang sama kami dapati sqlmode, yang nampaknya betul -betul apa yang kami mahukan. Ia tahu Postgres, Mysql, Ingres, DB2, Oracle, Informix dan Sybase, hanya untuk menamakan beberapa. Anda hanya boleh mendapatkannya, simpan dan gunakannya. Anda juga boleh melihat LISP yang lebih berdarah: SQL, tetapi kami hanya akan melihat SQLMode.

Jom pergi kerja. Untuk sampai ke penterjemah SQL dari tetingkap yang sudah ada dalam mod SQL, lakukan ini: M-X SQL-SET-SQLI-BUFFER RETURN * SQL * RETURN. Apa yang berikut adalah coretan kod yang sangat praktikal untuk menyelamatkan sejarah secara berasingan untuk setiap dialek SQL (e.g. Sybase, MSSQL, dan sebagainya). Agar ini berfungsi, buatlah direktori SQL di bawah ~/.Emacs.d, kemudian tambahkan cangkuk ini ke ~/.Emacs:

(defun my-sql-save-history-hook () (biarkan ((lval 'sql-input-ring-file-name) (Rval' sql-product))) (if (simbol-nilai rval) (biarkan ((fileName (concat "~/.Emacs.d/sql/"(simbol-nama (simbol-nilai rval))" -sistory.sql "))) (set fileNe))) (ralat (format" Sejarah SQL tidak akan disimpan kerana %s adalah nol "(simbol-nama rval)))))) (add-hook 'SQL-interaktif-mod-hook' my-sql-save-history-hook) 

Mod SQL berguna lain

  • Plsqlmode
  • Sqlindent
  • Sqltransform
  • Sqlplus
  • Sqlreplace

Semua ini dapat dijumpai menggunakan wiki emacs, tetapi itu bukan satu -satunya. Menggunakan fungsi carian wiki akan menjadikan pengguna Emacs gembira, kerana anda akan mendapat banyak mod praktikal.

Kesimpulan

Ini hanya beberapa bahasa yang disokong oleh emac, sama ada di luar kotak atau melalui sambungan. Malangnya, kerana kekurangan ruang senarai di atas harus menjadi yang pendek, tetapi dengan kekayaan maklumat yang ada dalam talian, anda boleh, dengan sedikit usaha, mencari mod bahasa anda atau, lebih baik, belajar bagaimana menulis anda sendiri.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Menguasai Gelung Skrip Bash
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Gelung bersarang dalam skrip bash
  • Manipulasi data besar untuk keseronokan dan keuntungan bahagian 1
  • Manjaro Linux vs Arch Linux
  • Ubuntu 20.04 Panduan
  • Permainan Terminal Terbaik di Linux