以下はLisp式で一般的に行ないたいような事柄の例です:
load-path
にディレクトリーを追加します。その後、Emacsに含まれていないLispライブラリーをそのディレクトリーに配置すれば、M-x
load-libraryでそれらをロードすることができます。EmacsのためのLispコードによるライブラリーを参照してください。
(add-to-list 'load-path "/path/to/lisp/libraries")
(setq c-tab-always-indent nil)
個の例では、変数の通常の値がt
、つまり“true”の変数の値を、nil
つまり“false”にしています。
(setq-default case-fold-search nil)
これはデフォルト値をセットし、この変数にたいするローカル値(ローカル変数を参照してください)をもたないすべてのバッファーに効果を及ぼします。case-fold-search
をsetq
でセットした場合は、カレントバッファーだけに効果があり、それは多分あなたがinitファイルで行ないたいことではないはずです。
(setq user-mail-address "cheney@torture.gov")
Messageモードのような、さまざまなEmacsパッケージは、メールアドレスを知る必要がある場合に、user-mail-address
を参照します。メールヘッダーフィールドを参照してください。
(setq-default major-mode 'text-mode)
Textモードに入るコマンドにtext-mode
が使用されていることに注意してください。前のシングルクォートはシンボルを定数にしています。そうしない場合、text-mode
は変数名として扱われます。
(set-language-environment "Latin-1")
(line-number-mode 0)
(add-hook 'text-mode-hook 'auto-fill-mode)
(setopt selection-coding-system 'utf-8)
(load "foo")
load
の引数が、‘/’や‘~’で始まらない相対ファイル名の場合、load
はload-path
のディレクトリーを検索します(EmacsのためのLispコードによるライブラリーを参照してください)。
(load "~/foo.elc")
ここでは完全なファイル名が使用されているので、検索は行なわれません。
myfunction
の定義を探すようEmacsに指示します。
(autoload 'myfunction "mypackage" "Do what I say." t)
ここで文字列"Do what I
say."
は、この関数のドキュメント文字列です。これをautoload
定義の中で指定することにより、そのパッケージがロードされていなくてもヘルプコマンドで利用可能になります。最後の引数t
は、この関数がinteractive(対話的)であることを示します。つまり、この関数はM-x
myfunction
RETとタイプするか、キーにバインドすることにより、対話的に呼び出すことができます。関数がinteractiveでない場合は、t
を省略するか、nil
を使用します。
make-symbolic-link
を実行するように、キーC-x lをリバインドします(initファイル内でのキーのリバインドを参照してください)。
(keymap-global-set "C-x l" 'make-symbolic-link)
または
(keymap-set global-map "C-x l" 'make-symbolic-link)
繰り返しになりますが、シングルクォートはmake-symbolic-link
を変数として値を参照するのではなく、シンボルとして参照するために使用されることに注意してください。
(keymap-set lisp-mode-map "C-x l" 'make-symbolic-link)
next-line
を実行するすべてのキーにたいして、かわりにforward-line
を実行するように再定義します。
(keymap-substitute global-map 'next-line 'forward-line)
(keymap-global-unset "C-x C-v")
キーを未定義にする1つの理由は、それをプレフィクスにできることです。単にC-x C-v anythingを定義すると、C-x C-vはプレフィクスになりますが、最初に通常のC-x C-vにたいする非プレフィクス定義を開放しなければなりません。
(modify-syntax-entry ?\$ "." text-mode-syntax-table)
narrow-to-region
の使用を有効にします。
(put 'narrow-to-region 'disabled nil)
ユーザーは通常、すべてのシステムでEmacsが同じように振る舞うことを期待するので、すべてのプラットフォームで同じinitファイルを使用するのが妥当です。しかしEmacsをカスタマイズするのに使用する関数が、他のプラットフォームやEmacsバージョンで利用できないということも発生します。この状況に対処するには、以下のように、ある関数または機能が利用可能かテストする条件文の内部に、カスタマイズを配置します:
(if (fboundp 'blink-cursor-mode) (blink-cursor-mode 0)) (if (boundp 'coding-category-utf-8) (set-coding-priority '(coding-category-utf-8)))
関数が定義されていない場合に発生するエラーを、単に無視することもできます。
(ignore-errors (set-face-background 'region "grey75"))
存在しない変数へのsetq
は一般的に無害なので、これらを条件文の中に置く必要はありません。
use-package
を使用します。
(use-package hi-lock :defer t :init (add-hook 'some-hook 'hi-lock-mode) :config (use-package my-hi-lock) :bind (("M-o l" . highlight-lines-matching-regexp) ("M-o r" . highlight-regexp) ("M-o w" . highlight-phrase)))
これは初めてhi-lock
にコマンドか変数が使用された際にhi-lock
をロードするとともに、そのロード後に追加でmy-hi-lock
パッケージ(hi-lock
を更にカスタマイズしたパッケージかもしれない)をロードします。use-package
の機能については、それ自身のマニュアルにおいて完全に文書化されています。use-package User manualを参照してください。