Zenn
Open21

なんちゃってVimmerがEmacsを使い始める備忘録

kamechakamecha

Vimがテキスト編集に特化した†エディタ†なら、Emacsは環境らしい
何はともあれ色んなエディタを触って知見を吸収する事は大事だろうし、ある程度できるようになるまでは触ってみよう
という感じ

Emacsキーバインドが手に馴染んで

  • org-mode
  • magit
  • S式でどうたらこうたら

等を使えるようになって、プラグインの一つくらいは作れるようにまでなりたいな

kamechakamecha

magitは標準では入ってないっぽいから、素で入ってるorg-modeに慣れる事をひとまずの目標にしたい

Hidden comment
Hidden comment
Hidden comment
kamechakamecha

https://tokyo-emacs.connpass.com/event/321255/
↑これに行ってきた

色々刺激を受けて楽しかった

kamechakamecha

vimはテキストの編集に重きをおいてるから、バニラの状態での編集に慣れる必要があるけれど、
emacsは環境の側面がでかいから、プラグインとかも含めて練習をしていった方がよいかも

kamechakamecha

https://a.conao3.com/blog/2024/7c7c265/

こちらも勧められてたので、メモ

Emacs上でのfuzzy finderとしては

  1. anything/helm
  2. ivy
  3. vertico, friends

といった流れがあるらしい、とりあえずvertico or frindsを導入すれば良さそうかな

この辺の流れは解説記事あるから、そっちも参照
https://zenn.dev/shougo/articles/emacs-trends

構造的編集ではやはりpuni(paredit, smartparensの後継?)が紹介されてた

あとEmacs周りの情報は「今週のEmacsのサマリー」ってブログを見ればいいらしい

kamechakamecha

~/.emacs.d/init.el
に設定を書いていってみる

; <C-h>でバックスペースにする
(keyboard-translate ?\C-h ?\C-?)

こんな感じで本体機能の動きをちょっとづつ設定しつつ、プラグインとかを導入していきたい

kamechakamecha

leafってのとuse-packageの複数のパッケージマネージャーっぽいのがあるけれど、古めのemacsが手元にある状態だとuse-packageの方がすんなりできたので、ひとまずuse-packageってのを使ってみる

(require 'package)

;; package-archivesを上書き
(setq package-archives
      '(("melpa" . "https://melpa.org/packages/")
        ("org" . "https://orgmode.org/elpa/")
        ("gnu" . "https://elpa.gnu.org/packages/")))

;; 所期化
(package-initialize)

;; skkの設定
(use-package ddskk
  :ensure t
  :custom
  (skk-sticky-key ";")
  (skk-large-jisyo "~/.cache/dein/nvim/repos/github.com/skk-dev/dict/SKK-JISYO.L")
  :bind (("C-x C-j" . skk-mode)))

;; magitの設定
(use-package magit
  :ensure t
  :bind (("C-x g" . magit-status)))

↑上みたいな設定をするとひとまずskkとmagitが使えるようになった
やったぜ!

kamechakamecha

ただ、skkでキーマップを設定する時にキーマップが効かない問題があった
C-jのみで設定してたところ、scrachバッファで適用されてるC-jとバッティングしちゃってたらしい
キーマップに割り当てられた関数を確認する方法としては
<F1>kor<C-h>kの後にキーマップを押すといいらしい

この辺りのメジャー・マイナーモードは時間ある時に確認しておきたいな
https://conao3.com/blog/2020-90bf-a3bb/
https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html

kamechakamecha

emacsのパッケージマネージャ導入あたりで詰まった件

M-x package-list-packages
でのpackageリストで見ると

melpaからのパッケージがうまく取得できていない模様

Failed to verify signature archive-contents.sig:
No public key for 1111111111111111 created at 2024-10-19T18:05:02+0900 using EDDSA
Command output:
gpg: Signature made Sat Oct 19 18:05:02 2024 JST
gpg:                using EDDSA key 111111111111111AAAAAAAAAAAAAAAAAAAAA
gpg: Can't check signature: No public key
kamechakamecha

melpaとうまくいかないと、melpa経由じゃないと入れられないmagitのインストールの箇所で詰まる
あと、この鍵を修正した後に起動すると勝手にbyteコンパイルしてwarning出してくる
うるせぇ

melpaじゃなくて、gnu elpaの方みたい、どっちにしろ鍵で怒られる
https://github.com/jwiegley/use-package

kamechakamecha
;; use-packageがなかったら入れるようにする
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))

を追加する事で初回起動時にuse-packageも入れられるように
鍵周りがちゃんとしてれば、この後のパッケージも自動で入れてくれる

kamechakamecha

プラグインを入れてく準備はある程度整ったので、

  • 補完プラグイン
  • FF
  • LSP

等を整備して、設定とかのEmacs Lispを書きやすくしたい
LSP利用のフォーマットとか色々

kamechakamecha

Emacs29からはLSPが組み込みされてるらしい

https://github.com/joaotavora/eglot

今のところはLSPの設定は置いといて、eglotとのつなぎとなる

  • yasnippet
  • Flymake
  • company(既存のcompletion-at-pointでcorfuの置き換えせずにいけるかも?)

の設定を先に済ませておくだけでいいかな

ログインするとコメントできます