現在はMac用バイナリ(Emacs for Mac OS X)が提供されている。提供サイト[19]からディスクイメージをダウンロードし、ダウンロードしたディスクイメージをマウント。Emacsアイコンをアプリケーションフォルダにドラッグするだけでインストール完了。
2016/09/12現在、Mac用バイナリの最新バージョンは24.5-1。以下は、少し古いEmacs22(Carbon Emacs)、より新しいのEmacs23(Cocoa Emacs)に関する情報。後者のインストール方法について15,17。但し、バックスラッシュが入力できない、php-modeがデフォルトでは入っていない点はEmacs 24でも同じみたい。
$ cd ~/download $ wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3a.tar.gz $ tar -zxvf emacs-23.3a.tar.gz
\
)が入力できず、円マーク(¥
)しか入力できない。Emacs22では Alt(M)-¥ でバックスラッシュが入力できていたが、Emacs23では M-¥ is undefined となる。このパッチを当てることでデフォルトで入力される値がバックスラッシュになる(但し今度は円マークを入力する術がないみたい)。
$ wget http://jaist.dl.sourceforge.jp/macemacsjp/47986/inline_patch-23.2-beta3.tar.gz $ tar -zxvf inline_patch-23.2-beta3.tar.gz
$ cd emacs-23.3 $ patch -p 0 <../inline_patch-23.2-beta3/emacs-inline.patch
$ ./configure --with-ns --without-x $ make bootstrap $ make install
$ cp -rf nextstep/Emacs.app /Applications/Emacs_23.3.app
また、また、ソースからインストールしても一応動作したが、デフォルト状態では円マーク(バックスラッシュ)が入力できない、日本語などが扱いづらい(変換区間が変更できない、F7でカタカナに変換できないなど)、M-w でコピーしようとするとアプリケーションが閉じられてしまう(メニューの[Edit]-[Copy]からであればコピーOK)など不都合があるよう。以下はMac OS X 10.6.8での状況。
# tar -zxvf emacs-23.4.tar.gz # ./configure ... configure: error: The following required libraries were not found: libjpeg libpng libgif/libungif libtiff Maybe some development libraries/packages are missing? If you don't want to link with them give --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no as options to configure # 画像関係のライブラリ類がないと言われた。finkでインストールしてもなぜか状況は変わらないので適用を除外して再configure $ ./configure --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no $ make $ src/emacs -Q # インストールしなくてもとりあえずこれで動く。 $ sudo make install $ make clean # ビルドファイルの消去 $ which emacs /usr/local/bin/emacs $ emacs
GNU EmacsはWindows用のバイナリが提供されているが、そのままビルドしたものは日本語入力に難があるらしい。日本語入力切り替え(IME ON)時、インライン入力ができるように最低限のソースコード変更をしてビルドしたものが配布されている14。
M-x replace-regexp は指定したパターンに一致する任意のものを置換(無条件置換)
M-x query-replace-regexp RET regexp(検索条件) RET newstring(置換パターン) RET、
または
C-M-% regexp RET newstring RET
は指定したパターンに一致する任意のものを置換(問い合わせ型置換)
C-M-sで前方正規表現検索、C-M-rで後方正規表現検索。
例:3桁の数字+":"の後に改行を挿入する。
C-M-% [0-9][0-9][0-9]: RET ¥& C-q j RET
(C-q jで改行コードを挿入)
文字そのものを指定するには前に \
を置いてエスケープする必要があるものは以下の通り。
\ * + . ? [ ] ^ $ - | /
※Perlの正規表現とは異なり "{ } ( )
" のエスケープは不要。逆に正規表現文字として用いるには直前に \
を記す必要あり。
指定文字列 | 内容 | 事例 |
---|---|---|
.(ピリオド) | 改行以外の任意の1文字 |
|
* | 直前の正規表現を0回以上繰り返したもの |
最長のパターンに適合する。最短パターンに適合させるには 【例】"f" の後、"o" を0回以上含んだ文字列を消去する C-M-% fo* <RET> <RET> ※f、fo、foo、fooo、などが適合する。 【例】"c" と "ar" の間に "a" を0回以上含んだ文字列を消去する C-M-% ca*ar <RET> <RET> ※car、caar、caaar、などは適合し、cdar などは適合しない。 【例】 |
+ | 直前の正規表現を1回以上繰り返したもの (* とは異なり、0回はヒットしない) |
|
? | 直前の正規表現を0回または1回繰り返したもの (* とは異なり、2回以上はヒットしない) |
|
[ ... ] | []内の記述が示す文字集合 |
|
[^ ... ] | [^ ]内の記述が示す文字集合を除いたもの |
|
^ | 行頭にあるもののみヒット。 |
【例】各行頭にかっこ ( を挿入
C-M-% ¥(^.¥) <RET> (¥1
行頭にある(
|
$ | 行末にあるもののみヒット。 |
|
w/W | 単語構成文字/単語構成文字以外 |
|
¥(...¥) | これに囲まれた表現を後に呼び出す事ができる(後方参照) |
【例1】( ※perlの正規表現では括弧および括弧閉じの前に円マーク(バックスラッシュ)は不要。
※emacsでは呼び出す際の指定は「 |
¥{x,y¥} | 直前のブロックのx回以上y回以下の繰り返しにマッチする。 |
|
¥| | 選択肢を指定する。 |
|
参考サイト:GNU Emacsマニュアル: 探索と置換
M-x replace-string だと確認なしに無条件置換。 各々確認しながらの置換(問い合わせ型置換)はM-% またはM-x query-replace。
正規表現を使った置換は、 C-M-% regexp <RET> newstring <RET>、または M-x query-replace-regexp <RET> regexp <RET> newstring <RET>。
置換中のキー操作について。
y
n
q
.
(ピリオド)!
^
検索は「C-s」逆方向検索は「C-r」 検索状態で「C-s」で、前回条件の呼び出し。
つまり、「C-s C-s」で前回条件での検索。
もっと前の条件を使いたいときは、検索リンク(search ring)を利用。 「M-p / M-n」 でリング内移動。目的の要素が表示された状態で、必要に応じて編集し、「C-s / C-r」で検索開始。
前方正規表現検索:C-M-s
または M-x isearch-forward-regexp
後方正規表現検索:C-M-r
または M-x isearch-backward-regexp
正規表現の記述方法は正規表現による置換参照。
; を ; +改行 に置換したい場合 M-x replace-string => ";" => ";C-qC-j" ; の後 C-qC-j を入力すると、下のメッセージウインドウ内で改行される。
C-Space
でマークC-M-バックスラッシュ
または、M-x indent-region
を実行(但し前者はバックスラッシュの代わりに円マークしか入力できずエラーになるよう?)参考サイト:おいぬま日報(不定期)(2006-08)
参考サイト:GNU Emacsマニュアル: Display
htmlモードを含むSGMLモードで、
コマンド | 動作 |
---|---|
C-x C-e、または C-M-x | カーソル直前のS式を評価 |
C-c C-e | カーソルのS式を含むトップレベルのS式を評価 |
C-c C-l | ファイルをロード(効かない?) |
C-c C-r | リージョンを評価 |
C-c C-z | Schemeのインタプリタが動いているバッファフォーカスを移動 |
M-C-f | 次のS式へ移動 |
M-C-b | 前のS式へ移動 |
M-C-a | カーソルのS式を含むトップレベルのS式の先頭に移動 |
M-C-e | カーソルのS式を含むトップレベルのS式の末尾に移動 |
M-C-d | 1つ内側のS式へ移動(効かない?) |
M-C-u | 1つ外側のS式へ移動 |
M-C-space | カーソルのS式の次のS式をマーク |
M-C-t | カーソルのS式の前後の式を交換 |
参考文献:Kahuaプロジェクト『プログラミングGauche』オライリー・ジャパン、ISBN 978-4-87311-348-7
正規表現置換などで、バックスラッシュを入力しようと思うのに、円マーク(¥)が入力されて困ったが、Alt(Opt) + ¥
で入力できることが判明。マーク領域一括インデント(C-M-\
)も入力できず、M-x indent-region
とわざわざ打ち込み、その度に「C-M-\
で同じことができまっせ」というメッセージを吐かれていた。但し、Emacs 24ではこの方法は効かず、初期設定ファイルの調整でも今のところ対処不可(Mac 10.11にて)。他のソフトで入力したものをコピー&貼り付けするしかない?
参考文献・サイト:
M-;
行の後半にコメント追記するのに使用。一定の位置にインデントした上でセミコロンが入力される。
改行したりすると自動的にインデントが適用される「自動インデント」が有効になっていると、htmlコードのpreタグで意図しないインデントが表示にまで反映されるなど不都合なことがある。
この機能のON/OFFは、Emacs設定(Preferences)の[Editing]-[Electricity]-[Electric Indent mode]で設定する。onかoffのどちらかを選択する。
あるいは、Emacs設定ファイル(~/.emacs.d/init.el
など)に以下の1行を書けば良い[26]。
(electric-indent-mode -1)
Emacsでは多くのモードでTABの入力はインデントとして機能する。純粋にTAB文字を入力したいときのキー操作は次の通り。
C-q TAB (Ctrl+Q を押した後、TABキーを押す)
参考サイト:Emacs - [物理のかぎしっぽ]
改行でも同様のことが言える。 改行を入力するつもりが、入力内容の決定の意味になってしまうことがある(検索や置換など)。 下記コマンドで、改行入力が可能。
C-q C-j
※C-q Enter
ではうまく動作しないみたい(^M
が挿入される)。
PHPモード時、C-c C-c
で選択範囲の各行がのコメントアウトされる(各行の内容が「/*
」と「*/
」で挟まれる)。
php-modeで範囲選択を行い、TABを押して自動インデントをかけるとインデント幅は4文字になっていた。これを2文字に変更した手順。
初期設定ファイル(~/.emacs.d/init.el
など、Windows環境はWindowsにおけるHOMEの場所参照)に以下の記述を追加。
;; set the width of indent to 2 (add-hook 'php-mode-hook (lambda () (setq tab-width 2) (setq c-basic-offset 2)))
M-l
M-u
M-c
M-- M-l
M-- M-u
M-- M-c
C-x C-l
C-x C-u
K
qq
qz
C-_
、C-x u
C-g C-_
なお、領域内変換のコマンド(downcase-region、upcase-region)は既定では無効になっていて、最初に利用しようとすると、有効にするかどうか確認を求められる。"y"で答えると以後有効となり確認を求められなくなる。この設定は~/.emacs.el
に(put 'upcase-region 'disabled nil)
などと記述するのと同じ(確認に"y"で答えると、この記述が自動的に追加される)。
参考文献・サイト:
C-t
M-t
【例】 There is a large white dog. → There is a white large dog. There is a large white dog. → There is a large dog white. www.hoge.com → hoge.www.com www.hoge.com → www.com.hoge
たまたま見つけた。
制御文字は C-q + C-X で入力する。Xはキャラクターコードに相当する順序のアルファベットを指定する。例えば改行コード(LF、0A(16)=10(10))は10番目のアルファベットである「j」をXの部分に指定する[9]。
文字 | キャラクターコード | 入力方法 | 備考 |
---|---|---|---|
改行(Line Feed) | 0A(10) | C-q + C-j | Linux系および最近のMacでは改行にLFを使う。 |
復帰(Carriage Return) | 0C(13) | C-q + C-m | Win系では改行にLF+CRを使う。 |
タブ | 09(9) | C-q + C-i |
操作の取り消し、再実行
C-_
または C-x u
C-g C-_
参考文献・サイト:
UNIX系システムで一般的なテキストエディタvi相当のキー動作環境にモード変更する方法。これにすれば、カーソル移動などと文字入力が分離でき、小指でCtrlキー押しが減少する…かもしれない…と思うが、慣れないうちは扱いずらい。しかもj(1つ下にカーソル移動)やk(1つ上にカーソル移動)をすると、「wrong-type-argument: number-of-marker-p, t」と出続ける。
viモードへの入り方は(1)M-x vi-mode
(2).emacs
に以下の記述をしておくとESC ESC
で viモードに入ることができて便利とのこと。
(define-key global-map "\e\e" 'vi-mode)
※追記した後はEmacsを再起動すること。
参考サイト:Meadow/Emacs memo: 他のソフトのエミュレーション
[13]
(1)野鳥サイトからソースダウンロード shell> wget http://www.yatex.org/yatex1.73.tar.gz (2)展開 shell> tar zxvf yatex1.73.tar.gz shell> cd yatex1.73 (3)makefile編集 # # Makefile for YaTeX # # Edit these variables to be suitable for your site PREFIX = /usr/local ## mule2 #EMACS = mule EMACS = mule #EMACSDIR= ${PREFIX}/lib/${EMACS} EMACSDIR= ${PREFIX}/lib/${EMACS} ## emacs20 #EMACS = emacs #EMACSDIR= ${PREFIX}/share/${EMACS} ## XEmacs #EMACS = xemacs #EMACSDIR= ${PREFIX}/lib/${EMACS} ## Meadow (Sample) #EMACS = meadow #EMACSDIR = c:/usr/local/meadow ## CarbonEmacs on Darwin (Sample) #EMACS = /Applications/Emacs.app/Contents/MacOS/Emacs EMACS = /Applications/Emacs.app/Contents/MacOS/Emacs #PREFIX = /Applications/Emacs.app/Contents/Resources PREFIX = /Applications/Emacs.app/Contents/Resources #EMACSDIR = ${PREFIX} EMACSDIR = ${PREFIX} LISPDIR = ${EMACSDIR}/site-lisp/yatex # LISPDIR = ${EMACSDIR}/site-packages/lisp/yatex DOCDIR = ${LISPDIR}/docs HELPDIR = ${EMACSDIR}/site-lisp INFODIR = ${PREFIX}/info TAR = tar INSTALL = install -c -m 444 MKDIR = mkdir -p INSTINFO= install-info # Comment out below if you are using Emacs Windows(meadow, etc) GEO = -geometry 80x20+0+0 ################### # Do not edit below ################### (以下略) (4)インストール shell> make install if [ ! -d /Applications/Emacs.app/Contents/Resources/site-lisp/yatex ]; then mkdir -p /Applications/Emacs.app/Contents/Resources/site-lisp/yatex; fi if [ ! -d /Applications/Emacs.app/Contents/Resources/site-lisp/yatex/docs ]; then mkdir -p /Applications/Emacs.app/Contents/Resources/site-lisp/yatex/docs; fi if [ ! -d /Applications/Emacs.app/Contents/Resources/info ]; then mkdir -p /Applications/Emacs.app/Contents/Resources/info; fi for f in *.el; do \ rm -f /Applications/Emacs.app/Contents/Resources/site-lisp/yatex/${f}c; \ done install -c -m 444 *.el* yatex.new /Applications/Emacs.app/Contents/Resources/site-lisp/yatex install -c -m 444 docs/yatexj.tex docs/yatexe.tex docs/yatex.ref docs/yatexref.eng docs/yatexadd.doc docs/yatexgen.doc docs/qanda docs/qanda.eng docs/htmlqa docs/htmlqa.eng docs/yahtmlj.tex docs/yahtmle.tex /Applications/Emacs.app/Contents/Resources/site-lisp/yatex/docs install -c -m 444 docs/yatexj docs/yatexe docs/yahtmlj docs/yahtmle /Applications/Emacs.app/Contents/Resources/info install -c -m 444 help/YATEXHLP.jp help/YATEXHLP.eng /Applications/Emacs.app/Contents/Resources/site-lisp -------------------------------- If you have install-info command, type 'make install-info'. If not, add next lines into your site's info dir manually. * YaTeX: (yatexj). Yet Another tex-mode for Emacs. (Japanese). * YaTeX-e: (yatexe). Yet Another tex-mode for Emacs. (English). * yahtml: (yahtmlj). Yet Another HTML-mode for Emacs. (Japanese). * yahtml-e: (yahtmle). Yet Another HTML-mode for Emacs. (English). (4)Emacsの設定→~/.emacs に追記 (setq auto-mode-alist (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist)) (autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t) (setq tex-command "platex")
…これで動くはずだが、動かないみたい?
参考文献・サイト:
html5文書をEmacsで開くとxhtmlモードではなくhtmlモードになる。これだと閉じタグなどが自動補完されない。XML編集モード(nxmlモード)にすればそのような問題が解消される上、タグの整合性のチェックなどもやってくれるらしい。ただ導入にはまずhtml5-elをインストールする必要あり。手順を見るとGitHubから落としてきてmakeすればいいと軽く書かれているが、GitHubから落としてきて...の部分がまだよく分からないのでとりあえず保留。
C-\
(Ctrl + \
)で日本語入力などのON/OFFが切り替えられる…が、ローカル環境ではなぜかロシア語モードとなってキー配列が変わるため、同じキー操作ではC-\
を入力したことにならず戻せない(メニューバーの[Options][Mule][Toggle Input Method (C-\)]で変更可能)。
バージョンにより手順は異なる。
Emacsバージョン | 手順 |
---|---|
23 | sourceforgeからダウンロードしてきてコンパイル。 |
24 | MELPAのphp-modeをインストール(→パッケージ管理)12。2016/10/03現在、MELPAのphp-modeはobsoleteの扱いとなっていて、対応バージョンはEmacs 24。Emacs 25以降ではうまく動作しない? →対応するようになった?37 38 |
25〜 | marmaladeのphp-modeをインストール34→やっぱり現在はMELPA由来の方がいい?37。 |
【(改)Emacs 25〜の場合】37 39 確認環境:macOS Mojave (10.14.2) + GNU Emacs 26.1 (build 1, x86_64-apple-darwin14.5.0, NS appkit-1348.17 Version 10.10.5 (Build 14F2511)) of 2018-05-31 mymac:~ user$ cd /Applications/Emacs.app/Contents/Resources/site-lisp wgetコマンドが使えないときはブラウザなどで以下の場所にダウンロードしてもよい mymac:~ site-lisp wget https://raw.githubusercontent.com/emacs-php/php-mode/master/php-mode.el mymac:~ site-lisp wget https://raw.githubusercontent.com/emacs-php/php-mode/master/php-project.el ~/.emacs などに以下の記述を追記。 (require 'php-mode) 【Emacs 25の場合】 ~/.emacs.d/init.el に以下の記述を追加して marmalade レポジトリが使える状態にしておく $ cat ~/.emacs.d/init.el ... (require 'package) # この指定がないとEmacs起動時エラーがでた[35] (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/")) ... メニューの[Options]-[Manage Emacs Packages]をクリック(または「M-x package-list-packages」を入力 php-modeを探してphp-mode文字列上でクリック→このパッケージのページが別バッファに表示される。 Statusのところに「Delete」と書かれていたら一旦ここをクリックしてDeleteする Statusのところに「Available from melpa -- Install」となっていてもこのInstallをクリックするとEmacs 25では使えないmelpaのものがインストールされてしまう。 Other versionsのところに記載されている「1.5.0 (marmalade)をクリックしインストールする。 【Emacs 24の場合】 確認環境:確認環境はUbuntu 12.04 64bit + GNU Emacs 23.3.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.10) user@mypc:~$ cd ダウンロード user@mypc:~/ダウンロード$ ls php-mode-1.13.1.zip php-mode-1.13.1.zip user@mypc:~/ダウンロード$ unzip php-mode-1.13.1.zip Archive: php-mode-1.13.1.zip 4a68bcc406a7f68676aef4556fd9c4a0629676ab creating: php-mode-1.13.1/ extracting: php-mode-1.13.1/.gitignore ... inflating: php-mode-1.13.1/tests/issue-9.php inflating: php-mode-1.13.1/tests/issue-99.php inflating: php-mode-1.13.1/tests/template.php user@mypc:~/ダウンロード$ sudo cp php-mode-1.13.1/php-mode.el /usr/local/share/emacs/23.3/site-lisp/ user@mypc:~/ダウンロード$ ※Emacsを起動し以下のコマンドをEmacs上で実行 M-x : byte-compile-file Input file: /usr/local/share/emacs/23.3/site-lisp/php-mode.el 【Emacs 23】17 Emacs 23以降ではパッケージ管理機能を使ってインストールすることも可能(→パッケージ管理)。 $ cd ~/download $ wget http://sourceforge.net/projects/php-mode/files/php-mode/1.5.0/php-mode-1.5.0.tar.gz $ tar -zxvf php-mode-1.5.0.tar.gz $ open emacs-23.3/nextstep/Emacs.appemacs上で
$ cp php-mode-1.5.0/php-mode.elc emacs-23.3/nextstep/Emacs.app/Contents/Resources/site-lisp
下記2行を~/.emacs.d/init.el
に追記。
(autoload 'php-mode "php-mode" "Major mode for editing php code." t) (setq auto-mode-alist (append '(("\\.php$" . php-mode)) auto-mode-alist))
C-x dを入力するとディレクトリを聞かれる。ディレクトリパスの後にEnterを入力すると指定したディレクトリ内のファイルリストがディレクトリエディタモード(dired)で表示される。C-x C-f(ファイルやディレクトリを開くコマンド)で、指定したファイルがディレクトリであった場合も同じ。M-x term(ターミナル起動)などをしなくてもファイル操作などができる。Dired上でmkdir、gzipなどもできるらしい[18]
Diredのバッファは読み取り専用で文字挿入などを行うことはできない。入力された文字はDiredのコマンドとして解釈される。コマンドの中には処理対象とするものにフラグを付けたりするものもあれば、フラグが付いているファイルなどに対して何かのアクションを行うものもある。
コマンド | 内容 |
---|---|
C-x d |
Diredモードに入る |
M-x dired |
|
C-x C-f (指定したパスがディレクトリであった場合) |
|
C-x n |
カーソルを下に移動 |
n |
|
<スペース> | |
C-x p |
カーソルを上に移動。BSの場合、移動後の行に表示されたファイルに削除フラグが付いていた場合、削除フラグを外す(GNU Emacs 22.3.1 (i386-apple-darwin9.8.0, Carbon Version 1.6.0)同梱のヘルプではDELキーとなっていたが、実際はその動作をしたキーはBSだった。) |
p |
|
<バックスペース(BS)> | |
j |
指定したファイル・ディレクトリにカーソルを移動 |
M-x dired-goto-file |
|
d |
カーソルのある行に表示されているファイルを、削除対象ファイルとしてフラグを付ける。フラグのついたファイルの行頭には「D」の文字が表示される。 |
M-x dired-flag-file-deletion |
|
u |
カーソルのある行に表示されているファイルから、削除対象ファイルとするフラグを外す |
M-x dired-unmark |
|
x |
フラグのついたファイルを削除する(expunging)。最初にフラグのついた対象ファイルリストが表示され、削除して良いかの確認を求められる。yesと答えれば削除が実行される。noと答えるか、C-gを入力すれば削除フラグはそのままでDiredに戻る。対象がディレクトリであった場合、中身が空であればファイルと同じように削除することができる。中身があった場合は通常削除できないが、dired-recursive-deletes変数の値をnon-nilにすれば中身があるディレクトリでも中身ごと消すことができる。 |
M-x dired-do-flagged-delete |
|
# |
自動保存ファイル(ファイル名の先頭と末尾が#となっているファイル)全てに削除フラグをつける |
~ |
バックアップファイル(ファイル名の末尾が~となっているファイル)全てに削除フラグをつける |
& |
Flag for deletion all files with certain kinds of names which suggest you could easily create those files again. |
. (ピリオド) |
Flag excess numeric backup files for deletion. The oldest and newest few backup files of any one file are exempt; the middle ones are flagged. |
% d 正規表現 <RET> |
ファイル名が指定した正規表現にマッチするファイルに削除フラグを付ける。 |
以下の表現でファイル名変更ができる。正規表現が使えるが、現在カーソルのある行に表示されているファイルしか対象にせず、複数のファイルを一括処理できないようだが、それなら個別していしても手間は変わらない気がする。
% r (対象ファイル名)<RET> (変更後ファイル名)<RET>
例:pdb の後に任意の3文字があり、更にその後に rel_j.html が来るファイルに対して、rel の前に _(アンダースコア)を挿入する。 pdb090rel_j.html → pdb090_rel_j.html など。
% r \(pdb...\)rel_j.html <RET> \1_rel_j.html <RET>
このコマンド実行後、置き換えますか? と聞かれるので、何らかの方法で表示中の全ファイルを対象にしてファイル名変更ができるように思うのだが方法が不明。
C-c C-vで、編集しているファイルをブラウザで解釈して表示。 (X)HTMLモードのみ?
M-x run-scheme
※"Searching for program: no such file or directory, scheme"と表示されて起動できない時は以下の設定変更を行う
参考文献・サイト:How do I get a scheme interpreter working inside Emacs? - Stack Overflow
次の操作で、カーソルの直後にあるひとまとまりの式を切り取ったり、クリップボードにコピーしたりできます。
スクリプトの1行目に以下の記述を行う。これによって、ファイル名を指定して実行するだけで、gaucheで処理される。
#!(gosh をフルパスで記述)
例えば、「#!/usr/local/bin/gosh」のように書く。
なお、goshの場所は以下のコマンドにより確認できる。
who gosh <RET>
M-x モード名
で編集モードを変更できる。
モード名 | 内容 | 備考 |
---|---|---|
html-mode | (x)htmlモード | ファイル中にxhtmlの宣言があればxhtmlモードになるよう。 |
HTMLヘッダー部分のDOCTYPEにXHTMLであることを記述すれば自動的にXHTMLモードで開いてくれるみたい。拡張子は.htmlのままでOK。
ただ、逆にXHTMLの宣言がない文書を強制的にXHTMLモードで開くのは簡単ではないよう。 (スクリプト類で共通メニュー部分と個別コンテンツを結合して表示させている場合、XMLやDoctypeの宣言記述は共通メニュー部分にしか含まれないため、個別コンテンツを編集する際XHTMLモードとならず不便)
メジャーモードの指定は M-x [モード名]
で行えるが、M-x xhtml-mode
という指定はできない。これは、XHTMLモードがHTMLモードの一部で、ファイルを判定して自動的にモードを修正するようになっているため。その辺りの設定は MacOSX+Carbon Emacs 22.1.1 の場合、/Applications/Emacs.app/Contents/Resources/lisp/textmodes/sgml-mode.el
に記述されている。このファイルを修正すれば常時XHTMLモードで起動することも可能かと思われるが、うまくいかない。
暫定対策として、ファイル中にHTMLコメントとして下記記述を入れておく(XML宣言の有無でXHTMLかどうかを判定しているようであるため)。これがあればXHTMLモードで起動できた。
<!-- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -->
参考サイト:
M-x term
でターミナルがemacs内で起動できるが、この文字コードの設定。utf-8にするには以下の通り~/.emacs
に記述(ターミナルだけなら全部も要らない気がするけど)。
(set-language-environment "japanese") (prefer-coding-system 'utf-8-unix) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-buffer-file-coding-system 'utf-8) (set-default-coding-systems 'utf-8) (setq default-buffer-file-coding-systems 'utf-8)
参考文献・サイト:
いつからか、Carbon Emacs(Mac用Emacs)で三点リーダ(…)の表示が中黒点に化けるようになった(GNU Emacs 22.3.1 Carbon Version 1.6.0 of 2010-01-10 on gs674-seijiz.localで確認)。これを解消するには「Mule-UCS」をインストールすればよいらしい[1]。Mule-UCSはEmacs(Meadow)でUnicodeの読み書きを可能にするモジュールのようなものらしい。2 を参考にインストールする。
$ cd ~/download $ wget http://www.meadowy.org/~shirai/elisp/mule-ucs.tar.gz またはウェブブラウザを使ってダウンロード
$ tar -zxvf mule-ucs.tar.gz またはMac OSのFinder上で上記ファイルをダブルクリック
$ mv mule-ucs-20061127-1 /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS またはMac OSのFinder上で上記ディレクトリを移動
$ cd /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS $ /Applications/Emacs.app/Contents/MacOS/Emacs -q --no-site-file -batch -l mucs-comp.el $ cd lisp/jisx0213 $ /Applications/Emacs.app/Contents/MacOS/Emacs -q --no-site-file -batch -l x0213-comp.el
emacs設定ファイルに以下の記述を追記。記述場所は「(set-language-environment "Japanese")
」より前。
(require 'un-define) (require 'jisx0213)
...これでも直らない。コンパイル時にエラーが出ていたので、正常にコンパイルできていないのかもしれない。
$ cd /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS $ /Applications/Emacs.app/Contents/MacOS/Emacs -q --no-site-file -batch -l mucs-comp.el Loading subst-ksc... Loading subst-gb2312... Loading subst-big5... Loading subst-jis... Remove old byte-compiled files----- Compiling 1st stage----- In end of data: mucs.el:590:1:Warning: the following functions are not known to be defined: mucs-setup-conversion, mucs-refresh-conversion Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mucs.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mucs-type.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mucs-error.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mucs-ccl.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mccl-font.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/tbl-mg.elc In transformate-list-structure: trans-util.el:117:20:Warning: `error' called with 2 args to fill 0 format field(s) In update-charset-id-table: trans-util.el:169:11:Warning: variable assignment to constant `charset-id-table' Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/trans-util.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/txt-tbl.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/tae.elc In toplevel form: mule-uni.el:139:13:Warning: assignment to free variable `unicode-vs-mule-ucs-unicode-multichar-assoc' Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mule-uni.elc In ucs-representation-encoding-backend: unicode.el:65:65:Warning: value returned from (logior (lsh (charset-id (char-charset char)) 16) (char-codepoint char)) is unused Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/unicode.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/utf.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/un-data.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/un-tools.elc In unidata-read-until: unidata.el:213:39:Warning: `error' called with 1 args to fill 0 format field(s) In end of data: unidata.el:312:1:Warning: the following functions are not known to be defined: char-to-ucs, ucs-to-char Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/unidata.elc Compiling 2nd stage!!--- Loading unicode... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uascii.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-1.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-2.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-3.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-4.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-5.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-7.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-8.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-9.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-14.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-15.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uipa.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ujisx0208.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ujisx0212.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ugb2312.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-1.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-2.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-3.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-4.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-5.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-6.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-7.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ubig5.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uksc5601.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ujisx0201.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/utis620.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uethiopic.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiscii.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/usisheng.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ulao.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uviscii.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/utibetan.el (source)... ! This CCL interpreter has automatic EOL conversion facility. In end of data: un-define.el:933:1:Warning: the following functions are not known to be defined: find-charset, w32-regist-font-encoder Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/un-define.elc Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/usupple.el (source)... Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/un-supple.elc $ cd lisp/jisx0213 $ /Applications/Emacs.app/Contents/MacOS/Emacs -q --no-site-file -batch -l x0213-comp.el Loading subst-ksc... Loading subst-gb2312... Loading subst-big5... Loading subst-jis... Mule-UCS set up----- Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/mucs-comp.el (source)... Remove old byte-compiled files----- Remove ./lisp/mucs.elc Remove ./lisp/mucs-type.elc Remove ./lisp/mucs-error.elc Remove ./lisp/mucs-ccl.elc Remove ./lisp/mccl-font.elc Remove ./lisp/tbl-mg.elc Remove ./lisp/trans-util.elc Remove ./lisp/txt-tbl.elc Remove ./lisp/tae.elc Remove ./lisp/mule-uni.elc Remove ./lisp/unicode.elc Remove ./lisp/utf.elc Remove ./lisp/un-data.elc Remove ./lisp/un-tools.elc Remove ./lisp/unidata.elc Remove ./lisp/un-define.elc Remove ./lisp/un-supple.elc Compiling 1st stage----- In end of data: mucs.el:590:1:Warning: the following functions are not known to be defined: mucs-setup-conversion, mucs-refresh-conversion Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mucs.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mucs-type.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mucs-error.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mucs-ccl.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mccl-font.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/tbl-mg.elc In transformate-list-structure: trans-util.el:117:20:Warning: `error' called with 2 args to fill 0 format field(s) In update-charset-id-table: trans-util.el:169:11:Warning: variable assignment to constant `charset-id-table' Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/trans-util.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/txt-tbl.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/tae.elc In toplevel form: mule-uni.el:139:13:Warning: assignment to free variable `unicode-vs-mule-ucs-unicode-multichar-assoc' Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/mule-uni.elc In ucs-representation-encoding-backend: unicode.el:65:65:Warning: value returned from (logior (lsh (charset-id (char-charset char)) 16) (char-codepoint char)) is unused Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/unicode.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/utf.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/un-data.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/un-tools.elc In unidata-read-until: unidata.el:213:39:Warning: `error' called with 1 args to fill 0 format field(s) In end of data: unidata.el:312:1:Warning: the following functions are not known to be defined: char-to-ucs, ucs-to-char Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/unidata.elc Compiling 2nd stage!!--- Loading unicode... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uascii.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-1.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-2.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-3.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-4.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-5.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-7.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-8.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-9.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-14.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiso8859-15.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uipa.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ujisx0208.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ujisx0212.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ugb2312.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-1.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-2.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-3.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-4.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-5.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-6.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/u-cns-7.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ubig5.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uksc5601.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ujisx0201.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/utis620.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uethiopic.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uiscii.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/usisheng.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/ulao.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/uviscii.el (source)... Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/utibetan.el (source)... ! This CCL interpreter has automatic EOL conversion facility. In end of data: un-define.el:933:1:Warning: the following functions are not known to be defined: find-charset, w32-regist-font-encoder Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/un-define.elc Loading /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/reldata/usupple.el (source)... Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/un-supple.elc Compiling 1st stage----- Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/jisx0213/x0213-cdef.elc Loading subst-ksc... Loading subst-gb2312... Loading subst-big5... Loading subst-jis... In end of data: jisx0213/x0213-font.el:58:1:Warning: the function `w32-regist-font-encoder' is not known to be defined. Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/jisx0213/x0213-font.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/jisx0213/x0213-csys.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/jisx0213/x0213-util.elc Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/jisx0213/x0213-char.elc In setup-iso-2022-jp-3-mcharset-environment: jisx0213/x0213-mime.el:46:14:Warning: reference to free variable `mime-charset-coding-system-alist' jisx0213/x0213-mime.el:46:14:Warning: assignment to free variable `mime-charset-coding-system-alist' jisx0213/x0213-mime.el:54:23:Warning: reference to free variable `charsets-mime-charset-alist' jisx0213/x0213-mime.el:54:57:Warning: assignment to free variable `charsets-mime-charset-alist' In setup-iso-2022-jp-3-eword-environment: jisx0213/x0213-mime.el:60:13:Warning: reference to free variable `eword-charset-encoding-alist' jisx0213/x0213-mime.el:62:19:Warning: assignment to free variable `eword-charset-encoding-alist' In setup-iso-2022-jp-3-mime-edit-environment: jisx0213/x0213-mime.el:68:13:Warning: reference to free variable `mime-charset-type-list' jisx0213/x0213-mime.el:70:19:Warning: assignment to free variable `mime-charset-type-list' Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/jisx0213/x0213-mime.elc Compiling 2nd stage!!--- Wrote /Applications/Emacs.app/Contents/Resources/site-lisp/Mule-UCS/lisp/jisx0213/x0213-udef.elc
参考文献・サイト
Emacs 24.5 Mac版で、表題の問題が発生した。設定ファイル(Emacs 22の設定をそのまま流用)に以下の記述を追加[20]。
;; 以下が Mac 用のフォント設定 (when (memq window-system '(mac ns)) (global-set-key [s-mouse-1] 'browse-url-at-mouse) (let* ((size 14) (jpfont "Hiragino Maru Gothic ProN") (asciifont "Monaco") (h (* size 10))) (set-face-attribute 'default nil :family asciifont :height h) (set-fontset-font t 'katakana-jisx0201 jpfont) (set-fontset-font t 'japanese-jisx0208 jpfont) (set-fontset-font t 'japanese-jisx0212 jpfont) (set-fontset-font t 'japanese-jisx0213-1 jpfont) (set-fontset-font t 'japanese-jisx0213-2 jpfont) (set-fontset-font t '(#x0080 . #x024F) asciifont)) (setq face-font-rescale-alist '(("^-apple-hiragino.*" . 1.2) (".*-Hiragino Maru Gothic ProN-.*" . 1.2) (".*osaka-bold.*" . 1.2) (".*osaka-medium.*" . 1.2) (".*courier-bold-.*-mac-roman" . 1.0) (".*monaco cy-bold-.*-mac-cyrillic" . 0.9) (".*monaco-bold-.*-mac-roman" . 0.9) ("-cdac$" . 1.3))) ;; C-x 5 2 で新しいフレームを作ったときに同じフォントを使う (setq frame-inherited-parameters '(font tool-bar-lines)))
Emacs再起動時、エラーメッセージがEmacsのコマンド出力に出ていたので、下記2行をコメントアウト。
;;(require 'un-define) ;;(require 'jisx0213)
フォントサイズが多少大きくなったが、ちゃんと日本語フォントになったよう。
Emacsのパッケージ管理機能を使うと、Emacs内で機能の追加削除などを行うことができる[27]。 Emacs 24以降ではこの機能が同梱されている。 Emacs 23では同梱されていないが、別途インストールすることで利用可能となる[28]。 MELPAというgithubで管理されているパッケージレポジトリも存在する[28]。
Emacs 24+Mac 10.6.8で ~/.emacs.d/init.el
に以下の記述を追加してEmacsを再起動する。
(require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (package-initialize)
あとは、(1)メニューの[Options]-[Manage Emacs Packages]をクリック (2)インストールしたいパッケージ名の上にカーソルを移動してクリック (3)表示された別バッファ中の「Install」にカーソルを移動してクリック。以上の手続きでコンパイルなんかも自動的に実行してインストールしてくれる。
MELPAを入れるとphp-modeもインストールできた。
Windows 8.1にて確認。
EmacsでC-x C-f ~/
を実行すればHOMEの場所は分かる[29]。手元の環境で試したところc:/Users/ユーザ名/AppData/Roaming
だった。
新規テキストファイルを作成した時、初期状態で適用される文字コードを指定するには、Emacs初期設定ファイル(HOME/.emacs.d/init.el
)に以下の記述を行う[30]。
【書式】
(set-default-coding-systems '文字コード+改行コード)
【例】UTF-8、Windows環境用改行コード(改行=Linefeed+Carriage Return)に設定
(set-default-coding-systems 'utf-8-dos)
内容 | 操作 |
---|---|
文字コードを指定してファイルを開く | C-x RET x 文字コード RET C-x C-f |
現在開いているファイルを別の文字コードで読み直す | C-x RET c 文字コード RET C-x C-v RET |
文字コードを指定してファイルを保存 | C-x RET f 文字コード RET C-x C-s |
OS種別(改行コード) | JIS | Shift JIS | EUC-JP | UTF-8 |
---|---|---|---|---|
UNIX (LF) | junet-unix | sjis-unix | euc-japan-unix | utf-8-unix |
DOS (LF+CR) | junet-dos | sjis-dos | euc-japan-dos | utf-8-dos |
Mac (CR) | junet-mac | sjis-mac | euc-japan-mac | utf-8-mac |
現システム | junet | sjis | euc-japan | utf-8 |
Carbon Emacs 22ではAlt(Option)+¥でバックスラッシュが入力できていたが、Emacs 24.5.1ではC-¥なんてキーバインドはないよとおこられバックスラッシュが入力できなかった。正規表現検索・置換で¥をバックスラッシュの代わりとは思ってくれないため正規表現が書けなかったが、Emacs設定ファイル(~/.emacs.d/init.el
など)に以下の記述を行うことにより、パターン入力時に¥キーの入力でバックスラッシュが入力されるようになり、正規表現記述もできるようになった[25]。
;; バックスラッシュが入力できない件への対策 (define-key global-map [165] [92]) ;; 165が¥(円マーク) , 92が\(バックスラッシュ)を表す
...そう思ったが、モードによっては依然バックスラッシュが入力できない。htmlモードが該当。基本モード(Fundamental)、PHPモードなどでは常時バックスラッシュ(逆に円マークが入力できない)。
Windows環境でディレクトリリストを表示するモード(diredモード)で文字化けを防ぐには、ファイル名コーディングをShift JISに設定すれば良い。具体的には、Emacs初期設定ファイルに以下の内容を記載する[31]。
(prefer-coding-system 'utf-8-unix) ; 日本語入力のための設定 (setq default-file-name-coding-system 'shift_jis) ;diredで日本語file名出力
C-x l
Page has nnn lines (mmm + ooo)
[33]
M-x list-charset-chars
Charactor set: ascii
Characters in the coded character set ascii.
-----------------------------------------------------------------------
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x C-@ C-a C-b C-c C-d C-e C-f C-g C-h TAB C-j C-k C-l RET C-n C-o
1x C-p C-q C-r C-s C-t C-u C-v C-w C-x C-y C-z ESC C-\ C-] C-^ C-_
2x ! " # $ % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~ DEL
下記コマンドでマニュアル的文書が表示される。
M-x info
またC-x C-x C-h
で各モードに応じたコマンドヘルプが表示される。
マニュアル的文書の場所
/Applications/Emacs.app/Contents/Resources/info/emacs
(トップページ)
Emacsの設定ファイル(~/.emacs.d/init.el
または ~/.emacs.el
)に以下の1行を追記する[7]。
【書式】
(add-to-list 'default-frame-alist '(alpha . 透明度指定))
既定の透明度のみを指定する場合、透明度指定に0から100までの整数を指定する。0は完全透明、100は完全不透明を意味する。但し、透明度下限設定値(既定値は20)よりも小さな値は設定できない。
アクティブウインドウと非アクティブウインドウとの透明度を指定する場合、透明度指定に「(アクティブウインドウの透明度 非アクティブウインドウの透明度)」の形式で指定する。それぞれの透明度指定は上記既定の透明度指定の場合と同じく0から100までの整数で指定する。
utf-8のエンコードでないと表示できない文字を含むテキストファイルを編集しても保存時エラーが出る問題に対処するには、以下の記述をEmacsの初期設定ファイル(~/.emacs.d/init.el
)に追記する[8]。
(set-language-environment 'utf-8) (set-keyboard-coding-system 'utf-8-mac) ; For old Carbon emacs on OS X only (setq locale-coding-system 'utf-8) (set-default-coding-systems 'utf-8) (set-terminal-coding-system 'utf-8) (set-selection-coding-system 'utf-8) (prefer-coding-system 'utf-8)
下書き(scratch)バッファを閉じてしまい、再度開きたい時は Ctrl-x, b, *scratch*, RET36
スクラッチにS式を書き、そのS式のどこかにカーソルがある状態で C-M-x を入力すれば、ミニバッファに評価結果が表示される40
(font-family-list) ↓ ("Al Bayan" "Al Nile" "Al Tarikh" "American Typewriter" "Andale Mono" "Arial" "Arial Black" "Arial Hebrew" "Arial Hebrew Scholar" "Arial Narrow" "Arial Rounded MT Bold" "Arial Unicode MS" ...)