Emacs テキスト編集まとめ

📝Emacsのテキスト編集について. Emacs for Productivity.

とくにプログラミングに関するものは, 📝Emacs コーディング支援(IDE).

🔧joaotavora/yasnippet

Emacsにおけるテンプレートシステムのデファクトスタンダード.

Basics

  • yas-new-snippet: 新規スニペット作成.
  • yas-insert-snippet: スニペットを選択して挿入.
  • yas-visit-snippet-file: スニペットファイルを閲覧と編集.
  • yas-describt-tables: 使えるスニペットを一覧表示.

スニペットテンプレート

http://joaotavora.github.io/yasnippet/snippet-development.html

  • name: テンプレートの名前.
  • key: TABで展開するキー
  • #のあとの空白でコメントを残せる.
  • — 配下
    • 展開したいコードを記述.
    • $0は最後にカーソルが移動する場所.
    • 2と続けることができる.
# -*- mode: snippet -*-
# name: my/require
# key: my/require
# --
(require '[$0])

Emacs 編集

read-only-mode

C-x C-qで切り替え.

csv-mode.el

Emacs検索

🔧migemo

ローマ字入力のまま日本語をインクリメンタル検索するという知る人ぞ知るEmacs連携のすごい機能.

🔧ファジーファインダーフレームワーク

Emacsのキラー機能のひとつ.

るびきち氏のつくったanythingから全てははじまった…

https://github.com/emacs-jp/anything

そこから, この絞り込み検索を受け継いだいろんな改良パッケージが誕生.

  • anything
  • helm
  • counsel
  • consult
  • vertico

逆引きEmacsテキスト編集

フォルダ配下を一括文字列置換するには?

複数の箇所を同時編集するには?

Emacs矩形編集(cua-mode)

Emacsで矩形編集(複数の箇所を同時編集)をするには, cua-modeを有効化する. cua-set-rectangle-markで範囲選択して編集.

🔧magnars/multiple-cursors

Emacs矩形編集(cua-mode)をこれを便利にしたパッケージ.

  • mc/edit-line. 範囲を選択した上で有効化.
  • mc/mark-next-line-like-this: マークした箇所と同じ次の箇所をマーク
  • mc/mark-previous-line-like-this: マークした箇所と同じ前の箇所をマーク
  • mc/mark-all-like-this: マークした箇所と同じ全箇所をマーク
  • C-gやreturnでmultiple-cursor-modeの終了.

基本的な使い方は,

  1. 編集したい箇所をマーク
  2. mc/edit-line起動
  3. mc/mark-next-line-like-thisで次々に選択.
  4. 一括編集.
  5. C-gでmodeを終了.

2, 3はmc/mark-all-like-thisで一括で選択可能.

便利な使い方は,

  • Org-modeのリストの見出しを一括編集.
  • projectileで検索した単語をC-eでprojectile編集モードにして一括編集.

rectangle-mode

正方形のリージョン選択をしてその範囲を一括編集する.

  • Start rectangle mode, C-x SPACE
  • Move cursor to the previous (p) or next (n) line, C-p / C-n
  • Target rectangle area, C-x r t
  • Type text followed by RET to have text in selected lines

https://stackoverflow.com/questions/761706/edit-multiple-lines-at-once-in-emacs

org-modeのリストを編集するためにつかっている(multiple-cursorsがうまくできなかった).

🎨Emacsで風になりたいやつだけが使う技

風になりたいやつだけが使うEmacsによるテキスト編集まとめ.

Emacsでマスウスクロールが微妙になめらかに

Emacs29で入ったモード. 微妙にマウススクロールがなめらかになったが気のせいかも. 言われないと気づかないレベル.

(pixel-scroll-precision-mode)

X windows上のEmacsのスピードアップ

xset r rate 200 80

いろんなEmacsの改造の中で最近のクリーンヒットはこの設定かも. カーソル移動が爆速になった😄

✅表示されているテキストに3 手でジャンプ

この手のパッケージは ave-jump / ace-jump-modeが有名. Emacsのワクワクする機能のひとつ.

✅文末にピリオドを使ってジャンプ

技術文書で句読点にピリオドを利用すると, たとえばavy-jumpで任意の文末にジャンプできる.

✅マークしたポイントにジャンプ

C-SPC, C-@(set-mark-command)をするとカレントポジションをEmacsに記憶できる.

C-x C-SPC, C-x C-@でマークしたポジションにジャンプすることができる.


Insights

✨生産性を追求するならばシングルディスプレイ/3ペインで折り返しチューニング

かつてトリプルディスプレイとかやって調子に乗っていたこともあるが, 今はシングルディスプレイこそが最強であり, さらにそれを2ペインか3ペインに分割して使うのがいいと思っている.

集中力が高まるのは姿勢の固定し, 首を動かさない, 視線を動かさないとき. これを発見したとき視線を移動するデュアルディスプレイは没頭を妨げることを発見した.

ここから, Emacsの折返しはそのときどきで利用しているシングルディスプレイを2ペインか3ペインで表示するための最適な数にチューニングするようになった.

(setq-default display-fill-column-indicator-column 78)

折返し80文字問題は以前調べたので別途参照.

🌱1行の長さ80文字問題と個人的な見解

チーム開発だとコーディング規約で統一したほうがいいけど個人ならばディスプレイサイズに依存して80未満というのがわたしの結論.

✨風邪になりたいやつだけがEmacsを使えばいい

📜風になりたい奴だけがEmacsを使えばいい - tomoyaのパロディ.

生産性を追求するあまり作業のほとんどが設定ファイルの編集に時間が解けてしまう状態. こじれるとよくないよね…わたしはこじれている.


✨Linux上で動作するEmacsで親指シフトの最適解(2022)

Linux上で動作するEmacsで親指シフト入力をする最適解(2022) | Futurismo


  • tags: 📝親指シフト
  • notes
    • ブログへ文章を移動した. <2022-01-12 水>
    • こういう流動的なものはwikiに置かないほうがいいかも.