[LINUX] Emacs-basierte Umgebungskonstruktion

Normalerweise benutze ich Emacs häufig, und selbst wenn ich eine neue Linux-Umgebung in einer virtuellen Umgebung erstelle, installiere ich als erster Emacs. [Vagrant](https://ja.wikipedia.org/wiki/Vagrant_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3 Der Befehl zur Installation von emacs wird jedes Mal in% 82% A2)) geschrieben.

Ich wünschte, ich wäre zufrieden damit, nur Emacs verwenden zu können, aber da ich es nach meinen Wünschen angepasst und jeden Tag verwendet habe, wurde es im Anfangszustand von Emacs unpraktisch.

Daher werde ich die Prozedur zum Erstellen einer ** Basisumgebung ** schreiben, wenn Emacs normal verwendet wird.

Inhalt

** 1. Vorbereitung **

** 2. Konstruktion nach .emacs Beschreibung ** ** 2.1 Anzeige der zugehörigen Einstellungen ** ** 2.2 Farbeinstellung ** ** 2.3 Paketbezogene Einstellungen ** ** 2.4 Einstellungen zur Code-Vervollständigung **

** 3. Mit dem Befehl M-x erstellen ** ** 3.1 Farbeinstellungen ** ** 3.2 Einführung in die Code-Vervollständigung **

** 4. Ganze .emacs Beschreibung **

1. Vorbereitung vorbereiten

Installieren Sie zuerst das, was Sie zum Erstellen der Code-Vervollständigung benötigen.

sudo apt-get install -y cmake clang

2. Konstruktion nach .emacs Beschreibung

Die Emacs-Einstellungen werden in einer Datei namens ".emacs" beschrieben. Übrigens, wenn Sie andere Artikel nachschlagen, gibt es Beschreibungen in .emacs.el und init.el, Bis jetzt wurden alle Einstellungen mit .emacs vorgenommen, daher werde ich unter der Prämisse ".emacs" schreiben. Der Speicherort der Datei ist übrigens

$HOME/.emacs

ist.

2.1 Zugehörige Einstellungen anzeigen

(global-linum-mode t)
(menu-bar-mode -1)
(tool-bar-mode -1)
(setq inhibit-startup-message t)
(setq make-backup-files nil)

Die erste Zeile ist eine Beschreibung zur Anzeige der Zeilennummer. Erforderlich. Danach die Beschreibung, die verschiedene Balken und die Nachricht beim Start verbirgt. Ehrlich gesagt beginnt es normalerweise mit der Option -nw, daher ist es nicht sehr effektiv. Stellen Sie es entsprechend ein.

2.2 Farbeinstellung

Dieses Element wird auch in .emacs beschrieben, eine manuelle Eingabe wird jedoch nicht empfohlen. Es besteht eine hohe Wahrscheinlichkeit, dass die Einstellungen nicht wiedergegeben werden. Dies wird später in ** 2 erläutert. Erstellen mit dem Befehl M-x **. Übrigens wird im Kommentar die folgende Warnmeldung angezeigt.

 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.

Einfach ausgedrückt, es funktioniert nicht gut, wenn Sie es manuell ändern. Seien Sie also vorsichtig.

2.3 Paketbezogene Einstellungen

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)

(package-initialize)

Einstellungen, die für die Installation der unten beschriebenen Funktionen erforderlich sind. Lassen Sie uns ein Paket namens Melpa zur Verfügung stellen. Außerdem muss (package-initialize) ausgeführt werden, nachdem verschiedene Paketeinstellungen geschrieben wurden. Wenn Sie andere Pakete als Melpa hinzufügen möchten, müssen Sie vor dieser Einstellung schreiben.

2.4 Einstellungen für die Codevervollständigung

company


