Emacs Mediawiki

提供: ArchWiki
移動先: 案内検索

関連記事

Emacs Mediawiki Mode は wikipedia.org の mediawiki mode を改良した emacs のメジャーモードです。mediawiki を使っている wiki サイトの wiki 記事を emacs エディタで直接編集する手助けをします。

インストール

AUR にパッケージが存在します:emacs-mediawiki-bzrAUR[リンク切れ: アーカイブ: aur-mirror]

https://launchpad.net/mediawiki-el からソースを直接ダウンロードすることもできます。

設定

AUR からパッケージをインストールしたら、emacs の設定ファイル (通常 ~/.emacs) を開いて以下の行を追加してください:

(require 'mediawiki)

それから設定ファイルに mediawiki サイトを追加します。例えば、ArchWiki を追加する場合:

(setq mediawiki-site-alist
      (append '(("ArchWiki" "https://wiki.archlinux.org/" "username" "password" "Main page"))
              mediawiki-site-alist))

Archwiki はサイトの名前に、https:/wiki.archlinux.org/ はサイトの URL に、usernamepassword はサイトのユーザー名とパスワードに置き換えてください。Main Page はサイトに接続したときに開くデフォルトページです。

設定リストを mediawiki-site-alist リスト変数に追加することで他のサイトも追加できます。

使用方法

設定後、emacs を使って直接 wiki ページを編集できます。emacs を開いて以下を実行するとサイトに接続します:

M-x mediawiki-site RET {site name} RET

接続したら、デフォルトページが開かれます。他のページを編集したいときは、以下を実行して開いて下さい:

M-x mediawiki-open RET {page title} RET

キーバインディング:

  • C-x C-s – ページを保存
  • C-c C-c – ページを保存してバッファを埋める
  • C-return – ポイントのページを開いて編集
  • TAB – 次の wiki リンクを開く
  • M-n – ページリングの次のページ
  • M-p – ページリングの前のページ
  • M-g – 現在のページをリロード

emacs での wiki ページの編集を楽しんで下さい。

ヒントとテクニック

MediaWiki は設定をカスタマイズするためのフックを用意しています。例えば、C-return が使えないときは、簡単に再定義できます:

(setq mediawiki-mode-hook
    (lambda ()
        (define-key mediawiki-mode-map (kbd "C-c RET") 'mediawiki-open-page-at-point)
))

自動改行のオフ

Wiki はパラグラフを自動改行しません。改行してしまうと、履歴差分がおかしくなり、使い物にならなくなってしまいます。自動改行機能は完全にオフにするのが良いでしょう。以下の行をフックに追加してください:

(setq mediawiki-mode-hook (lambda ()
                          ;; ...
                            (turn-off-auto-fill)
))

ブラウザの指定

Mediawiki の便利な機能として mediawiki-browse 関数があり、ウェブブラウザで作成されたページを確認することができます。ブラウザは browse-url プラグインに従って選ばれます。ブラウザは自分で設定することができます。例えば環境変数を使う場合:

(setq browse-url-generic-program (executable-find (getenv "BROWSER"))
browse-url-browser-function 'browse-url-generic)

dwb ブラウザを指定する場合:

(setq browse-url-generic-program (executable-find "dwb")
browse-url-browser-function 'browse-url-generic)

参照