この記事では、 GNU Emacsテキストエディターのセットアップについて詳しく説明します。
GNU Emacs
Emacsを拡張するには、 Lisp言語の方言-Emacs Lispが使用されます。
厳密に言えば、Emacsを単なるテキストエディターと呼ぶことはできません。 Emacsは、Emacs Lisp言語のインタープリターであり、ユーザー向けにカスタマイズされたテキストエディターのコンストラクターです。 プログラムのごく一部はC言語で実装され(約30%がOSとの基本的な対話、入出力、ウィンドウのレンダリングを担当)、すべての主要な機能はEmacs Lisp(以降、elisp)にあります。 GNU Emacsを他のプロのテキストエディターから際立たせるのはこのアーキテクチャです—それは途方もなく拡張可能です。
このエディターの機能は非常に大きく多様であるため、この環境を初めて使用するユーザーが快適になることは非常に困難です。 チューニングプロセスのみとは何ですか-それには数年、
- GNU Emacsの使用を開始したいが、方法がわからない。
- IDEでのサポートが不十分またはまったくない言語で記述します。
- 「多言語プログラマ」という異なる言語で記述します。
- 職場と自宅で、一度に複数のコンピューターでユニバーサル開発環境を使用したい。
- プレーン/テキストメモ(オーガナイザー)、参照情報、プロジェクト管理、ナレッジベースの編成などのための機能的で強力な環境が必要です。 -org-mode ;
- 多数のテキストファイルの処理を自動化したい。
- ハードウェアリソースに対する要求の厳しい、任意のテキスト情報を操作するためのクロスプラットフォーム環境が必要です。
- 彼は、文字通り「オンザフライ」で簡単にカスタマイズでき、自分用にカスタマイズされた環境、特定のタスク、拡張され、独立して新しい機能を追加できる環境を望んでいます。
- 汎用性と拡張性が大好きです。
- Python 、 Ruby 、 Perlなどのスクリプト言語でWeb用に記述します。
- 永遠に、Emacsに参加したい-オープンソースコミュニティの最も長命のプロジェクトの1つ。
- など
現代のIT業界では、「21世紀のテキストエディター」、Emacsの
私は何を言うことができます...この困難な仕事で彼らに幸運を。 そして、おそらくGNU Emacsを設定するつもりです。
はい あなたは間違っていませんでした。 映画「トロン:レガシー」。 GNU Emacsもそこで使用されます。 誰が考えたでしょう...
警告するのを忘れました: Common Lisp (Lisp言語のもう1つの方言)で書いているので、このプログラミング言語用の
さあ、行こう!
設置
MS Windowsの場合:
- 公式サイトからアーカイブをダウンロードしてください 。
- ディレクトリC:\ emacs \を作成し、ダウンロードしたアーカイブを解凍します。
- ファイルC:\ emacs \ bin \ addpm.exeを実行します(Emacsを起動するために[スタート]メニューにアイテムを作成します)。
GNU / Linuxディストリビューションには4つの方法があります(例としてdebベースのディストリビューションを使用):
- ターミナルでコマンドを実行します。
sudo aptitude install emacs emacs-goodies-el
- シナプスパッケージマネージャー経由
- 流通センターのアプリケーションを通じて;
- ソースからコンパイルします 。
Mac OS Xの場合:
- ここを見てください 。
- またはここ ;
- こちらをご覧ください 。
執筆時点で、エディタの最新バージョンはEmacs-24.4です。 Mac OS XまたはMS Windowsで使用してください。 GNU / Linuxの場合、ディストリビューションの標準リポジトリにあるバージョンを使用することをお勧めします。
カスタマイズ
Emacsを構成するには、少なくとも4つの方法があります。
- .emacs構成ファイルの作成。
- プログラムメニューから。
- コマンドMxカスタマイズの使用( CxはControl-xを意味し、 MxはMeta-xを意味します。ここでMetaは「Escを押してリリース」または「Altを押して保持」を意味します。または、Altを押しながらx)を押します。
- 他人の.emacsファイルを借りて
消去し、作業を開始します( 私はお勧めしません )。
私たちは簡単な方法を探していません! 設定ファイルをelisp言語で書きます!
すぐに言ってやった!
.Emacs設定ファイル
GNU Emacsをコンピューターに正常にインストールしたら、 .emacsというファイルを作成し、その中に基本設定を書き込む必要があります。
記事で使用されている名称(繰り返し-学習の母):
- Ca :Ctrl-a;
- Ma :Meta-a(Meta(Alt)キーがない場合は、Escキーを使用します);
- CMa :Ctrl-Meta-a。
したがって、Emacsを実行します。 Cx Cfキーの組み合わせを使用して、新しい.emacsファイルを作成し、書き込みを開始します。 気分を害することはありませんが、私はelisp言語の構文には触れません-これは記事を怪物に変えます。 最後に、必要なリソースへのリンクを提供します。
始めるために、Emacsでどのオペレーティングシステムが実行されていたかを伝えましょう。 これを行うために、elispでこれを支援する2つの関数を作成します。
;; System-type definition (defun system-is-linux() (string-equal system-type "gnu/linux")) (defun system-is-windows() (string-equal system-type "windows-nt"))
現在、これらの関数を分岐演算子の条件として呼び出して、Emacsのクロスプラットフォーム構成ファイルを構成できます(作業の結果は、MS WindowsおよびGNU / Linuxディストリビューションで正常に動作する.emacsファイルになります。MacOS Xではテストしていません )。
Common LispのIDE
EmacsをCommon Lisp言語の完全な開発環境に変えるには、2つのパッケージが必要です。
あなたがMS Windowsのユーザーであり、
- SBCLをダウンロードしてください。
- Cにインストール:\ sbcl \ダウンロードSBCL;
- スライムをダウンロードしてください 。
- Cに配置:\スライム\ダウンロードスライム。
GNU / Linuxでは、すべてがよりシンプルです:コマンドラインから実行します:
sudo aptitude install slime sbcl
さらに行こう
Mac OS XまたはGNU / Linuxディストリビューションの幸せなユーザーであれば、Emacsをサーバーとして実行すると便利です。
;; Start Emacs as a server (when (system-is-linux) (require 'server) (unless (server-running-p) (server-start))) ;; Emacs , - GNU/Linux
次に、インストールされたアドオン(特に、SlimeおよびSBCLパッケージ)を見つける方法をEmacsに示します。
;; MS Windows path-variable (when (system-is-windows) (setq win-sbcl-exe "C:/sbcl/sbcl.exe") (setq win-init-path "C:/.emacs.d") (setq win-init-ct-path "C:/.emacs.d/plugins/color-theme") (setq win-init-ac-path "C:/.emacs.d/plugins/auto-complete") (setq win-init-slime-path "C:/slime") (setq win-init-ac-dict-path "C:/.emacs.d/plugins/auto-complete/dict")) ;; Unix path-variable (when (system-is-linux) (setq unix-sbcl-bin "/usr/bin/sbcl") (setq unix-init-path "~/.emacs.d") (setq unix-init-ct-path "~/.emacs.d/plugins/color-theme") (setq unix-init-ac-path "~/.emacs.d/plugins/auto-complete") (setq unix-init-slime-path "/usr/share/common-lisp/source/slime/") (setq unix-init-ac-dict-path "~/.emacs.d/plugins/auto-complete/dict"))
私たちが誰なのかをEmacsに伝えましょう(誰が知っているか、Emacs経由でメールを送信するか、 jabber 'e ...
;; My name and e-mail adress (setq user-full-name "%user-name%") (setq user-mail-adress "%user-mail%")
私のお気に入りはdired-modeです 。 設定してください:
;; Dired (require 'dired) (setq dired-recursive-deletes 'top) ;; ...
これで、キーの組み合わせCx dでdired-modeを開始できます。 diredモードでフォルダーを削除するには、そのフォルダーにカーソルを合わせてdを押し、次にxを押します。 フォルダーから削除マークを削除するには、 uを押します。
ほとんどすべてのプログラミング言語の関数定義を「ジャンプ」する素晴らしい方法はImenuです。
;; Imenu (require 'imenu) (setq imenu-auto-rescan t) ;; (setq imenu-use-popup-menu nil) ;; Imenu (global-set-key (kbd "<f6>") 'imenu) ;; Imenu F6
ウィンドウのヘッダーにオープンバッファの名前を書き込みます。
;; Display the name of the current buffer in the title bar (setq frame-title-format "GNU Emacs: %b")
Emacsがアドオンと外部プログラムを探す方法を特定したことを覚えていますか? 起動時にこれらのパスに沿って「追加」されます。
;; Load path for plugins (if (system-is-windows) (add-to-list 'load-path win-init-path) (add-to-list 'load-path unix-init-path))
Emacsがプレーン/テキストノート(オーガナイザー)、参照情報、プロジェクト管理、ナレッジベース編成などのための優れた環境を提供することを忘れないでください。 -org-mode ? 構成:
;; Org-mode settings (require 'org) ;; org-mode (global-set-key "\C-ca" 'org-agenda) ;; (global-set-key "\C-cb" 'org-iswitchb) ;; org-mode (global-set-key "\C-cl" 'org-store-link) (add-to-list 'auto-mode-alist '("\\.org$" . Org-mode)) ;; *.org org-mode
;; Inhibit startup/splash screen (setq inhibit-splash-screen t) (setq ingibit-startup-message t) ;; Ch Ca
カーソルが角括弧の1つにある場合、 {}、[]、()の間の式を選択します-プログラマーにとって便利です:
;; Show-paren-mode settings (show-paren-mode t) ;; {},[],() (setq show-paren-style 'expression) ;; {},[],()
Emacsは、新しいバージョンで電気改造を導入しました 。 それらの最初は自動的にインデントします(非常にひどく動作します)、2番目は括弧、引用符などを閉じます。 最初のものを無効にし( Pythonプログラマーは私を理解します... )、2番目のものを有効にします:
;; Electric-modes settings (electric-pair-mode 1) ;; {},[],() (electric-indent-mode -1) ;; electric-indent-mod' (default in Emacs-24.4)
上に入力するときに選択したテキストを削除できるようにしたいですか? お願い:
;; Delete selection (delete-selection-mode t)
余分なものを削除しましょう:あらゆる種類のメニュー、 スクロールバー 、 ツールバーなど:
;; Disable GUI components (tooltip-mode -1) (menu-bar-mode -1) ;; (tool-bar-mode -1) ;; tool-bar (scroll-bar-mode -1) ;; (blink-cursor-mode -1) ;; (setq use-dialog-box nil) ;; - (setq redisplay-dont-pause t) ;; (setq ring-bell-function 'ignore) ;;
自動保存とバックアップはありません! ハードコアのみ:
;; Disable backup/autosave files (setq make-backup-files nil) (setq auto-save-default nil) (setq auto-save-list-file-name nil) ;; ... - nil t
設定するのが最も苦しくて難しい場所はエンコーディングです:
;; Coding-system settings (set-language-environment 'UTF-8) (if (system-is-linux) ;; GNU/Linux utf-8, MS Windows - windows-1251 (progn (setq default-buffer-file-coding-system 'utf-8) (setq-default coding-system-for-read 'utf-8) (setq file-name-coding-system 'utf-8) (set-selection-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8-unix) (set-terminal-coding-system 'utf-8) (prefer-coding-system 'utf-8)) (progn (prefer-coding-system 'windows-1251) (set-terminal-coding-system 'windows-1251) (set-keyboard-coding-system 'windows-1251-unix) (set-selection-coding-system 'windows-1251) (setq file-name-coding-system 'windows-1251) (setq-default coding-system-for-read 'windows-1251) (setq default-buffer-file-coding-system 'windows-1251)))
行番号付けをオンにします。
;; Linum plugin (require 'linum) ;; Linum (line-number-mode t) ;; mode-line (global-linum-mode t) ;; (column-number-mode t) ;; mode-line (setq linum-format " %d") ;;
私たちは美しさをもたらし続けます:
;; Fringe settings (fringe-mode '(8 . 0)) ;; (setq-default indicate-empty-lines t) ;; (setq-default indicate-buffer-boundaries 'left) ;; ;; Display file size/time in mode-line (setq display-time-24hr-format t) ;; 24- mode-line (display-time-mode t) ;; mode-line (size-indication-mode t) ;; %-
長い行の自動ハイフネーション:
;; Line wrapping (setq word-wrap t) ;; (global-visual-line-mode t)
起動時にEmacsでウィンドウのサイズを決定します。
;; Start window size (when (window-system) (set-frame-size (selected-frame) 100 50))
オンラインでファイルを検索して開きますか? お願い:
;; IDO plugin (require 'ido) (ido-mode t) (icomplete-mode t) (ido-everywhere t) (setq ido-vitrual-buffers t) (setq ido-enable-flex-matching t)
オープンバッファ間のクイックナビゲーション:
;; Buffer Selection and ibuffer settings (require 'bs) (require 'ibuffer) (defalias 'list-buffers 'ibuffer) ;; Cx Cb (global-set-key (kbd "<f2>") 'bs-show) ;; buffer selection F2
カラースキーム。 それらなしではどうですか? これを行うには:
- ここから Emacsのカラーテーマパッケージをダウンロードしてください 。
- ディレクトリ.emacs.d / plugins / color-themeを作成します。
- アーカイブの内容をそこにあるテーマで解凍します。
- 以下で.emacs.dフォルダーを見つけます。
- MS Windowsの場合、ドライブCのルート:\。emacs.d
- GNU / Linuxの場合はホームディレクトリ〜/ .emacs.d
- .emacsに次の行を記述します。
;; Color-theme definition <http://www.emacswiki.org/emacs/ColorTheme> (defun color-theme-init() (require 'color-theme) (color-theme-initialize) (setq color-theme-is-global t) (color-theme-charcoal-black)) (if (system-is-windows) (when (file-directory-p win-init-ct-path) (add-to-list 'load-path win-init-ct-path) (color-theme-init)) (when (file-directory-p unix-init-ct-path) (add-to-list 'load-path unix-init-ct-path) (color-theme-init)))
コードの強調表示:
;; Syntax highlighting (require 'font-lock) (global-font-lock-mode t) ;; Emacs-22. ... (setq font-lock-maximum-decoration t)
インデント設定:
;; Indent settings (setq-default indent-tabs-mode nil) ;; TAB' (setq-default tab-width 4) ;; - 4 (setq-default c-basic-offset 4) (setq-default standart-indent 4) ;; - 4 (setq-default lisp-body-indent 4) ;; Lisp- 4 (global-set-key (kbd "RET") 'newline-and-indent) ;; Enter (setq lisp-indent-function 'common-lisp-indent-function)
スムーズなスクロール:
;; Scrolling settings (setq scroll-step 1) ;; - 1 (setq scroll-margin 10) ;; / 10 / (setq scroll-conservatively 10000)
ミニバッファー内のメッセージを短くします。
;; Short messages (defalias 'yes-or-no-p 'y-or-np)
一般的なOSクリップボード:
;; Clipboard settings (setq x-select-enable-clipboard t)
バッファーの最後の空行の設定:
;; End of file newlines (setq require-final-newline t) ;; (setq next-line-add-newlines nil) ;; ;;
検索結果を強調表示します。
;; Highlight search resaults (setq search-highlight t) (setq query-replace-highlight t)
M矢印キーの組み合わせを使用した分割間の移動( org-modeを除く):
;; Easy transition between buffers: M-arrow-keys (if (equal nil (equal major-mode 'org-mode)) (windmove-default-keybindings 'meta))
行末の余分なスペースを削除し、 TABをスペースに置き換え、バッファーをファイルに自動的に保存するときにインデントを揃えます。
;; Delete trailing whitespaces, format buffer and untabify when save buffer (defun format-current-buffer() (indent-region (point-min) (point-max))) (defun untabify-current-buffer() (if (not indent-tabs-mode) (untabify (point-min) (point-max))) nil) (add-to-list 'write-file-functions 'format-current-buffer) (add-to-list 'write-file-functions 'untabify-current-buffer) (add-to-list 'write-file-functions 'delete-trailing-whitespace)
CEDETパッケージ-C / C ++ / Javaでの作業(CEDETのAlex Ott 'a による優れた記事 ):
;; CEDET settings (require 'cedet) ;; "" CEDET. ... (add-to-list 'semantic-default-submodes 'global-semanticdb-minor-mode) (add-to-list 'semantic-default-submodes 'global-semantic-mru-bookmark-mode) (add-to-list 'semantic-default-submodes 'global-semantic-idle-scheduler-mode) (add-to-list 'semantic-default-submodes 'global-semantic-highlight-func-mode) (add-to-list 'semantic-default-submodes 'global-semantic-idle-completions-mode) (add-to-list 'semantic-default-submodes 'global-semantic-show-parser-state-mode) (semantic-mode t) (global-ede-mode t) (require 'ede/generic) (require 'semantic/ia) (ede-enable-generic-projects)
オートコンプリート入力。 これを行うには:
- こちらから Emacsのオートコンプリートパッケージをダウンロードしてください 。
- ディレクトリ.emacs.d / plugins / auto-completeを作成します。
- オートコンプリートを使用してアーカイブの内容を解凍します。
- 以下で.emacs.dフォルダーを見つけます。
- MS Windowsの場合、ドライブCのルート:\。emacs.d
- GNU / Linuxの場合はホームディレクトリ〜/ .emacs.d
- .emacsに次の行を記述します。
;; Auto-complete plugin <http://www.emacswiki.org/emacs/AutoComplete> (defun ac-init() (require 'auto-complete-config) (ac-config-default) (if (system-is-windows) (add-to-list 'ac-dictionary-directories win-init-ac-dict-path) (add-to-list 'ac-dictionary-directories unix-init-ac-dict-path)) (setq ac-auto-start t) (setq ac-auto-show-menu t) (global-auto-complete-mode t) (add-to-list 'ac-modes 'lisp-mode) (add-to-list 'ac-sources 'ac-source-semantic) ;; CEDET (add-to-list 'ac-sources 'ac-source-variables) ;; (add-to-list 'ac-sources 'ac-source-functions) ;; (add-to-list 'ac-sources 'ac-source-dictionary) ;; (add-to-list 'ac-sources 'ac-source-words-in-all-buffer) ;; (add-to-list 'ac-sources 'ac-source-files-in-current-dir)) (if (system-is-windows) (when (file-directory-p win-init-ac-path) (add-to-list 'load-path win-init-ac-path) (ac-init)) (when (file-directory-p unix-init-ac-path) (add-to-list 'load-path unix-init-ac-path) (ac-init)))
Common Lisp- Slimeの環境をセットアップします。
;; SLIME settings (defun run-slime() (require 'slime) (require 'slime-autoloads) (setq slime-net-coding-system 'utf-8-unix) (slime-setup '(slime-fancy slime-asdf slime-indentation))) ;; Slime ;;;; for MS Windows (when (system-is-windows) (when (and (file-exists-p win-sbcl-exe) (file-directory-p win-init-slime-path)) (setq inferior-lisp-program win-sbcl-exe) (add-to-list 'load-path win-init-slime-path) (run-slime))) ;;;; for GNU/Linux (when (system-is-linux) (when (and (file-exists-p unix-sbcl-bin) (file-directory-p unix-init-slime-path)) (setq inferior-lisp-program unix-sbcl-bin) (add-to-list 'load-path unix-init-slime-path) (run-slime)))
ブックマークのセットアップ-テキスト内をすばやく移動するのに役立つブックマーク:
;; Bookmark settings (require 'bookmark) (setq bookmark-save-flag t) ;; (when (file-exists-p (concat user-emacs-directory "bookmarks")) (bookmark-load bookmark-default-file t)) ;; (global-set-key (kbd "<f3>") 'bookmark-set) ;; F3 (global-set-key (kbd "<f4>") 'bookmark-jump) ;; F4 (global-set-key (kbd "<f5>") 'bookmark-bmenu-list) ;; (setq bookmark-default-file (concat user-emacs-directory "bookmarks")) ;; bookmarks .emacs.d
実際、それだけです! Cx Csをクリックして、 .emacsファイルを保存できます。 .emacsファイルと.emacs.dフォルダーを配置する場所(my .emacsからのパスを使用する場合):
MS Windows:
- Cの .emacs :\ Users \%username%\ AppData \ Roaming \
- .emacs.dフォルダーをC:\ドライブのルートに
GNU / Linux:
- ホームディレクトリへの.emacs : / home /%username%/
- ホームディレクトリの.emacs.dフォルダー: / home /%username%/
私の.emacsは、 GitHubページからダウンロードできます。
私のemacs:
便利なリンク
HabrahabrのGNU Emacs に関する多くの有用な記事 。 また、Dmitry Bushenkoが公開したEmacsに関するYouTubeの素晴らしいスクリーンキャストシリーズがあります。
- Emacsを学習します。 エピソード01
- Emacsを学習します。 エピソード02
- Emacsを学習します。 エピソード03
- Emacsを学習します。 エピソード04
- Emacsを学習します。 エピソード05
- Emacsを学習します。 エピソード06
- Emacsを学習します。 エピソード07
- Emacsを学習します。 エピソード08:ELispコードツール
- Emacsを学習します。 エピソード09:ediff、magit、psvn、emacs-デーモン
- Emacsを学習します。 エピソード10:組織モードの基本的な機能、リテラシープログラミング、およびhtml / pdfへのエクスポート
- Emacsを学習します。 エピソード11:Clojureコードツール
- Emacsを学習します。 エピソード12:マクロ、OOP、DSL
- Emacsの学習:エピソード13. EDEを使用したプロジェクト管理
一連のスクリーンキャスト (英語)Emacs Rocks。
信じられないほど巨大で詳細かつ有用な記事(英語): Sacha ChuaのEmacs設定 。
Emacs用の多種多様なカラーテーマ。 こちらをご覧ください 。
別のエディターVimのユーザーを無視しないために、GitHubにある.vimrcへのリンクを次に示します。 そこですべてが詳細に説明されています(その場合、Vimに関する記事を書くことができます...)。
親愛なる読者の皆さんのコメントを楽しみにしています。 自分にとって何か役に立つ/新しいものを見つけてほしい。
Emacsがあなたと一緒にいますように...
ご清聴ありがとうございました。