Wstęp

Wstęp

Przede wszystkim słowo ostrzeżenia: podczas gdy poprzednie artykuły koncentrowały się wokół początkującego, ten artykuł jest dla bardziej zaawansowanych użytkowników, którzy już „mówią” język programowania lub dwa, i chcą dostosować swój edytor do tego, że jest idealny dla idealnego dla tego zadanie. Dlatego oczekuje się, że będziesz mniej lub bardziej biegłości w EMACS, aby móc go używać do codziennych zadań i mieć zdolność i chęć nauki czegoś nowego. W końcu będzie to dla twojej własnej nagrody, a twoje zadania programowe staną się bardziej wydajne. Naszym podejściem będzie wzięcie kilku popularnych języków, pokazanie, jak skonfigurować EMACS dla idealnego środowiska programistycznego, a następnie przejść do następnego języka. Konfiguracja EMACS jest wykonana w dialekcie LISP o nazwie ELISP, ale nie martw się, jeśli jeszcze go nie wiesz, powiemy, czego potrzebujesz.

Języki

Po pierwsze, trochę tła. Ten artykuł dotyczy Emacsa, a nie o żadnej pochodnej, takiej jak MG lub Jed, które mogą, ale nie muszą oferować pożądanej funkcjonalności. To dlatego, że wiele pochodnych narodziło się z potrzeby stworzenia mniejszych Emacsa, ponieważ oryginał jest dość duży, co prawda. Tak więc w trakcie usuwania funkcjonalności może istnieć tylko pewna funkcjonalność, która jest usuwana i prawdopodobnie będziemy potrzebować tutaj. Krótko mówiąc, tylko Emacs. Po drugie, pliki. W naszych przykładach, oprócz dostosowania ~/.Plik EMACS utworzymy katalog o nazwie ~//.Emacs.d/ gdzie będziemy umieścić nasze tryby. Tak jak Emacs wie, jaki rodzaj podświetlania składni, wgłębienia itp. Aby użyć kilku rodzajów tekstu, takich jak kod źródłowy HTML, Tex, C i inne, za pomocą trybów, możemy dodawać/modyfikować tryby do naszych upodobań, do tego, co zrobimy. Praktycznie mówiąc, tryb to plik z .El rozszerzenie (z ELISP), które zostaną upuszczone ~/.Emacs.d, potem ~/.EMACS zostanie zmieniony, aby redaktor „wie” o nowym rozszerzeniu. Za kilka chwil zobaczysz, w zależności od tego, jak szybko czytasz.

C/c++

Wydaje się oczywiste, że zaczniemy od C, ponieważ to jest mieszanina języków UNIX i LINUX. Emacs jest również napisany (częściowo) w C, więc jest dla ciebie inny powód. Chociaż Emacs wie, jak wykryć język, w którym piszesz, na podstawie rozszerzenia plików, możesz potrzebować dalszej dostosowywania. W naszym artykule powiedzieliśmy, że w trybie C EMACS już jest zgodny z wytycznymi kodowania GNU dotyczące kart, wgłębienia i tak dalej. Ale jeśli chcesz wnieść kod do jądra Linux, sytuacja się zmienia. Oczywiście masz już gdzieś pobranie jądra, ale jeśli tego nie zrobisz, oto fragment dokumentacji/kodowania (ale jeśli pracujesz z facetami z jądra, ten plik musi być pod twoją poduszką):

Zakładki to 8 znaków, a zatem wgłębienia to także 8 znaków. Istnieją ruchy heretyczne, które próbują uczynić wgłębienia 4 (lub nawet 2!) Postacie głębokie, a to przypomina próbę zdefiniowania wartości PI na 3. […] Innym problemem, który zawsze pojawia się w stylizacji C, jest umieszczenie aparatów ortodontycznych. W przeciwieństwie do wielkości wcięcia, istnieje niewiele technicznych powodów, aby wybrać jedną strategię umieszczenia nad drugą, ale preferowany sposób, jak pokazali nam prorocowie Kerighan i Ritchie, jest umieszczenie otwierającego klamra na linii i umieszczenie zamknięcia i umieszczenie zamknięcia Najpierw klamera, więc: if (x jest prawda) robimy y 

Widzisz więc, że to już jest sprzeczne ze sposobem, w jaki Emacs robi rzeczy domyślnie, a ponadto będziesz chciał mieć dodatkową funkcjonalność, na przykład numerowanie linii lub różne kolory z wyróżnieniem. Więc zaczynamy. Ponieważ istnieje już tryb C, musimy tylko go dostosować, edytując ~//.Emacs:

