emacs

map


emacs のまとめ

Emacs関係のことはhttp://pub.cozmixng.org/~hiki/cis/?Emacs にまとめています - す 2004/07/07 10:32:43 JST

編集ファイルごとにemacsを起動しないでください

一つ emacs を動かしておけば、

  • C-x C-f でファイルを開けば、自然に複数のファイルが編集できる。
  • C-x b で編集中のファイル(バッファ)を移動できる
  • C-x C-bで編集中のファイル(バッファ)一覧を見られる。

.emacs.d は設定ファイル等を置く,ディレクトリ

emacs-23 から .emacs.d/ が使えるようになりました。

情報コースの設定は

  • ~/.emacs.d/init.el が emacs の立ち上がり時に実行するファイル(emacs-lisp プログラム)
  • この中にプログラムを書き込むことで,emacsの設定を変えられる
  • 実行中にエラーが起こったら
 emacs --debug-init

font-lock で色を付ける

色をつける

モードがある.

  • 共通の一般のエディタコマンドのほかに
  • C-mode は C プログラムを書くために
  • text-mode とか,latex-mode とかがある
  • メジャーとマイナーモードがある

Info を使おう

  • C-h ? (C-c h かもしれない)とすると使えるモノの一覧がでる (M-x help-for-help でもいい)
    • C-h t emacs 入門
    • C-h a apropos
    • C-h b key binding
    • C-h m モード特有のコマンドの説明
    • C-h i いろいろなマニュアルが読める.emacs を読もう

Emacs 入門ガイドで自習しよう

 C-c h t 

日本語の自習画面が出てきます。

日本語の(インクリメンタル)サーチ Migemo

emacsでローマ字のまま日本語を検索できます.

.emacsに

 
 (load-library "migemo")

と書けば,C-s, C-rで検索できるようになります.

参考: http://www.namazu.org/~satoru/migemo/

emacs の中でディレクトリを見よう

dired モード

  • ^-X d
  • ディレクトリの内容を見ながらファイルを操作できる
  • ただし,emacs の中で ls -l の出力が日本語であってはだめ (locale の問題)

LOCALEの設定

.emacs で

       (setenv "LC_TIME" "C")

日本語環境設定

.emacs に下記を追加

(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(set-locale-environment nil)

編集中のファイルの日本語コードを変更する方法

 C-x ENTER f

で 編集中のファイルの日本語コード(Coding system for visited file) を聞かれる。utf-8 に。

ファイルの先頭にコメントの形式で

 // -*- coding: utf-8 -*-

編集中のバッファの日本語コードを変更する方法

 C-x ENTER r

utf-8 で保存したはずなのに,emacs が shiftJIS だと勘違いした場合に使う。

C-h と DEL の交換

  • .emacs で
        (load-library "term/bobcat")
        M-x terminal-init-bobcat

make や コンパイルを emacs の中でやろう.

エラーからエラーを起こした ファイルのその行へ一発で行けるのがうれしいのです.

  • Makefileやソースがある directory で、
        M-x compile 

と打ち込むと Compile command: を聞かれます。デフォルトが make -k です。

  • コンパイラがエラーを出したら
        C-x `

タグ

複数のファイルにプログラムを作りはじめたら,タグファイルを作ろう.これは関数や変数がどのファイルにあるかを記録してあるファイル.

       % etags *.h *.c

でつくれます。このコマンドの実行も emacs の中でやりたい人は,

  M-! etags *.h *.c

M-! はシェルコマンドの実行です.

tagファイル (TAGSという名前のファイル) ができていると emacs で,

       M-. 

関数が定義してあるファイルのその場所へ一気に行けます

バッファとファイル

emacs で 「バッファ」とは、編集中のファイル (をemacs内のメモリに取り込まれたもの) を 言います。保存するまでは、emacs 内のファイルと本物のファイルは内容がずれています。

ファイルの更新タイムスタンプ

ファイルの先頭にコメントの形で

 // TimeStamp: <>

文字列の検索

  • C-s のあと探したい文字を入れていく。とにかく、やってみよう。

置換することを覚えよう

  • M-% は便利な置換機能
  • M-x replace-string は、現在一からファイル末尾までの文字列の全置換

正規表現を覚えよう

  • ^ は行の先頭
  • $は行の末尾
  • . は任意の一文字
  • 次の表現は、行の始めに int が書かれているすべての行(がマッチする)
         ^int.*$
  • 正規表現にマッチした文字列や行にたいして、いろいろ操作できる。たとえば、 検索や置換。

正規表現で検索

  • M-C-s (Esc, C-s)

バッファ

  • C-x 2 分割
  • C-x o 他の バッファヘ
  • C-x 1 バッファを1つに
  • C-x 0 現在いるバッファを消す

複数のバッファに対する操作

  • C-x C-b で編集中のファイル (バッファ) 一覧が見える.
    • 一覧の中から編集するファイルを選べる。 カーソルを移動して、1、f
    • 一覧の中から必要のないバッファをけす。 カーソルを移動して、d
  • 変更されたすべてのファイル(実はバッファ)を保存するには C-x s

前のファイル(バッファ)に戻るには,

  • C-x b ファイル名 ;; switch to buffer

バッファを別のファイルに保存

  • C-x C-w
  • 変更されたすべてのファイル(実はバッファ)を保存するには C-x s

emacs 内で シェルを使う

 M-x eshell-mode

でemacsの中でシェルが動く。

シェルコマンドとその出力が編集できます。

emacs ライブラリの位置を確かめる

 M-x locate-library

キーの機能の調べ方

キーボードのキーには emacs の機能が割り当てられています. キーバインドってのは,その対応のことです.

 M-x describe-key
 M-x describe-function

ヘルプ機能

 Esc-?

info 

Emacsの中から読める,いろいろなマニュアル類です.

 Esc-? i
 M-x info

チュートリアル(tutorial)

Emacs で読みながら実践する入門書です

 ^U t M-x info
 M-x help-in-tutorial

apropos

 Esc-? a 知りたいキーワード

デバッガ

 M-x gdb

shell 関連

 M-x shell 
 M-x eshell  ;; emacs-21
 M-! 

タグ関連

etags *.{h,c}をシェルレベルでやっておく

find-tag

 M-. 

最初のfind-tagで, タグファイルのパスを聞かれますので, 正しいパスを設定 してください.

プリント

.emacs.d/init.el に以下を追加する

 (setq ps-lpr-command "/usr/bin/lpr")
 (seqt ps-multibyte-buffer 'non-latin-printer)

M-x ps-print-buffer, M-x ps-print-region とかが使える