|
|
||
2011年3月10日に Emacs 23.3 が リリースされました。誰か書いているかもしれないけど 23.2 からの主な変更点をメモしておきます。
勘違いとかあるかもしれないけど、とりあえず。
全ての変更点を確認したい場合は C-h n もしくは M-x help n で確認できます。
何人か知らない人にであったので自分の覚え書きも含めて書いておきます。
Emacs で改行やタブを検索や置換する場合は「C-q」もしくは「M-x quoted-insert」を利用します。C-qをprefixとして出る主な文字を以下に表にしてみます。
以下の表の見方ですが、「C-i」と書いてある物は「C-q C-i」で出る文字。「Tab」等はTabキーの事です。
| キー | 出る文字 | 補足 |
| C-g | ベル(¥a)^G | |
| C-h | 後退(¥b)^H | |
| C-i | 水平タブ(¥t) | |
| Tab | 水平タブ(¥t) | |
| C-j | 改行(LF,¥n) | |
| 改行 | 改行(LF,¥n) | |
| C-k | 垂直タブ(¥v)^K | |
| C-l | 書式送り(¥f) | 改ページとして利用されます |
| C-m | 復帰(CR,¥r)^M | |
| C-ESC | エスケープ(¥e)^[ | |
| C-[ | エスケープ(¥e)^[ | |
| C-? | 抹消^? |
全部を知りたければ http://ja.wikipedia.org/wiki/ASCII を見れば表があります。
M-x calendar でカレンダーが起動するのですが、デフォルトだと祝日とか表示できてないので設定してみます。
基本的には「Emacs のカレンダーに日本の祝日を設定する - (rubikitch loves (Emacs Ruby CUI Books))」に書いてあるままで良いです。
祝日設定ファイルは以下にあります。
Emacs 23 では以下のように設定すればよいです。以下のは obsolute な部分を置換してあります。
(require 'calendar) ;; キーの設定 (define-key calendar-mode-map "f" 'calendar-forward-day) (define-key calendar-mode-map "n" 'calendar-forward-day) (define-key calendar-mode-map "b" 'calendar-backward-day) ;; 祝日をマークする (setq calendar-mark-holidays-flag t) (require 'japanese-holidays) (setq calendar-holidays (append japanese-holidays holiday-local-holidays holiday-other-holidays)) ;; 今日をマークする (add-hook 'today-visible-calendar-hook 'calendar-mark-today) ;; 日曜日をマークにする (setq calendar-weekend-marker 'diary) (add-hook 'today-visible-calendar-hook 'calendar-mark-weekend) (add-hook 'today-invisible-calendar-hook 'calendar-mark-weekend)
Emacs 使いの多くは Ctr キーを小指で押すようです。SKK などを利用しているユーザの場合は Shift キーも小指で押しているようです。
このような運指のため、 Emacs 使いの多くは小指を痛めがちです。
小指を痛めない工夫は必要です。
運指その物を根源的に変えてしまうのが場合によっては良かもしれません。とりあえずソフトウェア的にキー配列を変えることで、運指を変えてみます。
小指を痛めないように親指で Ctr や Shift を押せるようにしてしまいます。
必要に応じて設定します。
「マウス Ctr」はマウスのドライバで設定することになります。
「親指 Ctr」、「SandS」は以下のソフトを利用すれば設定可能です。
Windows の場合
Mac の場合
Linux の場合
KeyRemap4MacBook をとりあえずインストールして、再起動して、システム環境設定にて設定します。
「親指 Ctr」は以下を設定します。
「SandS」は以下を設定します。
好みによって多少変えても良いでしょう。
あとは慣れると小指をほとんど酷使しなくなります。
人のキーボードが使えなくなったり、無闇に変なスペースを入れてしまったりする副作用がありますので、気をつける必要があります。
GUI な Emacs で merge を実施するための設定をします。 emacscliet を利用します。
.emacs.d/init.el(Emacs21以前の人は .emacs.el) に以下のように設定します。
(require 'server) (unless (server-running-p) (server-start)) (setq server-visit-hook '(lambda () (raise-frame (selected-frame)) (x-focus-frame (selected-frame))))
elscreen を利用している人は elscreen-server(ftp://ftp.morishima.net/pub/morishima.net/naoto/ElScreen/elscreen-server-0.2.0.tar.gz)も設定しておくと便利です。
(require 'elscreen-server)
.hgrc 等に emacsclient を呼ぶための設定をします。
[merge-tools] emacsclient.args = --eval "(ediff-merge-with-ancestor \"$local\" \"$other\" \"$base\" nil \"$output\")"
これで hg merge したり、hg up で merge が発生したときに Emacs を emacscliet 経由で呼びます。
Terminal 内の Emacs を利用する場合は .hgrc を以下のように設定すると良いです。
[merge-tools] emacs.args = --eval "(ediff-merge-with-ancestor \"$local\" \"$other\" \"$base\" nil \"$output\")"
ediff-merge-with-ancestor が呼ばれます。
n キーで下の差分、p キーで上の差分、a で左側を反映、b で右側を反映、q で現在の変更を保存して終了、? で help の表示非表示切り替え、になります。
merge するファイルが多数あっても q で終了すると次の merge に移行します。
操作は ediff と同じになります。
ediff のコントロールウィンドウがうざい人は以下を .emacs.d/init.el に設定しておくと良いでしょう。
;; ediff の操作用小ウィンドウを新規 frame にしない (setq ediff-window-setup-function 'ediff-setup-windows-plain)