HOME / コンピュータTips / emacs

Date: 2019/12/10 |  このエントリーをはてなブックマークに追加  |  Tags: emacs22 Meadow Solaris Linux カスタマイズ コンパイル

滅多に使わない機能なので忘れがちなものを書いてあります。

コンパイル

私は通常、ソフトはなるべくパッケージで入れるのですが((理由はバージョンアップがめんどくさいため))、emacsに関してはどうしても22が先取りで使いたい理由があって、手でコンパイルしています。

理由は、

  • 新しい言語(phpなど)にも、デフォルトでそれっぽく対応してる。
  • UNICODEにも、何もせず対応

Emacsは21が長すぎたので、各種パッケージが22系になることを切に願います。

下記のあたりから、emacs22のソースコードをダウンロード

  • http://www.gnu.org/order/ftp.html
  • http://core.ring.gr.jp/pub/GNU/

ふつうに展開。

configureを設定するが、ローカル流儀的に、srcからコンパイルしたときは、後日、そのディレクトリを発掘したときに、configureオプションがわかるように、必ずコンパイルディレクトリとconfigureスクリプトを残すことにしている。

cat > BUILD.sh 
./configure \
 --prefix=/usr/local \
 --libdir=/usr/sfw/lib \
 --with-xim \
 --with-x
make -j4 bootstrap

Forte Cだと、うちのSXDE Nevada 69だと、Xの時に微妙な動作をしたので、とりあえず、gccにしました。SPARCじゃぁないので、そんなにパフォーマンス劣化はないだろうということで・・・・。チャレンジャーは

 --without-gcc

をつけるとよいでしょう。

コンパイルが終わったらrootになり、

make install

実行時は、LD_LIBRARY_PATHに、/usr/sfw/libが含まれているか、確認してください。

指定したコーディングでファイルを読み込む

C-x RET c コーディング名<RET>
C-x C-f ファイル名

現在のコーディングから変えてセーブしたいとき

M-x set-buffer-file-coding-system<RET>
コーディング名

このあとセーブしないとだめですね。

インデント幅を変える

変数c-basic-offsetに好きな数字を入れる。(set-variableを利用)

インデントにタブを含めない

変数indent-tabs-modeにnilを入れる。

自動保存のファイルからファイルを復元する

emacsでは自動保存されたファイルは#〜#という名前で保存されている。

この自動保存ファイルが保存されたファイルを開くと、

XXXXXX has auto save data; consider M-x recover-this-file

のようなメッセージが表示される。

そこで、書いてあるとおり、

M-x recocer-this-file

で復元は可能。

ただ、このメッセージは自動保存ファイルがあるだけで出てくるため、何かしらの理由(たとえばマシンがハングアップした後に、ファイルを別のところで編集してコピーしたなど・・・・)で、自動保存ファイルと元のファイルにブランチが出来ていることもあるので注意。

consider、よく考えて・・・と書いてあるので、細心の注意をしたい。

自動保存のタイミングをチューニングする。

自動保存は、いくらかキー入力をした後放置するか、ある程度のタイミングで定期的にセーブしている。

これらの変数は、下記の通りである。

変数説明
auto-save-timeout最後のキータイプから何秒後かに保存する
auto-save-intervalオートセーブのタイミング
auto-save-default(念のため)tにしておくとオートセーブが有効

自動保存のコーディング

文字エンコーディングがちょこっと変わっている。何かのフラグがはいってるのでしょうが・・・。

これを無理矢理開くときは、emacs-muleというコーディングで開けばよい。

どうやって読むかはここを参照。