wiki:MonthlyIrcMeeting/Emacs1st

第 1 回 Emacs 会議

日時

2011/02/19(土) 21:00--23:00

参加者

  • munepi (Emacsメンテナなので強制参加 :-)
  • TANAKA_hiroaki
  • _IWA
  • kenta
  • Takemikaduchi
  • Wag
  • iwaim
  • shaolin
  • daisuke

議題

  1. task-emacs作る?(iwaim)
    • とりあえず、Vine5 CD版で「デスクトップ」としてインストールし、後でemacsパッケージをインストールした場合にtamagoが入らないため、LEIM が使われてしまうのは切ない。「tamagoも入れろ」というのでもいいけど、お勧め構成としてのtask-emacsはあってもいいかもしれない。
  2. 新 vine-default wiki/Emacs (munepi)
  3. emacs のドキュメントについて(整理、改定案など)(munepi)

議事録

1. task-emacs作る?

議題1は次回までにwikiで議題整理

誰が作る? < task-emacs のメンテナ

  • 誰がやってもよい。
  • Packager: Emacs のメンテナ+Emacs elisp apps のメンテナ はどうでしょうか?

task-emacs パッケージは、どこらへんをユーザをターゲットにするか?

$ apt-cache search emacs を参考にするものの、 利用者のターゲットを決めるのは、なかなか難しそう。

  1. [初心者向け構成] 初めて使う方でもある程度、機能が揃っている
    • 初心者向けなら、TeX、MUA (mew)、テキスト Web ブラウザ (w3m) などは要らない?
  2. [最小構成] 不便の無い最小を狙う
  3. [最大構成] 大してディスクも食わないから盛りだくさんで入れるか

会議中に出てきた task-emacs の議論の概観をまとめてみました。

  1. ターゲットはよく分からない人対象で良さそう
    • task 系は、めんどくさい人とよくわからん人が対象になるんじゃないかと思う。
      • Emacs の場合は、めんどくさい人はとりあえず対象外でよさそう。
    • 元々 Emacs つかいの方は、おそらくご自分で環境設定をなさる方が多いので、そういう方はひとまず、置いておいてもよいかと思います。
    • 「Emacs を使ってみよう」といったユーザに対して、何も設定しなくてもいろいろとできるといった方がたぶん良い。
  1. Requires: 選定&見せ方
    • 最近の HDD 事情からすると、Requires: を絞らなくても、肥大化もよいという考えもある。
    • 機能を使わない人に不要なパッケージ(TeX を使わない方向けに、yatex を提供するなど)を Requires: に入れるのは、違和感があるという意見がある。
      • X を使わない人に不要なものを task-emacs に入るのは違うと言い出すと Requires: に何も入れられないので、X 前提で良いのではないか。
    • メンテナ不在、メンテナンスが行き届いていないパッケージ、upstream の開発停滞 elisp app を、Require しない方がよいでしょう。
      • 「Requires: MUA (wl, mew) は不要」という意見が多かった。
    • 複数の task-emacs-*(task-emacs-core や task-emacs-tex など)パッケージを作るのはどうか?
      • 必要以上に task 系パッケージを作る必要はないと思う。
    • task-emacs を作らずに、ドキュメント側でがんばるという手もある。
  1. 「使える」日本語入力は必須。
    • 「Emacs 詳しくない人が emacs パッケージだけインストールして、日本語入力周りがバカすぎると思う」というのを軽減したい。

