[LINUX] Construction d'environnement basée sur Emacs

J'utilise généralement beaucoup Emacs, et même lorsque je construis un nouvel environnement Linux dans un environnement virtuel, je suis le premier à installer Emacs. [Vagrant](https://ja.wikipedia.org/wiki/Vagrant_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3 La commande d'installation emacs est écrite dans% 82% A2)) à chaque fois.

J'aurais aimé être satisfait de pouvoir utiliser Emacs, mais parce que je l'ai personnalisé à mon goût et que je l'ai utilisé tous les jours, il est devenu gênant dans l'état initial d'Emacs.

Par conséquent, j'écrirai la procédure pour construire un ** environnement de base ** lorsque vous utilisez Emacs normalement.

Contenu

** 1. Préparation **

** 2. Construction par description .emacs ** ** 2.1 Paramètres liés à l'affichage ** ** 2.2 réglage de couleur ** ** 2.3 Paramètres liés au package ** ** 2.4 Paramètres liés à la complétion du code **

** 3. Construire avec la commande M-x ** ** 3.1 Paramètres de couleur ** ** 3.2 Introduction liée à la complétion de code **

** 4. Description complète du .emacs **

1. Préparation préalable

Installez d'abord ce dont vous avez besoin pour créer un code de complétion.

sudo apt-get install -y cmake clang

2. Description de la construction par .emacs

Les paramètres Emacs sont décrits dans un fichier appelé .emacs. Au fait, si vous recherchez d'autres articles, il y a des descriptions dans .emacs.el et ʻinit.el, Jusqu'à présent, tous les paramètres ont été définis avec .emacs, donc j'écrirai sur le principe de .emacs`. À propos, l'emplacement du fichier est

$HOME/.emacs

est.

2.1 Afficher les paramètres liés

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

La première ligne est une description de l'affichage du numéro de ligne. Obligatoire. Après cela, la description qui cache diverses barres et masque le message au démarrage. Honnêtement, cela commence généralement par l'option -nw, donc ce n'est pas très efficace. Définissez-le correctement.

2.2 Réglage de la couleur

Cet élément est également décrit dans .emacs, mais la saisie manuelle n'est pas recommandée. Il y a une forte possibilité que les paramètres ne soient pas reflétés, donc cela sera expliqué plus tard dans ** 2. Construire avec la commande M-x **. À propos, le message d'avertissement suivant est affiché dans le commentaire.

 ;; 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.

En termes simples, cela ne fonctionne pas bien lorsque vous le modifiez manuellement, alors soyez prudent.

2.3 Paramètres liés au package

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

(package-initialize)

Paramètres requis lors de l'installation des fonctions décrites ci-dessous. Faisons un package appelé Melpa disponible. De plus, (package-initialize) doit être exécuté après l'écriture de divers paramètres de package. Si vous souhaitez ajouter des packages autres que Melpa, veillez à écrire avant ce paramètre.

2.4 Paramètres liés à l'achèvement du code

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)))

Construisez la fonction de complétion de code en utilisant company + ʻirony + yasnippet. Vous pouvez changer les différentes méthodes de fonctionnement de l'entreprise à votre guise.Je me lie avec w, s pour pouvoir sélectionner en appuyant sur Ctrl avec ma main gauche. De plus, (setq ~)` est le temps de retard jusqu'à ce que le candidat d'achèvement apparaisse dans le premier. La valeur par défaut est de 0,5 seconde et vous devez attendre un moment, il est donc réglé sur 0 seconde. Le second est un paramètre qui permet aux candidats d'aller en bas puis de revenir en haut. Bien sûr, cette description seule ne sera pas exécutée, donc plus tard dans ** 2. Construire avec la commande M-x ** Je vais vous expliquer la procédure d'installation. D'autres articles expliquent plus sur la société, l'ironie et le yasnippet, alors veuillez les consulter. Au fait, si vous n'installez pas le paquet en premier, vous obtiendrez une erreur au démarrage d'emacs. Il est donc recommandé d'écrire cette description après l'installation.

3. Construire avec la commande M-x

J'expliquerai divers paramètres en utilisant la commande M-x. Au fait, M-x est ʻAlt + x`. M est dérivé de la clé Meta.

3.1 Réglage de la couleur

Comme expliqué précédemment, l'écriture manuscrite n'est pas recommandée, alors définissez-la avec une commande. Déplacez le curseur sur la partie que vous souhaitez définir (par exemple, si vous souhaitez définir la couleur de la variable, déplacez le curseur sur int, etc.)

M-x describe-face RET