;; W ten sposób używane są komentarze, ale lepiej jest przeczytać ;; http: // www.Cs.CMU.edu/cgi-bin/info2www?%28ELISP%29 Comment%20TIP (SETQ standard-indent 8) (tryb numeru 1) (tryb numeru 1) (tryb set-background „czarny”) („czerwony” w kolorze set-cursor) 

Jeśli chodzi o otwieranie aparatów ortodontycznych, które nie są umieszczane we własnym rzędzie, nie ma się czym martwić: Emacs będzie działał tak, jak się spodziewasz, jeśli wolisz ten styl kodowania.

Pyton

Dzięki Pedro Kroger mamy prosty pomysł (i chcemy go udostępnić) na temat konfigurowania EMACS, jeśli jesteś programistą Python. Nie trzeba dodawać, że tylko czytasz tutaj, zakładając, że uruchamiasz najnowszą stabilną wersję, że to 23.X . W przeciwnym razie jesteś sam, ponieważ mogą pojawić się problemy z kompatybilnością.

Wiele dystrybucji oferuje tryb Python zapakowane. W Debian, Gentoo i pochodnych nazywa się Python-Mode, na Fedorze wydaje się, że jest zintegrowany w pakiecie Emacs, Arch ma go pod nazwą Mode Emacs-Python, a OpenSuse ma taką samą sytuację jak Fedora. Teraz edytujmy ~/.Emacs, więc wiedział o tym, po jego zainstalowaniu, oczywiście:

(Dodaj do listy „load-ścieżka” ~/.Emacs.d ") (wymaga„ Python-tryb) (dodanie do listy „auto-tryb-alist” („\\.py \\ '" . mode Python)) 

Istnieje wiele innych trybów dla Pythona, pakowanych lub nie, i zalecamy blog Pedro, aby uzyskać więcej informacji. Emacs Wiki to również dobre miejsce do patrzenia, nie tylko dla informacji Pythona, ponieważ jest to bogaty zasób. W trybie Pythona możesz wykonać kod, który właśnie napisałeś w tym samym oknie, ze względu na interpretowaną naturę języka. Więc po otwarciu/utworzeniu/edytowaniu .plik PY, typ C-C ! Aby zdobyć skorupę Pythona. Wróć do źródła za pomocą C-X O, a następnie typu C-C C-C, aby uruchomić tłumacza do… cóż, zinterpretuj zawartość bufora. Możesz zobaczyć wyniki w dolnej części okna.

Php

Ponieważ, i jest to również dostępne dla powyższego trybu Pythona, różne dystrybucje mają tendencję do nazywania tych trybów inaczej, a niektóre nawet ich nie mają, zalecamy zaoszczędzić sobie trochę czasu i znaleźć stronę główną w trybie, zapisze .plik el w ~/.Emacs.D i powiedz o tym Emacsa. W naszym przypadku tryb PHP jest łatwy do znalezienia, więc pobierz go, a następnie wpisz następujące ~/.Emacs:

(Dodaj do listy „load-ścieżka” ~/.Emacs.d ") ;; Zwróć uwagę na ' - to nie jest literówka! (Wymagaj „trybu PHP) 

Możesz dodać trzecią linię, podobnie jak ta w części Python, aby Emacs używał trybu php za każdym razem, gdy otworzy .plik php. Nie powtórzymy już wspomnianych poleceń, więc teraz, gdy wiesz, co dodać do swojego ~//.Plik EMACS, skoncentrujemy się tylko na nowych informacjach. Ponieważ mówiliśmy o rozszerzeniu istniejących trybów, teraz, kiedy masz tryb PHP, oto jak rozszerzyć go w środku ~/.Emacs dla kodowania specyficznego dla Drupal (oczywiście dzięki chłopakom z Drupal)

(defun Drupal-tryb () „Drupal PHP tryb.„(interaktywny) (tryb php) (komunikat” tryb Drupal Aktywowany.") (Ustaw„ tab-width 2) (ustaw „C-basic-offset 2) (ustaw„ wskaźnik-tabs-tryb zerowy) (Case-Label ”+) (Case-Label '+) (C-set-offset' Arglist-intro '+); dla tablic FAPI i DBTNG (C-SET-Offset' Arglist-Cont-NonEmpty 'c-lineUp-Math); dla pól i wartości DBTNG; bardziej dostosowań specyficznych dla Drupalu tutaj) (defun Setup-Php -Drupal (); Drupal (add-to-list „Auto-tryb-Aist” („\\.\\ (moduł \\ | test \\ | instaluj \\ | motyw \\) $ " . mode Drupal)) (add-to-list „auto-tryb-alist” („/Drupal.*\\.\\ (php \\ | inc \\) $ " . mode Drupal)) (Dodaj do listy „auto-tryb” („\\.informacje " . conf-windows-tryb))) (Ustaw-php-drupal) 

