Spacemacs Japanese Layer

spacemacs の Layer に Chinese があるので, Japanese もあってもいいだろうということで, Japanese layer を作成した. プルリクエストを 10 日前に送っているがそのままである. (9 月 17 日時点)

仕方がないのでちょこちょこ改良しつつ気長に待つことにする.

にレイヤーを公開したので, よろしかったらコメントやプルリクエストをしていただければありがたいです.

プルリクエストをしたのは開発版であるが, 安定版でも使えるはずである. ディレクトリ .emacs.d/private/ に移動して

git clone git@github.com:kenjimyzk/spacemacs-japanese.git japanese

とし, .spacemacs もしくは .spacemacs.d/init.eldotspacemacs-configuration-layer において japanese を付け加えて再起動すればよい.

どのようなことができるかを列挙すると:

  • evil-tutor-ja: 日本語 evil のチュートリアル
  • migemo: ローマ字で日本語検索が可能になる
  • helm-migemo-mode: helm で migemo が使える
  • avy-migemo: avy で migemo が使える
  • ddskk: 日本語入力システム SKK
  • japanese-calendear: 日本の祝日に対応したカレンダー
  • pangu-spacing: 半角と全角の間にスペースを作成する.
  • org で html 出力する際に望まないスペースを作らない.

ソースコードに引用をつけていない (ことが spacemacs では望ましいのでつけていない) が, 以下の人のコードを参考にしている. ここで感謝したい.

補足をすると migemo を使えるようにするには cmigemo が必要で, mac は homebrew で, ubuntu は apt-get で入手できる. Windows は

からバイナリを入手するのが簡単である. なお Windows の場合はパスを通す必要がある.

migemo の辞書の場所 の変数 migemo-dictionary は mac の場合, デフォルトでよいが, ubuntu や windows は設定が必要である. ubuntu では dotspacemacs-configuration-layer において

(japanese :variables
          migemo-dictionary  "/usr/share/cmigemo/utf-8/migemo-dict")

とし, windows では c:\app\cmigemo-default-win64 に本体があるなら

(japanese :variables
          migemo-dictionary  "c:/app/cmigemo-default-win64/dict/utf-8/migemo-dict")

とする必要がある.

現状, emacs 25 だと warnings が出てしまう. これをなんとかしたいと考えている. なお現状の設定ファイルは ここ にある.

投稿者: kenjimyzk カテゴリー: spacemacs

evil-tutor-ja

evil-mode の日本語チュートリアルのパッケージを開発した.

emacs のチュートリアルは M-x help-with-tutorial で実行可能であるが, 英語である. 日本語を含む英語以外のチュートリアルは M-x help-with-tutorial-spec-lanuage でよい.

spacemacs は evil-tutor.el が導入されていて, M-x evil-tutor で evil のチュートリアルが実行可能である. これはターミナル vimtutor で実行したときに実行される vim のチュートリアルの evil に対応したものである. 日本語環境のターミナルで vimtutor を実行すると, 日本語のチュートリアルが登場する.

今回, この Vim の日本語のチュートリアルを evil に対応したものを作成し, MELA に登録した.

基本的に日本語版 vimtutor のファイルを evil-mode 向けに集成しただけであるが, Vim および英語に馴染みがない人には有益と考えて作成した. vimtutor の日本語訳を作成した人に感謝したい.

spacemacs での導入方法は単に init.eldotspacemacs/layersdotspacemacs-additional-packages '()evil-tutor-ja を加え a SPC q r で再起動すればインストールされる.

M-x evil-tutor-ja で起動される. そうするとデフォルトの設定で ~/.tutor-ja のもとにチュートリアルが作成される. それをチュートリアルに従って編集していく. 一度終了してもファイルは修正されたところは反映している. 改めてチュートリアルを実施したければ ~/.tutor-ja のファイルを削除しればよい. また節の移動として C-jC-k が利用可能になっている.

