「Emacs」カテゴリーアーカイブ

よく使うEmacsコマンド

ファイルの保存

C-x C-s    上書き保存
C-x C-w    別名で保存

全般

C-/, C-_, C-x u    取り消し

カーソル移動

C-v    scroll-up    1画面前進
M-v    scroll-down    1画面後退
M-<   beginning-of-buffer    ファイルの先頭へ
M->    end-of-buffer    バッファの末尾へ
M-g g    go-line    バッファのn行目へ
(なし)    go-char    バッファのn文字目へ
M-n    digit-argument    次のコマンドをn回繰り返し
C-u n    universal-argument    次のコマンドをn回繰り返し(nを省略すると4回)

リージョン

C-@, C-Space   set-mark-command    リージョンの先頭または末尾をマーク
C-x C-x    exchange-point-and-mark    カーソルとマークの位置を交換(リージョンを確認するのに便利)
C-x h  バッファ全体をマーク

コピー・ペースト

C-w    regionをkill-ringへ切り取り
M-w    regionをkill-ringへコピー
C-y    kill-ringの内容を貼付け
M-y    前のkill-ringの内容を貼付け(C-yの後のみ可)

検索・置き換え

インクリメンタル検索

C-s    順方向インクリメンタル検索
C-r    逆方向インクリメンタル検索
Enter    インクリメンタル検索終了

単純検索

C-s Enter 検索文字列 Enter    順方向単純検索を開始する
C-s    順方向へ検索を繰り返す
C-r Enter 検索文字列 Enter    逆方向単純検索を開始する
C-r    逆方向へ検索を繰り返す

問い合わせ置換

M-%    問い合わせ置換
Space, y    置換して次へ移動
Del, n    置換せずに次へ移動
,    置換して移動しない
!    残りすべてを確認せずに置換

正規表現検索・置換

C-M-s Enter    順方向での正規表現検索
C-M-r Enter    逆方向での正規表現検索
C-M-s    順方向での正規表現インクリメンタル検索
C-M-r    逆方向での正規表現インクリメンタル検索
C-M-%    正規表現問い合わせ置換

制御文字の入力

改行などの制御文字の入力は、C-q C-<コードがアルファベットの何文字目か>。
(C-qはquoted-insert)
例:
C-q C-j    改行(0A) 10番目なのでj
C-q C-m    復帰(0D) 13番目なのでm
C-q C-i    水平タブ(09) 9番目なのでi

インデント

C-M-\  リージョンをインデント

大文字小文字変換

M-c    単語の先頭を大文字にする
M-u    単語を大文字にする
M-l    単語を小文字にする
C-x-u    リージョンを大文字にする
C-x-l    リージョンを小文字にする

マクロ

F3またはC-x (    マクロ定義の開始
F4またはC-x )    マクロ定義の終了
F4またはC-x e    マクロの実行
例:
M-1 0 0 F4    マクロを100回実行(バッファの末尾で自動的に停止する)

文字コード

文字コード指定して再読込

blog.woremacx.com: Emacsで文字コード指定して再読込

文字コードを指定
C-x Enter c
(M-x universal-coding-system-argument)
読み直し
C-x C-v
(M-x find-alternate-file)

文字コード変換

C-x Enter f
(M-x set-buffer-file-coding-system Enter)
このコマンドに続いて、文字コードを指定

カーソル位置の文字コードを表示

C-x = (M-x what-cursor-position)

カーソル位置の文字コードを表示(詳細)

C-u C-x = (M-x describe-char)

Emacsでカーソル位置の文字コードを表示する

記述した.emacs.elの設定確認

全体の評価
M-x eval-current-buffer
選択部分評価
M-x eval-region

エラーがある部分がエコーエリアに表示されるので、その部分を修正する。
Emacs クイックリファレンス

文字のサイズ

C-x C-+ または C-x C-=    文字を大きくする
C-x C--    文字を小さくする
C-x C-0    文字の大きさをデフォルトに戻す

https://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html

EmacsでRuby on Rails

/home/dima :: Rails On Emacs (in english)
RubyForge: emacs-rails: Project Info
Mac OS X の場合
Carbon Emacsをインストールすれば、必要なファイルは含まれているので、それらを有効にするよう.emacs.elに記述すればよい。下記の.emacs.el記述例を参照。
Windowsの場合

  • EmacsW32+Emacsをインストール。
    ※EmacsW32+Emacsは環境変数でSHELL=/bin/bashを設定しているとうまく動作しないので、cygwinのために設定している場合は削除する。
  • 環境変数HOMEを設定
  • 必要なelファイルをsite_lispにコピー
    ruby\src\misc\*.el
    inf_ruby.el
    snippet.el
    find-recursive.el
  • %HOME%\.emacs.dに、RubyForge: emacs-rails: Project Infoからダウンロードしたemacs-railsをコピー。
  • %HOME%\.emacs.elを作成。
    各elのコメントと/home/dima :: Rails On Emacs (in english)を参考にして、記述する。
  • .emacs.el記述例

    (autoload 'ruby-mode "ruby-mode"
      "Mode for editing ruby source files" t)
    (setq auto-mode-alist
          (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
    (setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
    				     interpreter-mode-alist))
    (autoload 'run-ruby "inf-ruby"
      "Run an inferior Ruby process")
    (autoload 'inf-ruby-keys "inf-ruby"
      "Set local key defs for inf-ruby in ruby-mode")
    (add-hook 'ruby-mode-hook
          '(lambda ()
             (inf-ruby-keys)
    ))
    (require 'find-recursive) 
    (setq load-path (cons "~/.emacs.d/emacs-rails" load-path))
    (require 'rails)
    

    ruby-modeとruby-electricのセットアップ方法は、下記にも説明がある。
    Emacs and Ruby | HyperionReactor
    その他
    Using Emacs for Rails development - The perfect setup « Devcraft
    (関連)
    pylori*style wiki - Emacs用rails.el