task-emacs-vl.spec に Requires: として、何を入れるか?

  • プログラミング入力支援
    • 玄人の方だったら、ご自分で環境構築ができるでしょうから、ひとまず置いておく。
    • もっとも、Emacs 23 以降で標準的な Emacs がすでにたくさんの入力支援を持っている。
    • 最近は、auto-install 経由で anything + auto-complete な環境が簡単にインストールできるので、あまり苦労しなくても済みます。
  • 日本語入力
    • リリースされている該当の Vine version の標準的な日本語入力に合わせて、Requires: を入れる。
      • vl5: scim-bridge, tamago, anthy-el, ibus-el, mozc-el
      • vl6: ibus-el, mozc-el
  • auto-install
    • ネットワークにつながっていないときも emacswiki につなぎにいくため、vine-default-auto-install.el で、ネットワーク接続の有無を判定した方がよさげ。
    • auto-install によりインストールされる elisp app の標準パス ~/.emacs.d/auto-install は、ユーザおのおので load-path にいれてもらう方が良いと思う。
    • vskel の ~/.emacs.d/emacsXX-vine-default.el にコメントアウトして書いておく。
  • TeX: yatex, auctex
    • auctex は、標準の LaTeX mode を拡張したもの。パスを除かないと、yatex と衝突する。
    • task-texlive は、純粋に TeX 環境として、標準環境を提供することにしました。したがいまして、Emacs 系を task-texlive の Requires: に入れないことにしました。
    • texlive を入れない人はきっと yatex も使わないだろうから、yatex だけ入ってても意味がない。
    • yatex + Emacs な人は、自分で環境を構築できそう。
  • MUA
    • wl (Wanderlust) は、upstream がアレなことになっているので要らない。
    • Mew のメンテナ不在は事実上不在!? > tkoba-san がメンテナかな?
    • Mew 利用者はそれなりに多いように思います。
    • Emacs の MUA は、コンソールで使えるのも強み。
  • IRC クライアント: riece
  • migemo
    • 標準のインクリメンタルサーチを上書きしてしまう

task-emacs パッケージをどうしたらターゲットに提供できるか?

  • めんどくさい人とよくわからん人にかんたんにいれてほしいのであれば、task- でもメンドクサー というか task- なにあるかわかりません! とかなりそうな気もするし、みせかたむずかしいなあ と。
  • そもそも、task-emacs を誰かメンテナをやったとしても、そのメンテナさんが、task-emacs を入れないという事態だけは避けたい :)
  • emacs おすすめパッケージ集ってのをいくつかつくったとして、わたしがほしいのは どのおすすめパッケージ集に入ってるかわかりません! とか 本末転倒なことをいいだす人もまあいるでしょうし
  • emacs メンテナのおすすめ環境を1つ用意するとか
  • vine-app-install に Emacs とかいうカテゴリつくって、そこに突っ込んでおけばいいのでは > el
    • そもそも Emacs 自身が標準ですでに色々なモードを持っているので、日本語入力以外で、あんまし Requires: するパッケージがないんですよね。
  • Emacs 上で vine-app-install のような UI を実装はどうか? :)
    • su などを裏で走らせられるので、アリ。
    • auto-install でよいのではないか。いくつかの elisp app は、auto-install 経由でインストールできる。
  • 機能が重複してないものを全部 Requires: に入れるとか?
    • 唯一、意味があって、かつ、誰にでもわかるものがあるとすれば、現在 main/plus にある 全 elisp app パッケージを Requires: した task-emacs-el-all みたいなパッケージ。
      • 新しい elisp app パッケージが追加される度に、チマチマとメンテナンスが必要になる。
    • Emacs 自体の基本的な機能の挙動を変更するものが Requires: されていると、なやましいと思う
      • 例: migemo, auctex, yatex
  • emacsXX-vl.spec に Requires: 日本語入力 はどうか?
    • たとえば Vine5 で Requies: scim とすると、scim を消さなくてもよい人は問題ないけども、必須でもないものが R されてて、アンインストールできないのは煩わしい。
    • 初心者に優しい Vine のスタンスからしたら、その辺の問題よりも emacs と task-emacs の2つあるけどどっちを入れたらいいか迷う、なんて悩みを減らす方がメリットがある気がします。
    • Vine Linux のインストーラ側(DVD 版)では、Emacs カテゴリがある。Emacs を選べば、最低限の然るべき日本語入力環境がインストールされるようになっている。
    • 付録B emacs-ime に設定できる値の一覧  http://vinelinux.org/manuals/emacs-ime-list.html#id2557822
  • munepi としては ...
    • 私自身は、task-emacs はとくに不要、vine-app-install にも Emacs 枠は不要と思っています。
      • いまどき何でも Emacs をガリガリ勧められないなーと、個人的に思っています :)
    • もし私が task-emacs を作るとしたら、Requires: emacs, 日本語入力(ibus-el, mozc-el, scim-bridge-el (vl5)), auto-install 辺りです。
    • Emacs 上に vine-app-install のような UI を整える。
    • ドキュメントを充実させる。

