Windows 8.1時代のNTemacsの初期環境設定の入門っぽいもの

公開日: : emacs, windows環境構築

emacsの環境設定って大変です。次のような場合に該当すれば、相当環境設定の敷居は下がりますが、それでもやっぱり大変です。

  • 既にUNIXのsystem管理者が居て、いろいろお膳立てしてある状態で自分が一般userとしてemacsを使う。
  • 現代化されたdistributionの楽勝installerでホイホイ入れたPC-Unix環境(Cygwinなども含む)でemacsを使う。

window環境など、GUI環境でemacsを使う際の独特のめんどくささといったらやりきれません。
terminalなどの環境変数を受け継がないし、emacs側が認識しているuserのhomeディレクトリなどの場所がデフォルトだとどうなっているのかよくわからないからです。

2015年のwindows環境でのemacs互換editor事情にて、emacs-24.4-rzl24ozi-ime.zipのバイナリを導入した前提で、NTemacsの初期環境設定について、ifなどの条件分岐などを用いない、最低限のことができるようになる最も単純なユーザー個別の環境設定ファイルを書けるようになるまでのヒント的なもの

GUIでの起動(runemacs.exeなどのショートカットで起動)後、*scrach* バッファを表示する

とりあえず *scratch* でいろいろ変数に何が束縛されているのか確かめる。

起動後のフレームの最下部はこんな感じ

bottomline_01Controlを押しながら”x”, 離してすかさず”b”を押す。以下では(C-x, b)と表記する。

  • (default *scratch*) と表示されているならば、そのままEnterを押せばよい。

bottomline_02

  • (default *scratch*) となっていないケースでは、*scratch*と打ち込んでEnterを押します(途中でtab補完が効くと思います)bottomline_03

無事に *scratch* buffer が表示される。

scratch_buffer

*scratch* buffer中で式を評価して現在の変数に何が束縛されているか表示していく

versionの表示

まず*scratch* bufferの適当な行に(version)と書いて、閉じ括弧の直後にカーソルを合わせて、
scratch_buffer_version_01
Controlを押しながら”j”キーを押すことで(“C-j”で)式を評価する。
scratch_buffer_version_02
するとemacsのversionが表示される。終始こんな感じで進めていく。

version 23.1以降の推奨user個別の設定ファイルの場所

古いemacsのversionだとuser個別設定の推奨ファイル名は”.emacs”だったり”.emacs.el”だったりするが、今では”init.el”らしい。今でも古いファイル名が使えるが、ファイルの設置場所が微妙に異なるので注意すること。複数ある場合の優先順位は

  1. ~/.emacs.el
  2. ~/.emacs
  3. ~/.emacs.d/init.el

(UNIXの常識を仮定しないで一々説明すると、”~/”は、userのホームディレクトリを指す。このNTemacsはwindows上で動作しているが、emacsはかなりunixの慣習に従っているのでunixの表記法や常識が通じる)

リファレンスマニュアル見れば明白なんだけど、愚直にも今現在そういう設定になっているかどうか、scratch内で式を評価して確認していくこととする。(emacs-user-directoryではなく、user-emacs-directoryであることに注意。)

*scratch* bufferの適当な行にuser-emacs-directoryと書いて、閉じ括弧の直後にカーソルを合わせて、またもやControlキーを押しながら”j”キーを押す(C-j)

scratch_buffer_user_emacs_directory_01
どうやらリファレンスマニュアル通りの設定になっていることが確認できた。

NTemacsがユーザーのホームディレクトリ”~/”だと識別している場所はWindowsの側ではどこのディレクトリに相当するのか

Windowsだとユーザーのホームディレクトリ”~/”という略記法はない。NTemacsでC-x, C-fで場所に~/を指定してみるとそこの位置を開いて表示してくれる。

bottomline_04

あくまで私の環境(Windows8.1,NTemacs-24.4)での話なので、ご自分の環境でどうなってるかは自分で試してください。
C:/Users/”Windowsでのuser名前”/AppData/Roamingと表記されている。MS-DOSやWindowsではディレクトリの区切り記号に”\”を用いるが、このNTemacs上の表記では”/”とUNIXの慣習のものになっていることに注意。

user_appdata_roaming

user_appdata_roaming_2

load-pathの設定がどうなっているか調べる

