emacsが開発されないで消え去る説もあるが、昔からemacsを使ってるので今更vimのコマンド覚える気にならずに使ってる。
パッケージ管理はel-getで便利にできる。新しい言語などmodeを追加したい場合に、ダウンロードする時など使用する。
diredバッファでtmuxのように複数画面出したり、ファイラーのように使えるの多用する。
インストール(ubuntu系)
sudo apt-get install emacs
インストール(centos系)
sudo yum install emacs
基礎知識
~のついたファイルはバックアップファイル
emacsで編集したファイルのバックアップがフォルダ内に出来上がります。
いらなくなったら消しましょう。
日本語対応
日本語対応しとかないと日本語をコピペしたときに、コピペできなくてハニャ!?ってなる。
~/.emacs.d/init.elに下記を保存
M-X eval-bufferで反映
(set-language-environment 'Japanese)
(prefer-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(setq file-name-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
export LANG=ja_JP.UTF-8
emacsでバックアップファイルを作らない
;;; *.~ とかのバックアップファイルを作らない
(setq make-backup-files nil)
;;; .#* とかのバックアップファイルを作らない
(setq auto-save-default nil)
emacsをno windowで起動する
下記を追加
alias sudo='sudo '
alias emacs='emacs -nw'
ショートカット
ファイル名編集
M-x wdired-change-to-wdired-mode
C-cC-c か C-xC-s
ctrl + x s:ファイル保存
ctrl + x c:ファイル終了
ctrl + z:ファイル一時停止
(emacsをバックグランドに退避させコマンドラインに戻る。
jobsコマンドやfgコマンドを使用してemacsでの処理に戻る)
ctrl + 2 : 2画面表示
ctrl + 1 : 1画面表示
ctrl + x + o :カーソルを別の画面に移動
ctrl + f:新しいファイルを開く。新しいファイルを作成する
ctrl + @,ctrl + w:切り取り
ctrl + @,meta(escキー) + w:コピー
ctrl + y:貼り付け
ctrl + x,u:1個前の処理に戻る
M-系 (単語や文単位の移動)
キーバインド コマンド 機能
M-f forward-word 次の単語へ移動
M-b backward-word 前の単語に移動
M-d kill-word 単語を削除
C-delete bacward-kill-word 一つ前の単語を削除
M-@ mark-word 前の単語をマーク
M-a backward-sentence 前の文に移動
M-e forward-sentence 次の文に移動
M-k kill-sentence 文を削除
M-z zap-to-char 指定した文字まで削除 参考
M-SPC just-one-space 連続したスペースを一つにまとめる
文字列一括置換
M-x query-replace # または M-x query-replace-regexp
Query replace: sample
Query replace sample with: example
! # ★コレでした
スペース:1つ置換
n:スキップ
diredバッファ
ファイルを選択して移動したり便利なことが色々できる
詳細はこっち
http://qiita.com/l3msh0/items/8665122e01f6f5ef502f
el-getを入れる
~/.emacs.d/init.elに下記を記述。一回閉じて再度開く。
;; So the idea is that you copy/paste this code into your *scratch* buffer,
;; hit C-j, and you have a working el-get.
(url-retrieve
"https://raw.github.com/dimitri/el-get/master/el-get-install.el"
(lambda (s)
(goto-char (point-max))
(eval-print-last-sexp)))
~/.emacs.d/init.el(または.emacs)に書き足してM-x load-file init.el
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(unless (require 'el-get nil 'noerror)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.github.com/dimitri/el-get/master/el-get-install.el")
(goto-char (point-max))
(eval-print-last-sexp)))
(add-to-list 'el-get-recipe-path "~/.emacs.d/el-get-user/recipes")
(el-get 'sync)
さっき貼ったところを消して上を貼り付けM-x load-file init.elしたらel-getの準備OK
<M-x> el-get-install lua-mode
<M-x> el-get-install php-mode
基本的には.luaファイルは勝手にmodeになるんですがたまにならない時がある。
ならなかったらM-x lua-mode でLua-modeに切り替わります。
M-x lua-mode が打てない時はload-file init.dしてみる。
php modeを入れる(直接入れる場合)
wget https://github.com/ejmr/php-mode/archive/v1.13.1.zip
unzip v1.13.1.zip
sudo cp php-mode-1.13.1/php-mode.el /usr/loca
l/share/emacs/24.3/site-lisp/
php-mode.elをビルド
M-x byte-compile-fileでphp-mode.elを指定
~/.emacs/init.dに追記
;; php-mode
(load "php-mode")
M-x eval-buffer
設定例
;; 環境を日本語、UTF-8にする
(set-locale-environment nil)
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(prefer-coding-system 'utf-8)
;; スタートアップメッセージを表示させない
(setq inhibit-startup-message t)
;; バックアップファイルを作成させない
(setq make-backup-files nil)
;; 終了時にオートセーブファイルを削除する
(setq delete-auto-save-files t)
;; タブにスペースを使用する
(setq-default tab-width 4 indent-tabs-mode nil)
;; 改行コードを表示する
(setq eol-mnemonic-dos "(CRLF)")
(setq eol-mnemonic-mac "(CR)")
(setq eol-mnemonic-unix "(LF)")
;; ウィンドウを透明にする
;; アクティブウィンドウ/非アクティブウィンドウ(alphaの値で透明度を指定)
(add-to-list 'default-frame-alist '(alpha . (0.85 0.85)))
;; 列数を表示する
(column-number-mode t)
;; 行数を表示する
(global-linum-mode t)
;; カーソル行をハイライトする
(global-hl-line-mode t)
;; 対応する括弧を光らせる
(show-paren-mode 1)
;; ウィンドウ内に収まらないときだけ、カッコ内も光らせる
(setq show-paren-style 'mixed)
(set-face-background 'show-paren-match-face "grey")
(set-face-foreground 'show-paren-match-face "black")
;; スペース、タブなどを可視化する
(global-whitespace-mode 1)
;; スクロールは1行ごとに
(setq scroll-conservatively 1)
;; シフト+矢印で範囲選択
(setq pc-select-selection-keys-only t)
(pc-selection-mode 1)
;; C-kで行全体を削除する
(setq kill-whole-line t)
参考
http://qiita.com/ongaeshi/items/d78ab6e3e4219b7cd0ab
http://d.hatena.ne.jp/practice4prepressman/20130911/p3
http://qiita.com/yn01/items/b8d3dcb5be9078a6e27f
http://kurogomapurin.hatenablog.com/entry/2014/08/18/234419