2. 新 vine-default

新 vine-default で問題ないか?

Vine Linux 5 の vine-default は、当時 VineSeed で十分に時間をかけてテストしていたとは言えませんでした。 一応目的の形にはなったものの、after-vine-default-setup-hook にひっかけることが分からない方にとっては、難しい仕組みになってしまいました。 大変申し訳無く思っております。 もちろん、(setq vine-default nil) にすれば、素の環境が提供されるので、それで対応されていただいたいていると思いますし、vine-default のまま使っておられる方もいるようでした。

VineSeed では、ユーザ初期設定ファイル ~/.emacs.el, ~/.emacs.d/init.el を完全にユーザに開放すべく、after-vine-default-setup-hook を廃止して、vine-default をシンプルな形にしました。 VineSeed の vine-default は、.el の読み込み順序が自然で、なおかつ、全部自分で設定したい人向けも、~/.emacs.d/emacsXX-vine-default.el で完全に制御できます。

議論のポイントは、以下の 3 点あたりです。

  • ちゃんと適切な順序で el がロードされているか?
  • ~/.emacs.d/init.el が適切に開放されていると言えるか?
  • ~/.emacs.d/emacsXX-vine-default.el に vine-default 向けの設定を分離するので問題ないか?

新 vine-default が問題なければ、次期 Vine Linux 6 の Emacs 環境は、これにしたがって、今後 vskel などを仕込み作業を始めます。

vskel: branch を切る? or tags を切る?

vskel は etcskel パッケージの中身です。

branch を切って、VineSeed で作業をすすめるようになりました。

vupgrade、以前の Emacs 関連設定ファイル ~/.emacs.* を ~/.emacs.d/dot.emacs/ 以下に移動するので OK?

こちらも作業を進めていきます。

3. emacs のドキュメントについて(整理、改定案など)(munepi)

Emacs 利用ガイド  http://vinelinux.org/manuals/emacs-guide.html があります。 Vine Linux 5 リリース時に、Vine Linux 5 の Emacs と vine-default の説明を追加したのみで、時間もなくて改訂できませんでした。

そこで、1. Emacs を始めようについて、改訂をしたいのです。

  • 1.1 の Emacs を起動の前に、今日の議題 1 の「Emacs 環境の導入から」を記述したい
  • それから、emacs-23.X 以降の新しい機能、便利な機能の説明を追加したい
    • daemon 化、tramp, over ssh
    • alpha 値の設定
  • 実際の実用例をもっと記述しておきたい。
    • 例えば、1.6. の文字列検索・置換だったら、正規表現を絡めて M-x query-replace-regex あたりも入れたりなど。
  • 最後に、代表的な elisp アプリについて、説明があったり、詳しく語っておきたいものであれば、ページを割く感じです。
  • 2. 以降の vine-default は 新 vine-default に合わせて改訂します。

コメント

  • 議題 1 について、特に日本語入力周りを導入部に記述しておきたい。
  • Undo について、Redo の仕方があると良いと思います。
    • Win な頭の人間は、必ず引っかかります。
    • 「Redo は Undo に含まれる」とか言われてもピンとこない
  • 矩形選択 (rectangle) もどこかに欲しいです。
    • kill-rectangle, yank-rectangle

Vine-manual のブランチについて

以下の案はどうでしょうか?

  • Vine-manual 自体の ブランチを切ればよくないですか?
    • web からは、ブランチ Vine Linux 5 向けのを参照する。
    • trunk は Vine Linux 6 向けに作業を始める。