Archive

Posts Tagged ‘emacs’

7月
26

リモートで作業しようとしたとき,
手元のubuntuからfedora8につないでemacs立ち上げると失敗.
フォントがないと怒られる.なぜに???
フォントまわりでトラブル起こすのが一番面倒というか
一番理解出来てない部分なので極力カスタムせずにいたのに...
で,どうもubuntu側で見やすいフォントが設定されてるんだけど
それがfedora側にないフォントでこけてる模様.
とりあえずそこのフォント指定を外してみる.
で,.Xdefaults と .Xresoucesを軽くお勉強.
両者の違いはこちらを参照.ちょっと抜粋.

リモートでアプリケーションを立ち上げるときに .Xdefaults はアプリケーションを実行するホストのものが参照されます。一方、.Xresources はxrdb を実行するホストのものが参照されるます。よって、同じ画面に表示させるときは、違うホストで実行しても同じ設定になります。また、同じホストで実行しても違う画面に表示させるときに違う設定が使えます。

ってことなので,無理なく各接続先の設定を使うには,.Xdefaultsを設定ってことかな.
で,どちらを設定したにしろ,

xrdb -merge ~/.Xdefaults or ~/.Xresources

ってする.詳細は...もうおなかいっぱい.とりあえずOKなようなので今回はここまで.

, , ,

5月
11

普段、Winの環境に慣れてるとこういうのがサクッとサポートされてないと戸惑う。
おそらく全てをemacs上で賄ってしまえる人は問題ないのだろうけど。。。

本題。

emacsでファイルを開いた状態で、外部エディタ等でファイルを編集した場合、
一度 kill-buffer してから 開き直したり, revert-buffer を利用する必要がある.
これでは面倒だし,それまでの変更を取り消すことができなくなってしまって困る。
ので、以下のような設定をしておくと便利だそうな。

(defun reopen-file ()
  (interactive)
  (let ((file-name (buffer-file-name))
        (old-supersession-threat
         (symbol-function 'ask-user-about-supersession-threat))
        (point (point)))
    (when file-name
      (fset 'ask-user-about-supersession-threat (lambda (fn)))
      (unwind-protect
          (progn
            (erase-buffer)
            (insert-file file-name)
            (set-visited-file-modtime)
            (goto-char point))
        (fset 'ask-user-about-supersession-threat
              old-supersession-threat)))))
 
(define-key ctl-x-map "C-r"  'reopen-file)

これで、C-x C-r でファイルを開き直すことができ、アンドゥで元に戻すこともできる。
何をしてるかというと、
バッファの内容を消して (erase-buffer) ファイルを挿入 (insert-file) しているんだそうな。

, ,

2月
01

バッファの中の移動

C-p 1 行上に移動
C-n 1 行下に移動
C-f 1 文字前に移動
C-b 1 文字後に移動
C-a 行の先頭に移動
C-e 行の末尾に移動
C-v 1 画面下に移動
M-v 1 画面上に移動
M-f 1 単語前に移動
M-b 1 単語後に移動
M-< バッファの先頭に移動
M→ バッファの末尾に移動
C-g 現在の操作を終了

基本的なコマンド

C-x C-s save-buffer 現在のバッファをディスクに保存する。
C-x u undo 最後の操作を取り消す。
C-c C-f find-file ディスクからファイルを開く。
C-s isearch-forward 文字列を前方検索する。
C-r isearch-backward 文字列を後方検索する。
M-% replace-string 文字列の検索と置換を行う。
C-M-% replace-regexp 正規表現を使って、検索と置換を行う。
C-h t help-with-tutorial インタラクティブなチュートリアルを使う。
C-h f describe-function 関数のヘルプを表示する。
C-h v describe-variable 変数のヘルプを表示する。
C-h x describe-key キー入力が何をするものであるか表示する。
C-h a apropos 文字列/正規表現のヘルプを検索する。
C-h F view-emacs-FAQ Emacs の FAQ を表示する。
C-h i info Emacs の文書を読む。
C-x r m bookmark-set ブックマークを設定する。検索に役立つ。
C-x r b bookmark-jump ブックマークに移動する。

2月
01

===== 準備 (~/.emacs) =====

・基本

~/.emacs に以下のコードを追加します。

; 日本語をデフォルトにする。
(set-language-environment “Japanese”)
; anthy.el をロードできるようにする (必要に応じて)。
(push “/usr/local/share/emacs/site-lisp/anthy/” load-path)
; anthy.el をロードする。
(load-library “anthy”)
; japanese-anthy をデフォルトの input-method にする。(*)
(setq default-input-method “japanese-anthy”)

実際には、*の行だけでオッケーっぽい←ただの勘違い。。。

・カスタマイズ

; ひらがなの map を変更する (個別指定)。
(anthy-change-hiragana-map “,” “、”)
; ひらがなの map を変更する (半角の “.” “,” を全角の “.” “,” に割り当てる)。
(anthy-load-hiragana-map anthy-alt-char-map)
;; かな漢字変換入力モードでSpaceを押したとき、半角空白が挿入されるようにする。
(setq anthy-wide-space ” “)

キー割り当て

一般

起動 C-
変換開始 C-n,C-p,Space
変換確定 C-j,C-m,Enter
変換候補のスクロール C-n,C-p,Space
変換キャンセル C-g,C-h,Backspace

モード変更

操作前のモード キー操作 操作後のモード
かな漢字変換 q カタカナ固定
かな漢字変換 l 半角英数固定
かな漢字変換 L 全角英数固定
カタカナ固定 q かな漢字変換
カタカナ固定 l 半角英数固定
カタカナ固定 L 全角英数固定
半角英数固定 C-j かな漢字変換
全角英数固定 C-j かな漢字変換

'/' を押すと、かな漢字変換入力モードやカタカナ固定入力モードで入力中でも、再度 '/' を押すまで半角英数字を入力できます。/ を 2 回押すことで / 自体も入力できます。

文節移動

C-f,Right ひとつ先の文節に進みます。
C-b,Left ひとつ前の文節に戻ります。
C-a 一番最初の文節に移動します。
C-e 一番最後の文節に移動します。
C-o,Shift-Right カーソル位置の文節が 1 文字長くなります。
C-i,Shift-Left カーソル位置の文節が 1 文字短くなります。

, ,

12月
16

・ファイルを選択する方法

M-x byte-compile-file

・指定したディレクトリ下のファイルをバイトコンパイル

M-x byte-recompile-directory

・dired からバイトコンパイルする方法(emacsからC-x C-fしてディレクトリを開くやつ)

mでファイルにマークをつけて,Bとするとマークをつけたファイルをすべてバイトコンパイル

ただ、バイトコンパイルしたところで体感的にはそう大差ない気がする。。。

,

12月
14

emacsで他のwindowに移動するのは、通常C-x o でツーストローク必要。
最近良く使うのが全画面表示で中央に分割、さらに左だけ上下二分割の3ペイン。
なので、ツーストロークでの移動がうざったい。ので、設定変更。

.emacsに以下を追記。

(global-seto-key “C-z” ‘other-window)

emacsは未だに初心者の域を脱してないので全然つかいこなせてないけど、
ここ3ヶ月ばかり、意識して使うようにしだしてからすこしずつその魅力がわかってきた気がする。
が、その奥深さに愕然ともしてたり。

,