私は最近、苦労してゴス語のために「劣ったゴスモード」を構築しました。それは実際にはかなり単純であることが判明しました:私はcomint
を延長しました。これはshell
とielm
の両方に基づいています。ここでは、コードの重要なビットです:
(require 'comint)
(defun inferior-gosu-mode()
(interactive)
(comint-mode)
(setq comint-prompt-regex inferior-gosu-prompt)
(setq major-mode 'inferior-gosu-mode)
(setq mode-name "Inferior Gosu")
(setq mode-line-process '(":%s"))
(use-local-map 'inferior-gosu-mode-map))
あなたは特別なキーバインディングを定義するだけでどこuse-local-map
ビットです。私はのcomintバインディングの単なるコピーとしてそれを持っている:
(defvar inferior-gosu-mode-map nil)
(unless inferior-gosu-mode-map
(setq inferior-gosu-mode-map (copy-keymap comint-mode-map)))
この後、私はそれが存在する場合*inferior-gosu*
バッファを開くポップしまうプロセスを起動するコマンドを定義し、いくつかの簡単なコードを持っていました。私は下位ゴスのシェルを開くために通常のゴスモードに少しのコードを追加しました。
要約:comint
を使用してください。ここで
は全体のコードへのリンクだが、それをはるかにありません。https://github.com/TikhonJelvis/Gosu-Mode/blob/master/inferior-gosu-mode.el
は、当然のことながら、しかし、あなたが望むそのコードを使用して自由に感じます。通常のゴスのモードを見て、言語のそれぞれの編集モードにあなたがどのように統合されているかを知ることができます。
あなたの質問にはあまり答えませんが、ツール用のemacs lispラッパーを作れば、ielmから使用できます。私はemacs redis wrapperでこれを行います。 http://code.google.com/p/eredis/ – justinhj