(when (locate-library "company")
  (global-company-mode 1)
  (global-set-key (kbd "C-M-i") 'company-complete)
  
  (setq company-idle-delay 0)
  (setq company-selection-wrap-around t)
  
  (define-key company-active-map (kbd "C-s") 'company-select-next)
  (define-key company-active-map (kbd "C-w") 'company-select-previous)
  (define-key company-search-map (kbd "C-s") 'company-select-next)
  (define-key company-search-map (kbd "C-w") 'company-select-previous)
  (define-key company-active-map (kbd "<tab>") 'company-complete-selection))

irony


(eval-after-load "irony"
  '(progn
    (add-to-list 'company-backends 'company-irony)
    (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
    (add-hook 'c-mode-common-hook 'irony-mode)
    (add-hook 'c++-mode-hook 'irony-mode)))

yasnippet


(eval-after-load "yasnippet"
 '(progn
    (define-key yas-keymap (kbd "<tab>") nil)
    (yas-global-mode 1)))

Erstellen Sie die Code-Vervollständigungsfunktion mit company + irony + yasnippet. Sie können die verschiedenen Betriebsmethoden des Unternehmens nach Belieben ändern. Ich binde mit w, s, damit ich auswählen kann, während ich mit der linken Hand Strg drücke. Außerdem ist (setq ~) die Verzögerungszeit, bis der Abschlusskandidat im ersten erscheint. Der Standardwert ist 0,5 Sekunden und Sie müssen ein wenig warten, sodass er auf 0 Sekunden eingestellt ist. Die zweite Einstellung ermöglicht es den Kandidaten, nach unten und dann nach oben zurückzukehren. Natürlich wird diese Beschreibung allein nicht ausgeführt, also später in ** 2. Mit dem Befehl M-x erstellen ** Ich werde den Installationsvorgang erklären. Andere Artikel erklären mehr über Unternehmen, Ironie und Yasnippet. Schauen Sie sich diese also bitte an. Übrigens, wenn Sie das Paket nicht zuerst installieren, wird beim Start von emacs eine Fehlermeldung angezeigt. Es wird daher empfohlen, diese Beschreibung nach der Installation zu schreiben.

3. Erstellen Sie mit dem Befehl M-x

Ich werde verschiedene Einstellungen mit dem Befehl M-x erklären. Übrigens ist M-x "Alt + x". M wird vom Meta-Schlüssel abgeleitet.

3.1 Farbeinstellung

Wie bereits erläutert, wird die Handschrift nicht empfohlen. Legen Sie sie daher mit einem Befehl fest. Bewegen Sie den Cursor auf den Teil, den Sie einstellen möchten (wenn Sie beispielsweise die Farbe der Variablen festlegen möchten, bewegen Sie den Cursor auf int usw.)

M-x describe-face RET

Eingeben. In diesem Beispiel wird dann "Gesicht beschreiben" (Standard "Schriftartensperre"): "angezeigt. In Emacs werden Typen auf "int" und "class" gesetzt, und der Code ist leicht zu erkennen, indem die Farbe für jeden Typ festgelegt wird. Wenn Sie in diesem Zustand die EINGABETASTE drücken, wird der Bildschirm geteilt und Sie können zum Informationsbildschirm dieses Schrifttyps wechseln. Übrigens, wenn Sie im Modus "Kein Fenster" arbeiten, können Sie Operationen nicht mit der Maus wechseln, also können Sie Operationen mit "Strg-x + o" wechseln.

Bewegen Sie als Nächstes den Cursor in die erste Zeile dieses Einstellungsbildschirms, passen Sie dieses Gesicht an und drücken Sie die EINGABETASTE. Wenn Sie nach unten gehen, gibt es eine Spalte mit dem Namen "[X] Vordergrund: Farbe-xxx Auswahl" Drücken Sie Auswahl, um die Farbliste anzuzeigen. Stellen Sie hier Ihre Lieblingsfarbe ein.

Übrigens kann es je nach Umgebung und Version "[X] Inherit" anstelle von "Foreground" sein. In diesem Fall gehen Sie zu "Alle Attribute anzeigen" und wählen Sie "Vordergrund". Drücken Sie nach Abschluss der Einstellungen oben auf "[Übernehmen und speichern]" oder "Strg-x + Strg-s", um wie gewohnt zu speichern.

3.2 Einführung in die Code-Vervollständigung

M-x package-install RET irony RET
M-x package-install RET company-irony RET
M-x package-install RET yasnippet RET
M-x package-install RET flycheck RET

Wenn die Paketbeschreibung auf .emacs korrekt ist, kann sie meiner Meinung nach problemlos installiert werden. Nach der Installation wird nur Ironie installiert

M-x irony-install-server RET

Bitte ausführen. Durch Ausführen dieses Befehls werden ironiebezogene Einstellungen vorgenommen.

4. Ganze .emacs Beschreibung

Schließlich werde ich die gesamten .emacs veröffentlichen, einschließlich der, die ich bisher eingerichtet habe.

.emacs


(global-linum-mode t)
(menu-bar-mode -1)
(tool-bar-mode -1)
(setq inhibit-startup-message t)
(setq make-backup-files nil)

;; faces color
;;(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 ;; '(font-lock-comment-face ((t (:foreground "color-71"))))
 ;; '(font-lock-constant-face ((t (:foreground "color-105"))))
 ;; '(font-lock-function-name-face ((t (:foreground "color-43"))))
 ;; '(font-lock-keyword-face ((t (:foreground "color-33"))))
 ;; '(font-lock-preprocessor-face ((t (:foreground "color-141"))))
 ;; '(font-lock-string-face ((t (:foreground "color-172"))))
 ;; '(font-lock-type-face ((t (:foreground "color-45"))))
 ;; '(font-lock-variable-name-face ((t (:foreground "color-179")))))

;; package
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(package-initialize)

;; yasnippet
(eval-after-load "yasnippet"
 '(progn
    (define-key yas-keymap (kbd "<tab>") nil)
    (yas-global-mode 1)))

;; company
(when (locate-library "company")
  (global-company-mode 1)
  (global-set-key (kbd "C-M-i") 'company-complete)

  (setq company-idle-delay 0)
  (setq company-selection-wrap-around t)

  (define-key company-active-map (kbd "C-s") 'company-select-next)
  (define-key company-active-map (kbd "C-w") 'company-select-previous)
  (define-key company-search-map (kbd "C-s") 'company-select-next)
  (define-key company-search-map (kbd "C-w") 'company-select-previous)
  (define-key company-active-map (kbd "<tab>") 'company-complete-selection))

;; irony
(eval-after-load "irony"
  '(progn
     (add-to-list 'company-backends 'company-irony)
     (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
     (add-hook 'c-mode-common-hook 'irony-mode)
     (add-hook 'c++-mode-hook 'irony-mode)))

Ich mag die Farbeinstellungen total. Sie können es beim Kopieren und Einfügen verwenden. Für die Farbeinstellung wird jedoch empfohlen, die Einstellung wie oben beschrieben vorzunehmen. Bitte verwenden Sie es nach dem Löschen (ich habe es vorerst auskommentiert)

Es ist meine Basisumgebung, also kann ich sie von hier aus weiter ausbauen, oder einfach nur so. Danach erstellen Sie bitte eine Umgebung, wie Sie möchten.

Recommended Posts

Emacs-basierte Umgebungskonstruktion
Django Umweltbau
DeepIE3D-Umgebungskonstruktion
Aufbau einer Linux-Umgebung
Umgebungskonstruktion (Python)
Django Umweltbau
CodeIgniter-Umgebungskonstruktion
Python-Umgebungskonstruktion
Python - Umgebungskonstruktion
Aufbau einer Python-Umgebung
Golang Umweltbau
Umgebungskonstruktion von word2vec
Umgebungskonstruktion: GCP + Docker
Bau der Django-Projektumgebung
ConoHa Umweltbau Memo
Homebrew Python Umgebung Konstruktion
PyData-bezogene Umgebungskonstruktion
Aufbau einer Anaconda-4.2.0-Python3-Umgebung (Mac)
Aufbau einer Python-Entwicklungsumgebung
YOLO v4 Umgebungskonstruktion ①
Bau von Pyenv + Fischumwelt
python2.7 Konstruktion der Entwicklungsumgebung
BigGorilla Umwelt Bau Memo
Griffumgebungskonstruktion onCentOS6.5
Anaconda Umwelt Bau Memo
Golang Umweltbau [goenv]
Pyxel-Umgebungskonstruktion (Mac)
Python-Umgebungskonstruktion @ Win7
[Ubuntu 18.04] Aufbau einer Tensorflow 2.0.0-GPU-Umgebung
Python + Anaconda + Pycharm-Umgebungskonstruktion
Informationen zum Aufbau einer Linux-Umgebung (CentOS)
Aufbau einer PyTorch C ++ (LibTorch) -Umgebung
Anaconda-Umgebungskonstruktion auf CentOS7
Django Entwicklungsumgebung Bau Memo
Erste LAMP-Umgebungskonstruktion (Linux)
Aufbau einer Python-Umgebung (Windows 10 + Emacs)
Umgebung
CI-Umgebungskonstruktion ~ Python Edition ~
[Memo] Bau einer Cygwin-Umgebung
Aufbau einer Python-Umgebung für Mac
Konstruktionsverfahren für die Anaconda3-Python-Umgebung
Docker + Django + Umgebungskonstruktion reagieren
Anaconda3 × Pycharm-Umgebungskonstruktionsnotiz
Python3-Umgebungskonstruktion (für Anfänger)
Python-Umgebungskonstruktion und TensorFlow
Umgebungskonstruktion von NumPy und Matplotlib
Erstellen einer Python-Umgebung unter Windows 7
[MEMO] [Entwicklung der Entwicklungsumgebung] Python
Aufbau der Ubuntu14.04 + GPU + TensorFlow-Umgebung
[Tensorflow] Aufbau der Tensorflow-Umgebung unter Windows 10
Umweltbau, Build -Go-
Django Projekt Entwicklungsumgebung Bau
Aufbau einer Linux-Umgebung (in einer WSL-Umgebung)
Umgebungskonstruktion von Python2 & 3 (OSX)