[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Emacs/Meadow には多くのプログラム言語に対応したモードが用意されています.
ここでは,各言語別に便利な機能やパッケージを紹介します.
プログラミングに関連した Elisp については,言語を問わずに使えそうな,汎用的なも のは 42. プログラム関連 ― 一般用 (2007/11/29) で紹介しています.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
C / C++ 関連の Elisp の紹介です.
41.1.1 C , C++ , JAVA のモード ― cc-mode (2003/06/08) 41.1.2 include などのヘッダを補完入力 (2003/09/24) 41.1.3 ソースとヘッダを切り替え― toggle-source (2003/11/14)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Meadow で C や C++ を編集すると, C-mode や C++-mode になります.これは, cc-mode.el という Elisp で定義されています.この cc-mode は C や C++ だけでなく, Objective-C , Java , IDL , Pike をサポートしています.
cc-mode は Meadow に標準で附属していますし,設定も不要です.うまく動作していない ようなら,以下を追加しておきます.
(setq auto-mode-alist (append (list '("\\.cpp$" . c++-mode) '("\\.c$" . c-mode) auto-mode-alist))) |
41.1.1.1 C , C++ , JAVA のモードのフック (2003/06/08) 41.1.1.2 C , C++ , JAVA のモードのインデント (2003/06/08) 41.1.1.3 C , C++ , JAVA のモードのキーバインド (2003/06/08) 41.1.1.4 C , C++ , JAVA のモードのカスタマイズ (2003/07/13)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
各モードでの設定をするためには,フックを使うことが便利です.ここでは, cc-mode の フックを簡単に紹介します.
cc-mode には何種類かのフックがあります.
一つは各モード毎のフックで,「 c-mode-hook 」,「 c++-mode-hook 」 「 objc-mode-hook 」「 java-mode-hook 」「 idl-mode-hook 」「 pike-mode-hook 」 があります.モード毎に設定を変えたい時に使用します.このフックはモードを設定する 一番最後に実行されます.
二つ目は,「 c-mode-common-hook 」です.これは, C-mode や C++-mode など, cc-mode を利用しているすべてのモードで実行されます.これは,各モード毎のフックの 前に実行されます.
三つ目は,「 c-initialization-hook 」です.これも,「 c-mode-common-hook 」と同 様,すべてのモードで実行されます.これは,各モードを設定する一番最初に実行されま す.
実際には,各モードの設定を各モードのフックで,一般的な設定を 「 c-mode-common-hook 」で実行するといいでしょう.
そして,最初に実行する必要があるものは,「 c-initialization-hook 」で設定します. ただし,モードによっては,変数が設定されるため,上書きされる可能性があります.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
cc-mode でもっとも頻繁に使う機能はやはりオートインデントでしょう.
適当な文字数で字下げすることにより,後で読む時に楽になります.オートインデントと は,これを自動的にしてくれる機能です.
その字下げの方法は人の好みによって変化します. cc-mode では,それらを吸収するた めに,スタイルという方式を取っています.つまり,「インデントが 2 でコメントのみ の行は通常と同じ字下げとする」などといった情報を,「 gnu 」というスタイルで設定 できるのです.
デフォルトでは,以下のようなスタイルが定義されています.
インデント以外にも,挙動が違いますので,いろいろと試してみるといいでしょう.
好きなのがあれば,以下のように設定します.
(add-hook 'c-mode-common-hook '(lambda () (c-set-style "gnu") ;; インデントの変更 (setq c-basic-offset 4) )) |
デフォルトが気に入らない場合には,デフォルトで良さそうなのを探して,それを編集し て,以下のように設定します.
(defconst my-c-style '( ;; 基本となるインデント (c-basic-offset . 4) ;; コメント行のインデント (c-comment-only-line-offset . (0 . 0)) ;; インデントを以下で設定 (c-offsets-alist . ((statement-block-intro . +) (knr-argdecl-intro . 5) (substatement-open . +) (statement-case-open . +) (statement-cont . +) (arglist-intro . c-lineup-arglist-intro-after-paren) (arglist-close . c-lineup-arglist) (brace-list-open . +) )) (c-special-indent-hook . c-gnu-impose-minimum) (c-block-comment-prefix . "") )) (add-hook 'c-mode-common-hook '(lambda () ;; 自分用のスタイルを追加 (c-add-style "my-c-style" my-c-style t) ;; 自分用のスタイルを使う (c-set-style "my-c-style") )) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
最後に, cc-mode のキーバインドです.括弧や関数単位でのカーソル移動などは 42.9.1 括弧単位,関数単位でのカーソル移動 (2003/06/08)で紹介しているものを利用できます.
リージョンを選択して,C-c C-\で,各行の終わりに「\」を挿入できます.複数行 のマクロ定義などで便利です.C-u C-c C-\で削除できます.
また, cc-mode には 2 つのマイナーモードが用意されています.一つは「 hungry-mode (一斉消去機能) 」です.これは,C-c C-dでオンにすることができます.オンにな ると,BSでスペースを消去する際,一つではなく,カーソルの前にあるスペースを 全部一気に消してくれます.
もう一つは,「 auto-newline (自動改行機能) 」です.これは,C-c C-aでオンに できます.オンになると,括弧や「;」などを入力すると自動的に改行してくれます.
また,C-c C-tで両方とも同時にオン,オフもできます.
編集が終わったら,M-x compileでコンパイルできます.ただし, Makefile が必要 です.それが面倒なら,YaCompileなどを利用するといいです.
基本は,TABでインデントを行うことです.そして,関数ごとに変えたい時には C-c C-qとします.
リージョン間のインデントはC-M-\です.バッファ全体なら,C-x hでバッファ 全体を選択してから,C-M-\でできます.
インデントとは少し違いますが,C-x C-iでリージョン間を 1 文字分,字下げできま す.字下げする文字数は引数で指定でき,C-u 5 C-x C-iとすると, 5 文字分下がり ます.
C-c C-uで「#if 」などプリプロセッサの条件文の位置へ移動できます.C-c C-pで一つ前のプリプロセッサの条件文へ,C-c C-nで条件文の最後 (endif) へ移 動できます.
また,M-aで文の始めへ移動できます.カーソルはインデントの後へ移動するので, C-aよりも使いやすい.同様に,M-eもあります.これは,C-eに対応 するものです.
関数単位ではM-x c-beginning-of-defunやM-x c-end-of-defunがあります.
M-;で現在行へコメントを挿入できます.また,コメントが既にあれば,コメント の開始位置へ移動できます.C-u M-;でコメントを消すことができます.複数行の コメントを書く時には,適当に文章を書いて,リージョンで選択し,C-c C-cとし ます.すると,リージョン間がコメントになります.C-u C-c C-cでコメントをは ずすこともできます.
これは普段はあまり使わないかも.C-c C-s(構文解析結果を表示.この値をインデ ントをカスタマイズする時に使う) とC-c C-o(一時的に字下げを変える) .
C-c .でスタイルを指定.最初にいろいろ試してみる時に使います.一度,決めて しまえば,あまり使う機会はない.
プリプロセッサに関しては,リージョンで選択後,C-c C-eで展開することもでき ます.ただし,「 c-macro-preprocessor 」を環境に応じて設定する必要があります.
また,M-x cpp-highlight-bufferとすると,
CPP Display Information for `alloca.c |
のようなバッファが表示されます.ここで,「 [] 」の中にあるキーを押すと,それぞれ の処理をすることができます.例えば,tとすると,シンボルを聞かれますので, 例えば「 CRAY2 」を選択します.その後,色を選ぶと,該当箇所の背景が派手に変化し ます.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
とりあえず,思いついた順番に,,,
result = a + b + c;
を「 + 」で揃えるようにする.
設定は
(setq c-mode-common-hook '(lambda () (let () (c-set-offset 'statement-cont 'c-lineup-math) )) |
似たようなものは他にもあります. cc-align.el にあるので,参考に.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
C や C++ でのヘッダを補完入力することができます.
https://bookshelf.jp/elc/cpp-complt.el をダウンロードして,ロードパス の通ったところに保存し,
(add-hook 'c-mode-common-hook (function (lambda () (require 'cpp-complt) (define-key c-mode-map [mouse-2] 'cpp-complt-include-mouse-select) (define-key c-mode-map "#" 'cpp-complt-instruction-completing) (define-key c-mode-map "\C-c#" 'cpp-complt-ifdef-region) (cpp-complt-init)))) (setq cpp-complt-standard-header-path '( "E:/cygwin/usr/include/" )) |
のように設定してください.これで,# を入力すると,自動的に補完入力になります.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ソースファイルとヘッダファイルを簡単に切り替えることができる.
C++ のコードを書く場合, test.cpp と test.h のようにソースファイルとヘッダファイルを 書くと思います.しかし,これらを切り替えようと思うと,C-x b で切り替える必 要があり面倒です.
C-tだけで切り替えることができます.
toggle-source.el をダウンロードし,ロードパスの通ったところへ置きます.
以下を.emacs に追加します.
(require 'toggle-source) |
ただし,
(global-set-key "\C-t" 'toggle-source)
|
という設定が含まれているので,このキーに別の機能を割り当てている場合には,キーバ インドを割り当て直す必要があります.
例えば test.cpp を開いて,C-tとすると, test.h を開き,そのバッファに切り替わ ります.
この対応は
(defvar toggle-source::mappings (list (cons ".h" ".cpp") (cons ".h" ".cc") (cons ".hh" ".cxx") (cons ".rc" ".h") ) |
のように定義されているので,自分で好きな対応を追加することもできます.
標準の機能としては ff-find-other-file があります. 使い方は単純でM-x ff-find-other-file とします. これで, ヘッダファイルとソースを切り替え ることができます.
ただし, カーソルが「#include 」などの付近にある場合は動作が異なり, M-x ff-find-other-fileを実行すると, インクルードしようとしているヘッダファ イルが表示されます.
ヘッダを探すパスは
(defcustom cc-search-directories '("." "/usr/include" "/usr/local/include/*") "*See the description of the `ff-search-directories' variable." :type '(repeat directory) :group 'ff) |
のように定義されてますので, ヘッダファイルのある場所を追加しておくとい いでしょう.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Emacs Lisp 関連の Elisp / 機能を紹介します.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
M-:で入力ミスをすると,普通は全部入力し直しだが,これならすぐに編集し直す ことができる.
M-:で簡単なコードを実行できます.しかし,入力ミスをすると,エラーで入力し た文字が消えてしまい,再入力をしなくてはなりません.
さらに,結果が長いと,ミニバッファでは非常に見辛いものになってしまいます.
M-:で入力ミスなどでエラーになっても,カーソルはミニバッファに残るので,す ぐに変更ができます.
また,結果が長くなると,一次的なバッファが作られ,そこに表示されます.
eval-expr.el をダウンロードして,ロードパスの通ったところへ置きます.
以下を.emacs に追加します.
(require 'eval-expr) (eval-expr-install) |
普通にM-:で評価するだけです. (setq リターンなどとわざと間違えると,動作し ていることを確認できます.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Elisp を書いていると,この関数の引数はいくつ必要だったかなと,知りたくなることが あります.しかし,そのたびに info へ飛ぶのも面倒です.
そこで,便利なものが eldoc です.これは,カーソル付近の関数の引数をミニバッファに 表示してくれるものです.
Emacs に付属していますので,以下のようにするだけで使うことができます.
(autoload 'turn-on-eldoc-mode "eldoc" nil t)
(add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode)
(add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode)
(add-hook 'ielm-mode-hook 'turn-on-eldoc-mode)
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Elisp はロードパス上に複数あってもどちらか一方しか読み込まれません.しかし,その ファイルを探すのは面倒です.
そんな重複している Elisp を検索する機能が shadow.el です.
実際にどちらが有効になっていて,どちらが無効になっているかも分かります.
標準で附属していますので,設定も不要です.
これは,標準で付属していますので,M-x list-load-path-shadows とするだけで 実行できます.
そうすると,
c:/Meadow2/1.99a6/site-lisp/t-gnus/gnus hides c:/Meadow2/1.99a6/lisp/gnus/gnus c:/Meadow2/1.99a6/site-lisp/t-gnus/gnus-win hides c:/Meadow2/1.99a6/lisp/gnus/gnus-win c:/Meadow2/1.99a6/site-lisp/t-gnus/gnus-vm hides c:/Meadow2/1.99a6/lisp/gnus/gnus-vm c:/Meadow2/1.99a6/site-lisp/t-gnus/gnus-uu hides c:/Meadow2/1.99a6/lisp/gnus/gnus-uu c:/Meadow2/1.99a6/site-lisp/t-gnus/gnus-util hides c:/Meadow2/1.99a6/lisp/gnus/gnus-util
という風に出力されます.
これから, c:/Meadow2/1.99a6/site-lisp/t-gnus/gnus.elc が c:/Meadow2/1.99a6/lisp/gnus/gnus.elc を隠していることが分かります.
新しいのを入れたのに新機能が使えないという時などに確認してみるといいでしょう.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Elisp では関数の説明は必ず書くなど,望ましい書き方があります.このコマンドはその 書き方に合っているかどうかを確認してくれます.
apropos で検索すると,説明の 1 行目だけが表示されます.そのため,説明は 1 行目だけを 読んで分かるのが望ましいのです.
などをチェックしてくれます.
標準で付属しています.
不要です.
自作の Elisp などを開き,M-x checkdocとします.そうすると,バッファの先頭か ら順番にチェックしてくれます.
簡単に直すことのできるエラーであれば,fで自動で直してくれます.
自分で編集したいエラーはeを入力します.すると,再帰編集モードになり,自由 に編集することができます.編集が終わったら,C-M-c (Esc を押してから離し,そ の語 C-c を入力) すると,チェックが再スタートします.
100%従う必要は無いでしょうが,ドキュメントは書いておくべきです.自戒を込めて...
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Emacs Lispなどで関数に相当する部分に色を付けることができます.
2ちゃんねる
関数に相当する部分に色が付き見やすくなります.
入っていませんので,.emacsに追加する必要があります.
以下を.emacsに追加します.
(defface my-face-elisp-macro '((t (:foreground "sea green"))) nil) (defface my-face-elisp-subr '((t (:foreground "purple"))) nil) (defface my-face-elisp-func '((t (:foreground "medium blue"))) nil) (defun my-font-lock-elisp-macro (limit) (when (re-search-forward "['(]\\([^() \n]+\\)" limit t) (or (and (not (memq (get-text-property 0 'face (match-string 1)) '(font-lock-comment-face font-lock-warning-face))) (condition-case nil (symbol-function (intern-soft (match-string-no-properties 1))) (error nil))) (my-font-lock-elisp-macro limit)))) (defun my-font-lock-elisp-subr (limit) (when (re-search-forward "['(]\\([^() \n]+\\)" limit t) (or (and (not (memq (get-text-property 0 'face (match-string 1)) '(font-lock-comment-face font-lock-warning-face))) (subrp (condition-case nil (symbol-function (intern-soft (match-string-no-properties 1))) (error nil)))) (my-font-lock-elisp-subr limit)))) (defun my-font-lock-elisp-func (limit) (when (re-search-forward "['(]\\([^() \n]+\\)" limit t) (or (and (not (memq (get-text-property 0 'face (match-string 1)) '(font-lock-comment-face font-lock-warning-face))) (byte-code-function-p (condition-case nil (symbol-function (intern-soft (match-string-no-properties 1))) (error nil)))) (my-font-lock-elisp-func limit)))) (font-lock-add-keywords 'lisp-interaction-mode '((my-font-lock-elisp-macro 1 'my-face-elisp-macro t)) t) (font-lock-add-keywords 'lisp-interaction-mode '((my-font-lock-elisp-func 1 'my-face-elisp-func t)) t) (font-lock-add-keywords 'lisp-interaction-mode '((my-font-lock-elisp-subr 1 'my-face-elisp-subr t)) t) (font-lock-add-keywords 'emacs-lisp-mode '((my-font-lock-elisp-macro 1 'my-face-elisp-macro t)) t) (font-lock-add-keywords 'emacs-lisp-mode '((my-font-lock-elisp-func 1 'my-face-elisp-func t)) t) (font-lock-add-keywords 'emacs-lisp-mode '((my-font-lock-elisp-subr 1 'my-face-elisp-subr t)) t) |
Emacs Lisp のファイルを開くだけです.すると,例えば
(defun my-font-lock-elisp-macro (limit) (when (re-search-forward "['(]\\([^() \n]+\\)" limit t) (or (and (not (memq (get-text-property 0 'face (match-string 1)) '(font-lock-comment-face font-lock-warning-face))) (condition-case nil (symbol-function (intern-soft (match-string-no-properties 1))) (error nil))) (my-font-lock-elisp-macro limit))))
上記のようなものが,
(defun my-font-lock-elisp-macro (limit) (when (re-search-forward "['(]\\([^() \n]+\\)" limit t) (or (and (not (memq (get-text-property 0 'face (match-string 1)) '(font-lock-comment-face font-lock-warning-face))) (condition-case nil (symbol-function (intern-soft (match-string-no-properties 1))) (error nil))) (my-font-lock-elisp-macro limit))))
のようになります(色は少し変えてあります).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Ruby 関連の Elisp / 機能を紹介します。
41.3.1 Ruby モードを使う (2003/06/08)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ruby-mode.el を使いましょう.これは, ruby 本体に付属しています. misc というディ レクトリ内にありますので,これをロードパスの通ったところへ置き以下を追加すれば使 えます.
inf-ruby.el なども便利そうなので,一度ヘッダを読んでみるといいでしょう.
(autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t) (setq auto-mode-alist (append '(("\\.rb$" . ruby-mode)) auto-mode-alist)) (setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-alist)) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Perl 関連の Elisp / 機能を紹介します
41.4.1 Perl モードを使う − cperl-mode (2006/07/31) 41.4.2 Perl のシンボルを補完 ― perlplus (2003/06/08)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
インストールは http://www.cpan.org/modules/by-module/CPAN/ILYAZ/cperl-mode/ よりダウン ロード後,解凍して, cperl-mode.el の名でロードパスの通ったところへ保存します.
最近の Meadow であれば標準で附属しているので,入れ直す必要はありません.
以下を.emacs に追加します.
私は以下のように一部色の変更もしています.
(autoload 'cperl-mode "cperl-mode" "alternate mode for editing Perl programs" t) (setq auto-mode-alist (append '(("\\.\\([pP][Llm]\\|al\\)$" . cperl-mode)) auto-mode-alist )) (setq interpreter-mode-alist (append interpreter-mode-alist '(("miniperl" . cperl-mode)))) (add-hook 'cperl-mode-hook (lambda () (set-face-bold-p 'cperl-array-face nil) (set-face-background 'cperl-array-face "black") (set-face-bold-p 'cperl-hash-face nil) (set-face-italic-p 'cperl-hash-face nil) (set-face-background 'cperl-hash-face "black") )) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Perl の関数や変数といったシンボルは様々なものがあり,記憶が曖昧なものなどは調べる 必要がありますし,打ち間違えることもあります.
perlplus を利用することでシンボルを補完することができるようになります.
perlplus.elをダウンロー ドし,ロードパスの通ったところへ置きます.
以下を.emacs に追加します.
ただし, cperl モードを使用する時の設定例です. cperl-mode 以外を使う場合には, 「 cperl-mode-hook 」を変更してください.
(add-hook 'cperl-mode-hook (lambda () (require 'perlplus) (local-set-key "\M-\t" 'perlplus-complete-symbol) (perlplus-setup))) |
perl のファイルを開き,適当な文字を入力後にM-TABとします.これで,補完候補 が表示されます.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Meadow で JAVA の開発を行うためのリンク集です.書こうかと思ったのですが,私が下 手に書くよりもずっといいページがあったので,リンクのみにします.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
PHP に関連したものです。 EmacsWiki の HtmlModeDeluxe も参 考になるかもしれません (HTML に PHP-mode を mmm-mode により埋め込む話です) .
41.6.1 PHP 関連の Elisp / 機能 (2004/01/20)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
PHP 用のメジャーモードを提供します.さらに,不明な関数のドキュメントを簡単に表示 できます.
PHP のためのメジャーモードです.
// テスト require('init.php'); if ($a > $b) { print "a is bigger than b"; } else { print "a is NOT bigger than b"; } ?> |
php-modeからダウンロードして解 凍し,ロードパスの通ったところへ置きます.
以下を.emacs に追加します.
(autoload 'php-mode "php-mode" "PHP mode" t) (defcustom php-file-patterns (list "\\.php[s34]?\\'" "\\.phtml\\'" "\\.inc\\'") "*List of file patterns for which to automatically invoke php-mode." :type '(repeat (regexp :tag "Pattern")) :group 'php) (let ((php-file-patterns-temp php-file-patterns)) (while php-file-patterns-temp (add-to-list 'auto-mode-alist (cons (car php-file-patterns-temp) 'php-mode)) (setq php-file-patterns-temp (cdr php-file-patterns-temp)))) |
拡張子が php や inc のファイルを開くと php-mode になります.TABでオートインデン トできます.
さらに, php-mode の特徴は標準関数のマニュアルを表示できることです.方法は知りたい 関数にカーソルを合わせ,C-cC-fとします.そうすると,ブラウザに該当の文書が 表示されます.例えば 「 foreach 」なら 「http://www.php.net/foreach を表示します.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
bat や ini ファイルを編集する時,何の色もつかなくて寂しいですよね.これもカラフ ルにしてしまいましょう
そのために, generic-x を使います.これは Meadow に標準で付属してますので,
(require 'generic-x) (setq auto-mode-alist (append (list '("\\.bat$" . bat-generic-mode) '("\\.ini$" . ini-generic-mode) auto-mode-alist))) |
だけで使うことができます.これで, autoexec.bat がカラフルになります.
この generic-x.el は各種のモード定義をしているファイルで,実際には generic.el が 色付けなどを行っています.キーワードに色をつけた簡単なモードを作りたい時には, generic-x.el を参考にすると簡単にできると思います.
[ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |