emacsの布教を進めています。
やったぜ pic.twitter.com/z59ITbqeqP
— yue82@る (@yue_roo) 2018年1月11日
しかし、わたしはバイト先の師匠の見様見真似で少しずつemacsを触り始めたので、emacsに興味を持ってくれた人にこれを見ながらやってみて!と言えるものがありません。
すでにすばらしい入門記事はたくさんありますが、自分なりの入門記事を書いてみます。
emacs以外のshellやgitについての説明は割愛します。
環境
インストール
せっかくなのでemacs25をインストールしましょう。
手元にある環境でのインストール方法は以下の通りです。
macや他の環境の人は、emacs25 インストール
などでググってください。
cygwinの場合
setup.exeから2018年1月時点で最新のemacs25.3をインストールできます。
ubuntuの場合
この記事を参考にaptにリポジトリを追加してからsudo apt-get install emacs25
しましょう。
2018年1月現在ではemacs25.3がインストールされるはずです。(参考)
ターミナルからemacsを使う
(自分の使っているshellに合わせて).bashrcや.zshrcに alias emacs='emacs -nw'
を記入しましょう。
cygwinの人はalias emacs='TERM=xterm-256color emacs -nw'
の方が正しい色になるかもです。
起動
ターミナルから$ emacs
で起動しましょう。
Welcomeページが表示され、以下のように大事なことがいくつか書いてあります。
キーバインドの表記
(‘C-’ means use the CTRL key. ‘M-’ means use the Meta (or Alt) key. If you have no Meta key, you may instead type ESC followed by the character.)
この記事においても、C-
はCtrlキーを押しながら、ということを意味します。
例えばC-x
はCtrlキーを押しながら同時にxキーを押すことを指します。
また、M-
はメタキーを押しながら、ということを意味します。
メタキーは Metaキー/Altキー/Escキー 等のことです。Windowsキーボードの人はAltキーを使用しましょう。
終了方法
Exit Emacs C-x C-c
C-x C-c
でemacsを終了します。
最初の設定
以下の手順を順に実行します。
- https://github.com/yue82/2018_emacs をcloneして、その中身を全てホームディレクトリにコピー
$ emacs ~/.emacs.d/package.el
でemacsを起動- 下半分にWarningが出るが無視。
- そのまま
M-x
を押し、つづけてeval-buffer
と入力し、Enter- emacsの一番下(ミニバッファ)の行に
M-x
や入力中の内容が表示される。 - 途中まで打つとtabキーでの補完もできる
- emacsの一番下(ミニバッファ)の行に
- 下の行にDoneと表示されて止まるまで待つ
C-x C-c
でemacsを終了し、もう一度emacs
で起動
ファイルの操作
neotreeパッケージを導入しながらファイル操作の練習です。
ファイルを開く
- ファイルを開く(
C-x C-f
) ~/.emacs.d/package.el
と入力しEnter
neotreeパッケージ追加
- カーソルを14行目の末尾まで移動
- 十字キーでOK
- 改行(
Enter
)して新しい行をつくる - 新しい行に
neotree
と入力 - ファイル保存(
C-x C-s
) M-x eval-buffer
M-x eval-buffer
は現在のバッファー(表示されているファイル)の内容を実行するコマンドです。
今後パッケージを追加したいときは同様にします。
neotree用の設定を追加
~/init_el_template.txt
を開くC-x C-f
~/init_el_template.txt
と入力しEnter
- 1行目で選択開始(
C-space
)- Ctrlキーを押しながらspaceキー
- 9行目の先頭までカーソルを移動
- 1行目から8行目までに色が付く
- コピー(
M-w
) ~/.emacs.d/init.el
を開く- 一番下の行まで移動(
C-x ]
)- Ctrlキーを押しながらxを押し、Ctrlキーを離して
]
を押す
- Ctrlキーを押しながらxを押し、Ctrlキーを離して
- 1行改行
- 貼り付け(
C-y
) - ファイル保存
M-x eval-buffer
neotreeを使ってみる
C-M-t
(Ctrlキーとメタキーとt
を同時押し)- 左側に新しいウィンドウができ、neotreeが起動してファイル一覧などが表示される
- カーソルは自動で左側に移る
custom.el
ファイルを開く- ファイル名の上でEnterすると、そのファイルが開かれて右側に表示される
- カーソルも自動で右側に移る
custom.el
ファイルを閉じる(C-k
-> Enter)
バッファの操作
smartparensパッケージを導入しながらバッファ操作の練習です。
smartparensパッケージ追加
- neotreeのウィンドウ(左側)にカーソルを移す(
C-o
) - package.elを開く
smartparens
をneotree
の下の行に追加M-x eval-buffer
- (もしウィンドウの半分に
*Compile-Log*
と出たら、そのウィンドウに移動(C-o
)し、C-x 0
で閉じる)
smartparens用の設定を追加
init_el_template.txt
を前面に表示C-x b
->init_el_template.txt
と入力してEnter
- 10行目から12行目をコピー
init.el
を下半分に表示する- ウィンドウを上下に分割(
C-x 2
) C-x o
で下半分のウィンドウにカーソルを移すinit.el
を前面に表示
- ウィンドウを上下に分割(
- 一番下の行に移動し、貼り付け
- ファイル保存
M-x eval-buffer
smatrparensを使ってみる
適当に入力すると、"
や(
等の閉じカッコが自動的に入力されるようになります。
最低限覚えるとよさそうなキーまとめ
undo/redo
- undo:
C-/
- redo:
M-/
カーソル移動
- 1単語分左に移動:
M-b
- 1単語分右に移動:
M-f
- 行頭にカーソル移動:
C-a
- 行末にカーソル移動:
C-e
- 一番上の行まで移動:
C-x [
- 一番下の行まで移動:
C-x ]
- 1ページ分上に移動:
C-v
- 1ページ分下に移動:
M-v
- 指定の行番号の行に移動:
M-g g
コピーペースト
- 選択はじめ:
C-space
- 選択部分をコピー:
M-w
- 選択部分を切り取り:
C-w
- カーソルより後ろの1行を切り取り:
C-k
- 貼り付け:
C-y
- 貼付け後に
M-y
で、コピー履歴をさかのぼって貼り付けられる
- 貼付け後に
検索, 置換
- 上方向に検索:
C-r
- 下方向に検索:
C-s
- 置換:
C-c r
- 置換前文字列と置換後文字列を順に入力&Enter
- カーソルが順に進んでいくので、置換を実行する部分では
y
、実行しないならn
、全置換するなら!
- 全置換:
C-c R
ウィンドウ(見えている画面の扱い)
- ウィンドウを上下に分割:
C-x 2
- ウィンドウを左右に分割:
C-x 3
- 今いるウィンドウから他のウィンドウに移動
C-x o
- 今いるウィンドウを消す:
C-x 0
- 分割の表示が消されるだけで、ファイル自体は開かれたまま
バッファ(開かれているファイルの扱い)
- 現在のバッファを閉じる(ファイルを閉じる):
C-x k
- 開かれているバッファの一覧を表示:
C-x C-b
- 開かれているバッファに移動する
- バッファ名(ファイル名)を入力して移動:
C-x b
- 隣のバッファに移動:
C-x right
/C-x left
- バッファ名(ファイル名)を入力して移動:
パッケージ
packages
M-x package-list-packages
- 利用可能なパッケージの一覧が表示される
- 入れたいパッケージ名にカーソルを置いた状態で
i
を押すとI
というマークが付く x
を押すとI
付きのパッケージがすべてインストールされるemacs [パッケージ名] 設定
等でググると.emacs.d/init.el
に書くべき設定がでてくる- 環境を移しても同じパッケージを入れたいなら、
.emacs.d/package.el
に書いておくのがおすすめ
おすすめパッケージ
emacs操作
- helm
- M-xからのコマンドやファイルを開く時の入力が楽に
- smartrep
- 繰り返しキー入力を簡素化できる
プログラミング系
- auto-complete
- 文字列補完
- flycheck
- 文法チェック
- web-mode, pyton-mode, markdown-modeなど、各言語のmode
- 標準で入っているものもたくさんある
- yasnippet
- スニペット管理・挿入
- magit
- git操作
ファイル編集補助
- iedit
- カーソル位置の変数名等をファイル内や関数内から探し、同時編集できる
- multiple-cursors -->
- カーソルを複製し、すべてのカーソルに同じ操作をさせることができる
- cua-mode
- 矩形選択、矩形編集
画面表示
- hl-line
- カーソル位置の行をハイライト
- hlinum
- カーソル位置の行番号をハイライト
- hiwin
- カーソルが存在するウィンドウと他のウィンドウを別の色にする
- indent-guide
- インデントの深さを表示
- volatile-highlights
- 貼り付け、undo、redoなどの操作が行われた場所をハイライト
- whitespace
- 行末の無駄なスペースや全角スペース、タブなどを見やすくする
こちらの記事もよかったら参考にしてください。
感想
入門記事書くの難しいわ