まなbemacs
consult
consult-fd
あたりはマスト。とっととキーバインドはっつけるべき
これまでコピペ放置してたから一切使わなかったことを後悔している。
このページほぼコピペした
けどmeowは好みじゃなかったのでそこらへんの部分は省いてる
これまでもこんな感じでコピペしてきたけど上で書いたような状態になってきたので
ここで一日に一つずつパッケージについて調べて書いていきたい。
あくまでもコピペして、削減したり前使ってた設定をちょろちょろいれたりした後の暫定の状況から抽出したuse-packageの説明だけ
言語系はPHPとTypeScriptとEmacs Lispくらいしか確認してない上に
Tabnine付近の設定に今の環境だと不満があるから修正は加える予定
各use-packageの説明
- auto-package-update: パッケージを自動的に更新するためのパッケージ。
- auto-compile: Emacsの設定ファイルを自動的にコンパイルするためのパッケージ。
- files: Emacsの組み込みファイル関連機能を設定するためのパッケージ。
- saveplace: ファイルを閉じた時点のカーソル位置を記憶し、次回開いたときに復元するパッケージ。
- recentf: 最近開いたファイルを記録し、簡単にアクセスできるようにするパッケージ。
- savehist: ミニバッファの履歴を永続的に保存するパッケージ。
- paren: 対応する括弧を強調表示するパッケージ。
- elec-pair: 括弧の自動補完を行うパッケージ。
- hl-line: カーソル行をハイライト表示するパッケージ。
- autorevert: ファイルが外部で変更された場合に自動的に再読み込みするパッケージ。
- subword: キャメルケースやスネークケースの単語を分割して編集できるようにするパッケージ。
- simple: Emacsの組み込みの基本的な編集機能を設定するためのパッケージ。
- so-long: 長い行を含むファイルを編集する際のパフォーマンスを改善するパッケージ。
- flymake: リアルタイムにコードのシンタックスチェックを行うパッケージ。
- flymake-collection: flymakeを拡張し、様々なツールとの統合を提供するパッケージ。
- delsel: 選択範囲を入力で置き換えるパッケージ。
- tr-ime: Windowsでの日本語入力を設定するパッケージ。
- mozc: Linux/macOSでのMozcを使用した日本語入力を設定するパッケージ。
- fontaine: フォントの設定を管理するパッケージ。
- nerd-icons: アイコンフォントを表示するためのパッケージ。
- nerd-icons-completion: 補完リストにアイコンを表示するパッケージ。
- nerd-icons-dired: Diredにアイコンを表示するパッケージ。
- nerd-icons-corfu: Corfuの補完リストにアイコンを表示するパッケージ。
- nyan-mode: ステータスバーにNyanCatを表示するパッケージ。
- minions: マイナーモードのリストを最小限に抑えて表示するパッケージ。
- corfu: 補完機能を提供するパッケージ。
- corfu-popupinfo: ポップアップ形式の補完情報を表示するパッケージ。
- tabnine: AIによるコード補完を提供するパッケージ。
- cape: 補完機能を拡張し、複数のバックエンドを統合するパッケージ。
- vertico: 補完リストをポップアップで表示するパッケージ。
- vertico-repeat: Vertico用のリピート機能を提供するパッケージ。
- vertico-directory: Vertico用のディレクトリ移動機能を提供するパッケージ。
- vertico-buffer: Vertico用のバッファ切り替え機能を提供するパッケージ。
- vertico-truncate: Verticoの補完候補を省略表示するパッケージ。
- orderless: Orderlessスタイルの補完を提供するパッケージ。
- prescient: 補完候補の適切性を予測して並べ替えるパッケージ。
- vertico-prescient: Verticoとprescientを統合するパッケージ。
- corfu-prescient: Corfuとprescientを統合するパッケージ。
- flx: あいまい検索を提供するパッケージ。
- consult: 様々な検索機能を提供するパッケージ。
- marginalia: 補完候補の詳細情報を表示するパッケージ。
- embark: 補完候補に対するアクションを提供するパッケージ。
- embark-consult: EmbarkとConsultを統合するパッケージ。
- tempel: スニペット機能を提供するパッケージ。
- tempel-collection: Tempelのスニペットコレクションを提供するパッケージ。
- magit: Gitインターフェイスを提供するパッケージ。
- diff-hl: バージョン管理システムの変更を視覚的に表示するパッケージ。
- difftastic: 高度な差分表示ツールとの統合を提供するパッケージ。
- which-key: キーバインドのヘルプを表示するパッケージ。
- undo-fu: アンドゥ/リドゥ機能を改善するパッケージ。
- undo-fu-session: アンドゥ/リドゥのセッション管理を提供するパッケージ。
- vundo: アンドゥ/リドゥをツリー形式で視覚化するパッケージ。
- rg: ripgrepを使用した高速な検索を提供するパッケージ。
- apheleia: コードフォーマッターを統合するパッケージ。
- ef-themes: Emacsのテーマを提供するパッケージ。
- restart-emacs: Emacsを再起動するための機能を提供するパッケージ。
- expreg: 正規表現のヘルパー関数を提供するパッケージ。
- puni: Unicodeの特殊文字を入力するためのパッケージ。
- treesit-auto: tree-sitterを使用した自動設定を提供するパッケージ。
- string-inflection: 文字列の変換機能を提供するパッケージ。
- go-translate: 翻訳機能を提供するパッケージ。
- avy: キーボードから素早くテキストへ移動するためのパッケージ。
- ace-window: ウィンドウを素早く切り替えるためのパッケージ。
- migemo: ローマ字検索を可能にするパッケージ。
- lin: 行番号を表示するパッケージ。
- pulsar: 特定の領域をハイライト表示するためのパッケージ。
- goggles: テキストの変更をリアルタイムに強調表示するパッケージ。
- spacious-padding: バッファの余白を設定するパッケージ。
- beframe: フレームごとのバッファ管理を提供するパッケージ。
- aggressive-indent: コードの自動インデントを行うパッケージ。
- perfect-margin: 右マージンを自動的に調整するパッケージ。
- dashboard: Emacsの起動画面をカスタマイズするパッケージ。
- page-break-lines: ページ区切り記号を表示するパッケージ。
- breadcrumb: バッファ内の移動履歴を表示するパッケージ。
- rainbow-delimiters: 対応する括弧を色分けして表示するパッケージ。
- imenu-list: imenuの一覧を表示するパッケージ。
- eglot: Language Server Protocolをサポートするパッケージ。
- eglot-tempel: EglotとTempelを統合するパッケージ。
- consult-eglot: EglotとConsultを統合するパッケージ。
- jsonrpc: JSON-RPCをサポートするパッケージ。
- eglot-booster: Eglotの起動を高速化するパッケージ。
- eglot-x: Eglotの拡張機能を提供するパッケージ。
- eldoc-box: ElDocの表示をポップアップ形式にするパッケージ。
- eglot-signature-eldoc-talkative: Eglotのシグネチャ情報をElDocで表示するパッケージ。
- highlight-defined: 定義済みのシンボルをハイライト表示するパッケージ。
- highlight-quoted: 引用された式をハイライト表示するパッケージ。
- typescript-mode: TypeScriptの編集モードを提供するパッケージ。
- jtsx: JSX/TSXの編集機能を提供するパッケージ。
- emmet-mode: Emmetスタイルの省略記法を提供するパッケージ。
- web-beautify: Webコードのフォーマッターを提供するパッケージ。
- rust-mode: Rustの編集モードを提供するパッケージ。
- cargo: Rustのビルドシステムとパッケージマネージャを統合するパッケージ。
- pyvenv: Pythonの仮想環境を管理するパッケージ。
- slime: Common Lispの統合開発環境を提供するパッケージ。
- slime-company: SlimeとCompanyを統合するパッケージ。
- sql-indent: SQLのインデントを改善するパッケージ。
- sqlformat: SQLのフォーマッターを提供するパッケージ。
ここから利用頻度の高く、多機能なパッケージを調べていく
なお、説明は生成AIでつけた
corfu
verticoと同じ作者のパッケージ。
corfuはverticoのさらに範囲を絞ったものみたいなこと書いてた。
You may also want to look into my Corfu package, which provides a minimal completion system for completion-in-region in a child frame popup. Corfu is a narrowly focused package and developed in the same spirit as Vertico. You can even use Corfu in the minibuffer.
引用: https://github.com/minad/vertico/blob/main/README.org#completion-at-point-and-completion-in-region
だから
vertico: 別バッファを開いた上でそこに描画していくパッケージ
corfu: 画面内のミニバッファに描画していくパッケージ
こいつらにデータを渡すためのつなぎみたいなパッケージや関数は別途用意しろよっていつものパターンのパッケージか。
Corfu is the minimalistic in-buffer completion counterpart of the Vertico minibuffer UI.
引用: https://github.com/minad/corfu
とのことなので一応Verticoで完結することもできる?
でも同じ作者がわざわざ別にパッケージ書いてるってことは、そういうことなのかもしれない。
vundo
undo-treeみたいなやつか
キーバインド割り当ててないけど、まだいいか。
tempel
yasnippetみたいなツールかな。私はこういったものたちを
コピペ最適化ツールと呼んでいる。
GithubにはTempoといういにしへ?のテンプレートライブラリの構文を使用するテンプレートツールらしい。
Githubでは公開されていなかった。
ちなみにコピペした中に
というパッケージが存在するが、こちらはスタータデッキみたいなやつみたいだ。
さらにちなむとこのパッケージを作られたお方はvertico,corfuを作られたお方なので
例によって連携がしやすくなっている。
Githubのキーバインド通りに設定しているので
- M-*でスニペットの挿入
- M-+でスニペットの登録
となっている
ace-jump
昨日入れた。
キーバインドはまだ迷ってる。
頭痛がひどいので後日調整し、まとめたものをこちらに書きたい。
キャラクタ、ワード、ラインごとにデフォルトだとa-z,A-Zの順番にアルファベットを割り振ってくれて、
割り振られたアルファベットをタイプするとそこにカーソルが移動する機能を提供してくれる。
https://github.com/winterTTr/ace-jump-mode/wiki/AceJump-FAQ
なお、アルファベットが気に食わないならこちらのページのように己の手で変更可能。
go-translate
翻訳したい文字列を選択して
M-x gts-do-translate
で翻訳結果バッファがでてくる。
(setq gts-translate-list '(("en" "zh") ("fr" "en")))
みたいにペアを設定しておく。
私は英語から日本語に変換できればいいので
(setq gts-translate-list '(("en" "ja") ("ja" "en")))
日本語と英語それぞれ渡してみたけど
ちゃんと認識しているのか、それぞれ変換方向はしっかりと判別していた。
auto-package-update
Emacs パッケージを定期的に自動的に更新する機能を提供する。
(use-package auto-package-update
:config
(setq auto-package-update-interval 7)
(auto-package-update-maybe))
上記はコピペした設定をさらにインターバルを伸ばした。
毎日はきつい。
裏でやっといてくれーってときは
まずM-x package-refresh-contentsを実行してパッケージ内容を更新して、
次にauto-package-update-now-asyncを使用してパッケージを更新するのがベストプラクティスらしい。
ただ、更新後のバイトコンパイルが走るとどうしてもブロッキングが起きてしまうこともあるらしい。
ほとんどれどめの内容しか書けないから嫌だったけど
まあいいか