exits

勉強記録

emacs私的チュートリアル

emacsの布教を進めています。

しかし、わたしはバイト先の師匠の見様見真似で少しずつ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ページが表示され、以下のように大事なことがいくつか書いてあります。
f:id:yue82:20180203225525p:plain

キーバインドの表記

(‘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キーでの補完もできる
  • 下の行にDoneと表示されて止まるまで待つ f:id:yue82:20180203225640p:plain
  • 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キーを離して]を押す
  • 1行改行
  • 貼り付け(C-y)
  • ファイル保存
  • M-x eval-buffer

neotreeを使ってみる

  • C-M-t (Ctrlキーとメタキーとtを同時押し)
  • 左側に新しいウィンドウができ、neotreeが起動してファイル一覧などが表示される
    • カーソルは自動で左側に移る f:id:yue82:20180203225709p:plain
  • custom.elファイルを開く
    • ファイル名の上でEnterすると、そのファイルが開かれて右側に表示される
    • カーソルも自動で右側に移る
  • custom.elファイルを閉じる(C-k -> Enter)

バッファの操作

smartparensパッケージを導入しながらバッファ操作の練習です。

smartparensパッケージ追加

  • neotreeのウィンドウ(左側)にカーソルを移す(C-o)
  • package.elを開く
  • smartparensneotreeの下の行に追加
  • 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を使ってみる

適当に入力すると、"(等の閉じカッコが自動的に入力されるようになります。 f:id:yue82:20180203225941p:plain

最低限覚えるとよさそうなキーまとめ

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
    • 行末の無駄なスペースや全角スペース、タブなどを見やすくする

こちらの記事もよかったら参考にしてください。

感想

入門記事書くの難しいわ