はじめて MELPA に登録した. その際コメントやプルリクエストをしてくれた syohex さんに感謝したい.

投稿者: kenjimyzk カテゴリー: spacemacs

spacemacs の日本語設定 (5: lookup.el)

昔 EPWING というファイル形式があった. 現在その形式の辞書ソフトは発売されていないが, 昔は多数あった. またそうでない形式の辞書ソフトを変換するツールもネットで公開されていた. この EPWING 形式の辞書ソフトを emacs で利用するツールとして lookup.el がある. わたしの記憶が正しければ, Carbon Emacs に標準搭載されていた. 現在も

で公開されているが, melpa などに登録されていない. そのため私のように EPWING 形式の辞書をもっている人間は自分でインストールする必要がある. 情報が古いが, 以下にインストール方法が公開されている.

つい数年前まで, こうした el ファイルをいちいち自分でインストールしていたのが信じられない. 以下, spacemacs でどのように導入し, 利用しているのか紹介する.

lookup.el の導入

ubuntu

以前の 投稿 で, ubuntu での導入方法を述べた. 同様の手順をとればよい. ターミナルから

sudo apt-get install lookup-el

でよい. なお自分で emacs をコンパイルした場合, これではうまくいかない.

mac

以前の 投稿 で, gnupack での導入方法を述べた. 今回, homebrew 経由で導入できるようにした. まず

brew tap kenjimyzk/ebu
brew install ebu
brew tap kenjimyzk/eblook
brew install eblook

とする.

から lookup-1.4+media-20160602.tar.gz を入手し, それを解凍する. ターミナルからそこに,

emacs -batch -l install.el '~/.spacemacs.d/lisp/lookup' '~/.spacemacs.d/info'

を実行する.

windows

以前の 投稿 で, gnupack での導入方法を述べた. 同様の手順をとればよい.

から eblook-1.6.1+media-20150724-ebu-4.4.3-20150301-win64.exe を入手し, それを eblook.exe にリネームしてどこかのフォルダに入れ, 環境変数にそこの PATH を通す. 次に lookup-1.4+media-20160602.tar.gz を入手し, それを解凍する. emacs を開き, M-x eshell を実行し, 解凍したフォルダにディレクトリを移動し,

emacs -batch -l install.el  '~/.spacemacs.d/lisp/lookup' '~/.spacemacs.d/info'

を実行する.

設定ファイル

init.el にある dotspacemacs/user-config に次の設定

(load-file "~/.spacemacs.d/00lookup.el")

を加え, 外部ファイル 00lookup.el として, 次の設定を読みこむように設定している.