Chociaż w prawdziwym życiu mogę być trochę nieuporządkowany, jeśli chodzi o moje zadania związane z komputerem. Dlatego umieściłbym powyższy kod w osobnym pliku w ~/emacs.d, a następnie powiedz ~/.Emacs, jak go używać. To pozwala nie zaśmiecać ~//.plik EMACS i oddzielne instrukcje specyficzne dla języka z bardziej ogólnymi. Na przykład, jak widziałeś powyżej, istnieją kółka C, gdy jesteś poproszony o przejście do 8-znakowej zakładki. Ale jeśli jestem C, a także programistą Python, z pewnością nie chciałbym używać niczego innego niż 4-znakowe zakładki (wytyczne dotyczące kodowania PEP 8 w Pythonie).

SQL

Teraz SQL jest nieco inną bestią. Nie ma tyle wytycznych kodowania, co inne języki, ale jednocześnie każdy dostawca, komercyjny (Oracle, Microsoft) lub nie (SQLite, Postgres) rozszerza język standardowy ANSI o określone części z określonymi częściami części. Tak więc dobry tryb SQL musi wiedzieć, jak radzić sobie z różnymi implementacjami, aby być przydatnym. Racja, więc za pośrednictwem tej samej wiki Emacs znaleźliśmy sqlmode, który najwyraźniej jest dokładnie tym, czego chcieliśmy. Zna Postgres, MySQL, Ingres, DB2, Oracle, Informix i Sybase, żeby wymienić tylko kilka. Możesz po prostu go zdobyć, zapisać i użyć. Możesz także rzucić okiem na bardziej krwawiące zaspoko.

Chodźmy do pracy. Aby dostać się do interpretera SQL z okna już w trybie SQL, zrób to: M-X SQL-SIT-SQLI-BUFFER Zwraca * SQL * Return. Poniżej znajduje się bardzo praktyczny fragment kodu do oszczędzania historii osobno dla każdego dialektu SQL (e.G. SYBASE, MSSQL i tak dalej). Aby to zadziałało, po prostu utwórz katalog SQL pod ~/.Emacs.d, a następnie dodaj ten hak do ~/.Emacs:

(defun my-sql-save-history-hook () (LET ((LVAL 'SQL-input-Ring-File-Nazwa) (RVAL' SQL-Product)) (if (Symbol-wartości rval) ((((((((((((((”((nazwa pliku nazwa pliku ((((((((( (concat "~/.Emacs.d/sql/"(symbol-name (wartość symboliczna rval))" -Histor.sql "))) (set (Make-Local-variable LVal) nazwa pliku)) (błąd (format„ Historia SQL nie zostanie zapisana, ponieważ %s jest zero ”(symbol-name rval))))) (Dodaj-hook „Hook-interaktywny w trybie SQL” My-SQL-Save-History-Hook) 

Inne przydatne tryby SQL

  • PlsqlMode
  • Sqlindent
  • SqlTransform
  • Sqlplus
  • Sqlreplace

Wszystko to można znaleźć za pomocą wiki EMACS, ale to nie jedyne. Korzystanie z funkcji wyszukiwania Wiki uczyni szczęśliwego użytkownika EMACS, ponieważ znajdziesz wiele praktycznych trybów.

Wniosek

To tylko kilka języków obsługujących Emacs, czy to poza pudełkiem, czy za pośrednictwem rozszerzeń. Niestety, z powodu braku przestrzeni powyższa lista musiała być krótka, ale z bogactwem informacji dostępnych online, możesz, przy niewielkim wysiłku, znaleźć tryb swojego języka lub, nawet lepiej, naucz się pisać własny.

Powiązane samouczki Linux:

  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Mastering Bash Script Loops
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Zagnieżdżone pętle w skryptach Bash
  • Big Data Manipulacja dla zabawy i zysku Część 1
  • Manjaro Linux vs Arch Linux
  • Ubuntu 20.04 Przewodnik
  • Najlepsze gry terminalowe w Linux