Time-stamp: <2017-05-26 17:32:59 nagata> マルチカーソルとは何か? 一言で言えば,cursor を分身させ,これ らを同時に動かすことで,複数行にまたがって散在する文字列を一 括編集したり,複数の行頭・行末に文字列を追加したり,そこから 削除したり,といった作業を効率よく行うことを可能とする機能で ある。 もちろん,これまでに学んだ「置換・正規表現置換」や「矩形編集」 等の機能を用いてもマルチカーソル編集と同じようなことができる が,マルチカーソルならではの利点として,目の前で編集作業を 「リアルタイムに確認」できるということが挙げられる。場合によっ ては,こちらの方がはるかに使い勝手が良い,ということもある。 EURO ICT Emacs では,multiple-cursors.el と smartrep.el パッ ケージを組み込むことで,この機能を実現している。 マルチカーソル編集に関する以下のコマンドを学べ。 region 内の全ての行にcursor作成: C-M-g (mc/edit-lines) region 内で対話的にキーワードを入力してcursor作成: C-M-x (mc/mark-all-in-region ) region 指定したキーワードを連打により次々と選択: C-^ (mc/mark-next-like-this) カーソルを分身させた後は,通常の編集作業となる。マルチカーソ ルを解除するには C-g を複数回打鍵する。マルチカーソル状態 で C-v/M-v を打つと,通常状態における画面のスクロールではなく, マルチカーソルのpointを行き来するようになる。 他にも C-^ の後で s を押すとスキップして次のキーワードに移動 (mc/skip-to-next-like-this), u を押すと選択を解除し一つ前の 選択済みキーワードに戻る (mc/unmark-next-like-this), * を押 すとbuffer内にある全てのキーワードを選択する,といった機能も 備えているので,必要に応じて使い分けると良い。