;; lookup
(add-to-list 'load-path "~/.spacemacs.d/lisp/lookup/")
(setq lookup-enable-splash nil)
(autoload 'lookup "lookup" nil t)
(autoload 'lookup-region "lookup" nil t)
(autoload 'lookup-pattern "lookup" nil t)
(global-set-key (kbd "C-x l") 'lookup-pattern)
(global-set-key (kbd "C-x C-l") 'lookup-region)

(setq lookup-default-dictionary-options
      '((:stemmer .  stem-english)))
(setq lookup-use-kakasi nil)
(setq lookup-search-agents '(
    (ndeb "~/dict/Cobuild1")
    (ndeb "~/dict/Longman4")
    (ndeb "~/dict/OALD8")
    (ndeb "~/dict/NKEMEJ")
    (ndeb "~/dict/NKEMJE")
    (ndeb "~/dict/KANJIGEN")
    (ndeb "~/dict/KEIZAI")
    (ndeb "~/dict/KOJIEN5")
    (ndeb "~/dict/COLLOC")
    (ndeb "~/dict/SRD-FPW")
    (ndeb "~/dict/EIDAI6")
    (ndeb "~/dict/WADAI5")))

最後の設定は辞書のおいている場所や種類によって異なる. なお以前の投稿では日本語のフォルダ名にしていたが, windows ではうまくいかなくなっているので変更している. また info ファイルの設定はここでは省略する. 以上, 新しい設定は ここ になる.

使い方

先の設定のもと, 検索方法は次の 2 つである.

  • C-x l: 単語を入力して検索する. デフォルトでカーソルにある単語が候補として挙げられる.
  • C-x C-l: リージョンを選択した上でその単語が検索される.

注意することは, evil-mode で検索すれば, その辞書がきちんと操作できなくなっている. その場合, 焦らず C-zemacs-mode に変換すればよい. lookup での使い方は ? を押せばヘルプがでるので, それを参考すればよい. 大抵 SPC で辞書を選び, qlookup を閉じるだけでよいだろう.

spacemacs の日本語設定 (4: pangu-spacing)

日本語文書を作成する際, 全角文字と半角文字には半角スペースをいれるようにしているが, しばしば忘れてしまう. それを避けるために以下を参考にして pangu-spacing.el を導入する.

init.eldotspacemacs/layersdotspacemacs-additional-packages 内部に pangu-spacing を加える. そして init.el にある dotspacemacs/user-config に次の設定

(load-file "~/.spacemacs.d/00pangu-spacing.el")

を加え, 外部ファイル 00pangu-spacing.el として, 次の設定を読みこむように設定している.

;; pangu-spaceing
;;http://rubikitch.com/tag/packagepangu-spacing/
  ;;; chinse-two-byte → japanese に置き換えるだけで日本語でも使える
(setq pangu-spacing-chinese-before-english-regexp
      (rx (group-n 1 (category japanese))
          (group-n 2 (in "a-zA-Z0-9"))))
(setq pangu-spacing-chinese-after-english-regexp
      (rx (group-n 1 (in "a-zA-Z0-9"))
          (group-n 2 (category japanese))))
  ;;; 見た目ではなくて実際にスペースを入れる
(setq pangu-spacing-real-insert-separtor t)
;; text-mode やその派生モード(org-mode 等)のみに使いたいならこれ
(add-hook 'text-mode-hook 'pangu-spacing-mode)
;; すべてのメジャーモードに使ってみたい人はこれを
;; (global-pangu-spacing-mode 1)

以上, 新しい設定は ここ になる.

spacemacs の日本語設定 (3: japanese-holidays)

以下を参考にして, カレンダーに日本語の祝日を付け加える.

init.eldotspacemacs/layersdotspacemacs-additional-packages 内部に japanese-holidays を加える. そして init.el にある dotspacemacs/user-config に次の設定

(load-file "~/.spacemacs.d/00calendar.el")

を加え, 外部ファイル 00calendar.el として, 次の設定を読みこむように設定している.

;; calendar
;; http://d.hatena.ne.jp/rubikitch/20090216/1234746280
(require 'calendar)
;; (setq  number-of-diary-entries 31)
(define-key calendar-mode-map "f" 'calendar-forward-day)
(define-key calendar-mode-map "n" 'calendar-forward-day)
(define-key calendar-mode-map "b" 'calendar-backward-day)

(eval-after-load "holidays"
  '(progn
     (require 'japanese-holidays)
     (setq calendar-holidays ; 他の国の祝日も表示させたい場合は適当に調整
           (append japanese-holidays holiday-local-holidays holiday-other-holidays))
     (setq mark-holidays-in-calendar t) ; 祝日をカレンダーに表示
     ;; 土曜日・日曜日を祝日として表示する場合、以下の設定を追加します。
     ;; 変数はデフォルトで設定済み
     (setq japanese-holiday-weekend '(0 6)     ; 土日を祝日として表示
           japanese-holiday-weekend-marker     ; 土曜日を水色で表示
           '(holiday nil nil nil nil nil japanese-holiday-saturday))
     (add-hook 'calendar-today-visible-hook 'japanese-holiday-mark-weekend)
     (add-hook 'calendar-today-invisible-hook 'japanese-holiday-mark-weekend)
     ;; “きょう”をマークするには以下の設定を追加します。
     (add-hook 'calendar-today-visible-hook 'calendar-mark-today)))

以上, 新しい設定は ここ になる.

spacemacs の日本語設定 (2: SKK)

日本語入力では mac や windows で Google IME を用いている. ただ spacemacs であまり相性がよくない. インサートモードで日本語文章を入力して, ノーマルモードに移ってもひらがなのままになる. 一部のブログで mac でインラインパッチをあてた emacs を使えばよいと書かれているが, わたしの環境だとインサートモード入力中に変換が効かなくなることがあり, 安定して使えない. SKK を導入すると, こうしたことを一気に解決してくれる. SKK は Emacs のための日本語変換といってよい. 昔は導入が少しややこしかったが, 今は melpa 経由でパッケージをインストールすればよいのでとても簡単である. SKK については以下を参照されたい.

導入

SKK を導入するためには init.eldotspacemacs/layers の dotspacemacs-additional-packages '()ddskk を加える. これで SPC q r で再起動すればインストールされる. インストールの最初に Viperize をするか聞かれる. もしかしたら evil-mode としては yes とするべきところかもしれないが, 私はいつも no を選択している.

カスタマイズすることがあれば, .skk ファイルを作成するか, init.el にある dotspacemacs/user-config () に設定を加える. 私は別ファイル 00ddskk.el を作って読み込むようにしている. 私の設定ファイルは ここ にある.

使い方

始めてなら M-x skk-tutorial とする. 詳細は以下にある.

まとめ

spacemacs に日本語入力を便利扱うパッケージ ddskk の導入方法を述べた. 現時点の私の設定は ここ である.

spacemacs の日本語設定 (1: migemo)

前回, 前々回 に予告したように migemo を導入すれば, avy-jump 日本語にもローマ字入力で移動可能になり, helm-swoop でローマ字入力でバッファ検索が可能になる. spacemacs にmigemo を導入するとは, 正確にいうとmigemo という外部プログラムにアクセスするインターフェイスを導入することである. まずは外部プログラムの導入, そして spacemacsの設定を説明する.

C/Migemo の導入

まず外部ファイル migemo を導入する必要がある. 現在は C/Migemo を使うのが普通である.

windows

以下のサイト

にから, バイナリを入手し, 環境変数 PATH にバイナリの場所を追加する. 私は c:/app/cmigemo-default-win64/ にしている.

mac

homebrew を導入しているので

brew install cmigemo

で導入される.

linux

ubuntu だとつぎのコマンドでよい.

sudo apt-get install cmigemo

設定

migemoを導入するためには init.eldotspacemacs/layers の dotspacemacs-additional-packages '()migemoavy-migemo を加える. そして init.el にある dotspacemacs/user-config () に次の設定を加える.

;; migemo
(require 'migemo)
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs" "-i" "\a"))
(cond
 ((eq system-type 'darwin)
  (setq migemo-dictionary "/usr/local/share/migemo/utf-8/migemo-dict")
  )
 ((eq system-type 'gnu/linux)
  (setq migemo-dictionary "/usr/share/cmigemo/utf-8/migemo-dict")
  )
 ((eq system-type 'windows-nt)
  (setq migemo-dictionary "c:/app/cmigemo-default-win64/dict/utf-8/migemo-dict")
  ))
(setq migemo-user-dictionary nil)
(setq migemo-regex-dictionary nil)
(setq migemo-coding-system 'utf-8-unix)
;; initialize migemo
(migemo-init)

機種によって辞書のディレクトリが違うため, 場合分けしている. これで C-s, C-r などのインクルメンタルサーチで migemo 対応が可能である.

helm をmigemo対応にするには以下でよい.

;;
(with-eval-after-load "helm"
  (helm-migemo-mode +1)
  )

古いブログの記事では helm-migemo の導入といっているが不要である.

avy をmigemo対応にするには以下でよい.

;; avy-migemo
(require 'avy-migemo)
(avy-migemo-mode 1)

まとめ

以上, spacemacs に migemo を導入する方法を記述した. これで avy-jump-word (SPC SPC) で日本語にもジャンプでき,  helm-swoop (SPC s s) でローマ字で日本語検索が可能になる.

機種ごとにまとめた設定ファイルは ここ にある. 前回からの差分は ここ である. なお, わたしはこれを外部ファイル 00migemo.el として, 読みこむように設定している.

spacemacs の使い方 (検索)

前回に続き spacemacs の使い方について, 検索を中心に述べる. 過去の ポスト でバッファの検索は color-moccur+moccur-edit で, 複数ファイルの一括検索 ag+wgrep+ag といったが, わずか 2 年でガラリと変わり, helm+swoophelm-ag になっている. この 2 つは特に設定することなく, spacemacs で利用可能である.

helm-swoop

helm-swoop について

が参考になる.

spacemacs では SPC s s で helm-swoop が起動できる. 単語を検索し, 該当箇所が複数あれば移動したい単語を選択しエンターを押せばその場所にジャンプする. リージョンを事前に選択していれば, SPC s S を使うまでもなくその文字を選択してくれる. リージョン選択していなくても, SPC s S で自動的に単語選択して検索しくれるが, 日本語単語は上手くいかないので事前にリージョン選択する必要がある.

紹介したブログにも書かれているが, helm-resume で以前の検索を再現してくれる. そのキーバインドは SPC h l である.

検索後, C-c C-e で編集することができる. 編集後, C-c C-c とすれば, 検索結果が反映される. 個人的に emacs の標準検索置換機能である M-% よりも使いやすいと感じている.

さらに SPC s C-s で複数のバッファを同時に検索することができる. また migemo を導入することで日本語検索が可能である.

helm-ag

さて当該ディレクトリのもとでの一括検索も可能である. grep が基本であるが, ag を導入していれば, helm-ag が使える. helm-ag について

が参考になる.

使い方の前にまず ag の導入について説明する. windows の場合,

により, バイナリを入手し, 環境変数 PATH にバイナリの場所を追加する.

mac の場合, homebrew を利用する. ターミナルから

brew install ag

を実行すればよい.

ubuntu の場合, ターミナル上から

sudo apt-get install silversearcher-ag

を実行すればよい.

さて使い方であるが, ほどんど helm-swoop と同じである. SPC / で helm-ag が起動できる. 単語を検索し, 該当箇所が複数あれば移動したい単語を選択しエンターを押せばその場所にジャンプする. SPC * だとカーソル上の単語についてリージョン選択することもなく検索してくれる.

検索後, C-c C-e で編集することができる. 編集後, C-c C-c とすれば, 検索結果が反映される. 個人的に M-% (query-replace) よりも使いやすいと感じている.

まとめ

今回は検索について helm-swoop (SPC s s) と helm-ag (SPC /, SPC *) について説明した. その他の検索についても SPC S からコマンドを選んでいけばよい.

なお 日本語のままで検索可能である. さらに migemo を導入すれば, helm-swoop においてローマ字から日本語の検索が簡単に拡張可能である. 次回は migemo の導入方法を説明する.

spacemacs の使い方 (編集)

前回 に続き spacemacs の使い方を編集を中心に述べる. 最低限必要なキーバインドは編集以外なら

  • SPC, M-m, C-z, C-g

だけでなんとかなるといった. 編集についてもカーソル移動と削除キーがついている普通のパソコンなら, アンドゥ, カット, コピー, ペーストのそれぞれのモードのショートカットを覚えればなんとかなる. そのうえで spacemacs でどのように使えばよいかを説明する.

インサートモード

evil-mode, つまり vim では複数のモードがある. ここではノーマルモードとインサートモードとヴィジュアルモードとがある. インサートモードは文字を入力するモードである. ノーマルモードからインサートモードに移るには i,a を押す. それによって, 文字が入力される. 通常の emacs-mode はある意味常時インサートモードといってよい. つぎにヴィジュアルモードは画面選択が可能になるモードである. これについては後で説明する.

移動

カーソル移動だけでなんとかなると言ったが, 以下の機能を覚えておいたほうが便利である.

emacs evil
カーソル移動 C-f/b/n/p l/h/j/k
単語移動 M-f/b w/b/e/W/B/E
行頭/尾 C-a/e 0/^/$
文移動 M-a/e (/)
段落移動 M-{/} {/}
一画面移動 C-v/M-v C-f/b
バッファ移動 M-</> gg/G

最初の行のカーソル移動のショートカットを覚えて, 最終的にはマウスとカーソルを使わないことを目指していきたい.

選択

通常のエディタのシフトと矢印キーかマウスで選択するのを, emacs ではそれらを使わず選択するこができる. emacs-mode では, C-SPC でマークし, さきほどの移動コマンドで範囲を変更する. C-M-SPC で範囲を (S 式のルールに従い) 拡大したり, C-x C-x でマークの始点を変更したりする. 昔の emacs は矩形編集の操作が面倒であったが, バージョン 24.4 以降 C-x SPC という操作でかなり楽になった.

evil-mode のノーマルモードから, また v を押し, ヴィジュアルモードに移行し, 移動コマンドで範囲を選択する. マークの始点の変更は o である. また行ごとの場合は V, 矩形選択の場合は C-v とすればよい.

なお移動コマンドだけでなく, 検索によって範囲を拡大させることができる. 検索については後述する.

さて, spacemacs は expand region というパッケージがすでに導入されていて単語の選択拡大・縮小を簡単に実行できる. SPC v で単語選択に拡大し, もういちど v を押せば文選択に拡大する.

なお単語選択について日本語では文節まで拡大してしまうので, 修正が必要である. そのとき emacs-mode では C-x C-x でマークの始点を変更し, カーソル移動を実施すればよい. evil-mode では o でマークの始点を変更すればよい.

コピペ

windows や linux の「標準」エディタの編集コマンド (cua) との比較でまとめると次のようになる.

emacs evil cua
undo C-/ u C-z
cut C-w c,d C-x
copy M-w y C-c
paste C-y p/P C-v

mac だと コントロールキーのかわりにコマンドキーを使うので併用できる.

windows や linux でも M-x cua-mode にすれば標準の操作が可能になる. C-x, C-c は制限時間内に何も操作なければ利用可能であるが, C-z と C-v は注意が必要である. C-v は PageDown キーを使えば問題無いが, C-z は使えなくなる. キーバインドを変更するか, どちらかのモードだけを利用すると決めておく必要がある. つまり mac を利用する以外は, emacs か evil のどちらかの編集コマンドは覚えたほうがよい.

emacs-mode のとき cut を kill-ring-save といい, copy を kill-region と呼ばれる. キルされたテキストはキルリングに保存される. 一文字削除の C-d や単語削除の M-d など選択を伴わず, キルリングに保存されたり, 保存されないコマンドがあるが, ここでは省略する. 貼り付けについて emacs-mode では貼り付けのことをヤンクといい, C-y で実施する. evil-mode でのヤンクと役割が違うので混乱のないようにされたい.

evil-mode のとき, cut は削除であり, copy はヤンクであり, それぞれコマンド c,d, y と割当てられている. ヴィジュアルモードで選択したものを削除するとき, c だとインサートモードに移動し, d だとノーマルモードに戻る. ヤンク y だとノーマルモードにもどる. ヴィジュアルモードからなにもしないのなら ESC でノーマルモードに戻る.

なお evil-mode では, モーションという動作組み合わせて, ヴィジュアルモードを経ないでノーマルモード上で c,d, y を実行することができる. これが使いこなせるようになると Vim が楽しくなるがここでは説明を省略する.

evil-mode では貼り付けのプットといい, ノーマルモードで p/P を押す. カーソルの後ろに貼り付ける場合 p で, 前に貼り付ける場合 P である. 通常の emacs の貼り付けは大文字の P に対応しているので注意されたい.

さて, emacs は過去のコピーしたものをキルリングに保存している. これは evil-mode で編集したものを保存されている. これを取り出すのは emacs-mode では M-y を実施し, evil-mode では レジスタを指定した貼り付けを実施する. どちらもいささかわかりにくい.

これについて spacemacs は SPC r y (helm-show-kill-ring) を実施すればよい. このときどちらともにキルリングに保存されたものをリストで表示し, 貼り付けたいものを選択することができる.

avy

移動について, カーソル移動だけで十分といったが, emacs は avy が導入されているからである. avy については

を参照されたい.

主な機能は SPC SPC として, 任意の候補が出るので該当キーを押し, 単語移動する. 同様に SPC y で行移動する. また SPC ` でジャンプ前にもどってくれる. たとえば, 文章作成中にスペルミスや誤植などが見つかった場合, ジャンプして直して元に戻ることがマウスを使わず簡単に実行できる.

さらに ayv には便利な機能がある. リスト化すると以下である.

  • 単語選択する前に m を押せば, その単語にジャンプし選択までしてくれる.
  • 単語選択する前に x を押せば, その単語にジャンプし削除までしてくれる.
  • 単語選択する前に n を押せば, その単語にジャンプし選択し, もとに戻ってくれる.

とくに最後の機能は文章作成中に過去に使用した単語を正確に再度使いたい時に重宝する.

なお spacemacs のデフォルトの avy は日本語に対応していない. 単語移動でなく文字移動 (avy-goto-char) をつかえば日本語の文字にジャンプできる. ただ単語選択中の m,x,n といった機能はつかえなくなる.

これについて migemo を導入すれば日本語での単語移動も可能になるので, 今回は変更せずこのままにしておく. migemo の導入について後日説明したい.

まとめ

コピペのキーバンドとカーソル移動だけで, 複雑な移動のキーバインドを覚えることなく spacemacs はかなり便利に扱える. 具体的に移動したい場所には

  • SPC SPC, SPC y, SPC `

で自在に移動する. 選択範囲の拡大・縮小を

  • SPC v

でおこない, 編集を実施する. 特に過去の編集でカットおよびコピーしたものを

  • SPC r y

で実施できる. なお spacemacs の avy は日本語に対応していない. ただ migemo を導入すれば簡単に拡張可能である. migemo の導入方法を説明する前に, 次回は検索について解説する.

spacemacs の使い方 (基本)

さてこれから簡単な spacemacs の使い方を述べる. 最低限の想定読者は, エディタでの編集で, シフトキーと矢印キーで選択して, カット, コピー, ペーストを実行でき, アンドゥで元にもどせるということショートカットで操作できるひとである.

最低限必要なキーバインドは編集以外なら

  • SPC, M-m, C-z, C-g

だけで, 編集も mac なら, mac の emacs はコマンドキーを使わないため, 既存のアンドゥ, カット, コピー, ペーストをショートカットで利用でき,

  • C-SPC (マーク)

だけ覚えれば利用可能である.

mac 以外でも, カーソルキーと削除キーが付いているなら

  • C-/ (undo), C-w (cut), C-w (copy), C-y (paste)

さえ知っていればなんとかなる.

evil-mode で編集をするなら, vim の操作を覚えなければならないが,

  • i (挿入モード), v (ヴィジュアルモード), u (undo), y (copy), d (cut), p/P (paste)

だけでなんとかなる.