pathという概念がどんなものか、unixを使ったことのあるおっきなお友達ならほぼ99%誰でもわかっているだろう。MS-DOSをいじっていたおっきなお友達も、まあなんとなくわかるはずだ。ここではemacsがdefalutで読み込むemacs-lispが記述されたスクリプトファイル(*.el)及びそれをバイトコンパイルしたもの(*.elc)が置いてある場所(ディレクトリ)を示すものである。

*scratch* bufferの適当な行にload-pathと書いて、閉じ括弧の直後にカーソルを合わせて、またもやControlキーを押しながら”j”キーを押す(C-j)

load_path_01

どうやらディレクトリがlistの要素として表示されるようだが、一定以上数あると略されてしまうらしい。そこで、(setq eval-expression-print-length nil)と書いて、閉じ括弧の直後にカーソルを合わせて、またもやControlキーを押しながら”j”キーを押す(C-j)

再びload-pathの閉じ括弧の直後にカーソルを合わせて、またもやControlキーを押しながら”j”キーを押す(C-j)

load_path_02

略さずに全部表示される。これだとちょっと見にくいので、結果を整形して表示しよう。

  1. load-pathを評価した結果の開き括弧”(“にカーソルを合わせて、Control-Space(コントロールキーを押しながらスペースキー)を押す。
  2. load-pathを評価した結果の閉じ括弧”)”にカーソルを合わせる。
  3. [ESC],xと連続で押して(Meta-x)、ミニバッファ(最下行のwindow部分)にreplace-stringと入力し、Enterを押す。load_path_03
  4. Replace string in region: と表示されるので、spaceを押してEnterを押す。
  5. Replace string in region with: と表示されるので、今度はControl-q, Control-j (C-qはquoted insertで、本来入力できない制御文字などを入力するための呪文, C-jはnewline characterを入力)load_path_04
  6. C-q, C-jが入力成功しているとミニバッファの形が微妙に変化していることに注目。load_path_05
  7. Enterを押す。

load_path_06

ちゃんと整形して表示されたようだ。

仮のinit.el作成

ここまでのお勉強の成果を反映した「とりあえずの初期設定スクリプト」を作ってみる。

(Load file) C-x,C-f してmini bufferに ~/.emacs.d/init.el と入力してenterを押す。
make_init_el_01

すると、~/.emacs.d/init.elに保存されるであろう(この時点ではファイルは作られていない)バッファが作られるので、

make_init_el_02

バッファー init.el を編集していく。以下のような内容にする。

C-x,C-s してbufferの内容が ~/.emacs.d/init.el に保存されるので、
C-x,C-cで一度emacsを終了し、再起動する。

再びC-x,C-f してmini bufferに ~/.emacs.d/init.el と入力してenterを押す。
猫にもよくわかる変化として、今度は行番号が表示されている筈。

make_init_el_03

文字コードの設定に関しては以下で説明する。

character code 文字コードの設定について

まず、emacsで編集するテキストファイルは長文で、プログラムのソースコードやスクリプトファイルであることが多い。2015年現在のヤポンの国のblog民に大人気であるWordPress(要はPHPとMySQL)はUnixで動かすことが多い。サーバサイドで動くスクリプト言語もリレーショナルデータベースシステムも元々Unix文化のものだ。だからデフォルトで扱う文字コードをutf-8で、unix環境のしきたりに従って改行はNewline文字のみで表す設定にした。BOM(BYTE ORDER MARK)の有無は、2015年ならまあBOM(BYTE ODER MARK)無しだろう。
注意:

  • Windowsのメモ帳で適当なutf-8のテキストファイルを開いて保存すると、勝手にBOM(BYTE ODER MARK)有りにされてしまう。
  • Microsoft Visual StudioなどのMicrosoft社製開発環境だと、utf-8のBOM無しのソースコードを勝手に改変して保存される(未確認情報).
    設定をいじればどうにか回避できるらしい

Windowsのファイル名やら、「Shift_JISの半角カナ」や機種依存の変てこな文字を表示させるために、ファイルやディレクトリの閲覧や操作回りのことはShift_JISを拡張したcp-932に設定している。

参考URL

参考にさせていただきました。ありがとう、なのです。

 

PC用四角形1

関連記事

Cygwinのapt-cygで”MD5 sum did not match”が出てエラーになる現象と対処法

Cygwinとは、Cygnus Solutions社(RedHat社に吸収された)によって開発・保守

記事を読む

2015年のwindows環境でのemacs互換editor事情

windows 8.1環境下でemacs互換、もしくはemacsっぽいところがあるtext edit

記事を読む

PC用四角形1

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PC用四角形1

PAGE TOP ↑