Entrer. Ensuite, dans cet exemple, Describe face (default 'font-lock-type-face'): ʻest affiché. Dans emacs, les types sont définis sur ʻint et class, et le code est plus facile à voir en définissant la couleur pour chacun. Si vous appuyez sur la touche ENTRÉE dans cet état, l'écran sera divisé et vous pourrez passer à l'écran d'informations de ce type de police. En passant, si vous utilisez le mode No Window, vous ne pouvez pas changer d'opération avec la souris, donc vous pouvez changer d'opération avec Ctrl-x + o.

Ensuite, déplacez le curseur sur la première ligne de cet écran de réglage, personnalisez ce visage et appuyez sur la touche ENTER. Si vous allez en bas, il y a une colonne appelée [X] Foreground: color-xxx [choose](sample), donc Appuyez sur choisir pour afficher la liste des couleurs. Veuillez définir votre couleur préférée à partir de celle-ci.

Au fait, selon l'environnement et la version, il peut s'agir de «[X] Inherit» au lieu de Foreground. Dans ce cas, allez à Afficher tous les attributs juste en dessous et sélectionnez Premier plan. Après avoir terminé les réglages, appuyez sur «[Appliquer et enregistrer]» en haut ou «Ctrl-x + Ctrl-s» pour enregistrer comme d'habitude.

3.2 Introduction liée à la complétion de code

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

Si la description du paquet sur .emacs est correcte, je pense qu'il peut être installé sans aucun problème. Seule l'ironie est installée après l'installation

M-x irony-install-server RET

Veuillez exécuter. En exécutant cette commande, les paramètres liés à l'ironie seront définis.

4. Description complète du .emacs

Enfin, je posterai les .emacs entiers, y compris ceux que j'ai mis en place jusqu'à présent.

.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)))

J'aime totalement les paramètres de couleur. Vous pouvez l'utiliser avec copier-coller, mais comme pour le réglage de la couleur, il est recommandé de définir avec la commande comme décrit ci-dessus. Veuillez l'utiliser après l'avoir effacé. (J'ai commenté pour le moment)

C'est mon environnement de base, donc je peux l'étendre plus loin d'ici, ou juste ceci. Après cela, créez un environnement comme vous le souhaitez.

Recommended Posts

Construction d'environnement basée sur Emacs
Construction de l'environnement Django
Construction de l'environnement DeepIE3D
Construction de l'environnement Linux
Construction d'environnement (python)
construction d'environnement django
Construction de l'environnement CodeIgniter
construction d'environnement python
Python - Construction de l'environnement
Construction de l'environnement Python
Construction de l'environnement Golang
Construction de l'environnement de word2vec
Construction de l'environnement: GCP + Docker
Construction de l'environnement du projet Django
Mémo de construction de l'environnement ConoHa
construction d'environnement python homebrew
Construction d'environnements liés à PyData
Construction de l'environnement Anaconda-4.2.0-python3 (Mac)
Construction de l'environnement de développement Python
Construction de l'environnement YOLO v4 ①
construction de l'environnement pyenv + fish
Construction de l'environnement de développement python2.7
Mémo de construction de l'environnement BigGorilla
construction de l'environnement de préhension onCentOS6.5
Mémo de construction de l'environnement Anaconda
Construction de l'environnement Golang [goenv]
Construction de l'environnement Pyxel (Mac)
Construction de l'environnement Python @ Win7
[Ubuntu 18.04] Construction de l'environnement Tensorflow 2.0.0-GPU
Construction de l'environnement Python + Anaconda + Pycharm
À propos de la construction de l'environnement Linux (CentOS)
Construction de l'environnement PyTorch C ++ (LibTorch)
Construction de l'environnement Anaconda sur CentOS7
Mémo de construction de l'environnement de développement Django
Première construction de l'environnement LAMP (Linux)
Construction de l'environnement Python (Windows10 + Emacs)
Environnement
Construction de l'environnement CI ~ Édition Python ~
[Memo] Construction de l'environnement cygwin
Construction de l'environnement Python pour Mac
Procédure de construction de l'environnement python Anaconda3
Construction de l'environnement Docker + Django + React
Anaconda3 × Mémo de construction de l'environnement Pycharm
Construction de l'environnement Python3 (pour les débutants)
Construction d'environnement Python et TensorFlow
Construction de l'environnement de NumPy et matplotlib
Construire un environnement Python sous un environnement Windows 7
[MEMO] [Construction de l'environnement de développement] Python
Construction de l'environnement Ubuntu14.04 + GPU + TensorFlow
[Tensorflow] Construction de l'environnement Tensorflow sous Windows 10
Construction de l'environnement, construction -Go-
construction de l'environnement de développement de projet django
Construction de l'environnement Linux (sur environnement WSL)
Construction de l'environnement de python2 & 3 (OSX)