emacs
前回記事の関連. tabspaces.elから一部関数を拝借したので,ライセンスを付記する. ;; https://github.com/mclear-tools/tabspaces/blob/main/tabspaces.el ;; Copyright 2013-2015 Justin Talbott ;; Copyright (C) 2022 Colin McLear ;; This program is…
bs-configurations という変数にフィルタリング用の関数を追加してやれば良いわけである. ここでは"same-mode"という名前をつけてみた.このcodeはace-jump-bufferから抽出した(実際のコードはマクロ).GPL ライセンスの旨を併記しておく. ;; Copyright …
こんな感じ。 ちなみに、mapc ... で始まる箇所は、バッファ(たち)をdesktop-modeで復元後にbmを復元するための設定である。それゆえ、desktop-modeを使っていないひとには不要な設定である。復元した全バッファに対して処理を回しているので、そもそもbm…
centaur-tabs-mode で黒系のアイコンの例は ".emacs" の nf-oct-gear だが、これはdark系カラーテーマ(例えばdoom-dracula)のときには見えづらい。 ほか、term-modeの nf-dev-terminal などもそうであり、結局これらにはfaceが付与されていないのである (…
こうする.define-iconで調整する.修正の本質は :height (1.0 . em) を追加することにあり,この1.0を変えれば大きさも変化する.タブ履歴のほうは heightを0.9にしてみた. ただしこのときのEmacsのバージョンは29.4である. (with-eval-after-load 'tab-b…
VSCodeではsticky scroll が有効になっている。 Emacsで「ほぼ」同様の機能を実現するには window-stool-modeをインストールし、有効にする のが一番良さそうである。設定はこんな感じ(主にpython向け): (add-hook 'emacs-startup-hook #'(lambda () (add…
こうする. call-process-shell-command の活用がカギだった. (with-eval-after-load "dired" (defvar dired-sushi-search-command "xdotool search --desktop 0 org.gnome.NautilusPreviewer windowactivate") (defun dired-sushi () (interactive) (call-…
こんな感じで neo-buffer--insert-fold-symbol を再定義した.nerd-icons-icon-for-dir-with-chevron は新規に作成した. (defun neo-buffer--insert-fold-symbol (name &optional node-name) "Write icon by NAME, the icon style affected by neo-theme. `…
ちなみに completion-preview はEmacs 30 系に搭載予定. 最新のソースコードはこちらから。 github.com (require 'completion-preview) ;; Enable Completion Preview mode in code buffers (add-hook 'prog-mode-hook #'completion-preview-mode) ;; also …
1. hippie-expand (M-/) 2. completion-preview (C-i, M-i) 3. dabbrev-expand or cape-dabbrev 4. completion-at-point with corfu and hotfuzz (C-M-i) corfu-modeはONだが corfu-auto は nil にしておく。 入力中、基本はhippie-expandで候補検索・確定す…
こうする。挙動がVSCodeに近くなると思われる。キーバインドはお好みで。 (defun neo-open-file-other-tab (full-path &optional arg) "Open a file node in another tab. FULL-PATH is the file path you want to open." (neo-global--select-mru-window ar…
こうする。neotree を使っている場合は neotree-toggle を実行してツリーを表示するのも悪くない。 (defun dired-find-file-other-tab () "In Dired, visit this file or directory in another tab." (interactive) (dired--find-file #'find-file-other-tab…
こんな感じ。tinted 系や deuteranopia 系 を使うならば、MELPAからmodus-themesをインストールする必要があるので注意! (if (display-graphic-p) (progn (setq modus-themes-italic-constructs t) ;; コメントが斜体 (setq modus-themes-bold-constructs t…
以下の記事でMinionsが紹介されていた。良さげだったので早速使っている。 【Emacs入門】③モードラインについて考える(Moody / Minions) 要するに、メジャーモードを除いてマイナーモードを非表示にするわけだ。 (add-hook 'after-init-hook #'(lambda () …
こんな感じ。 (global-set-key [f6] 'neotree-toggle) ;; treeバッファに行番号を表示しない (add-hook 'neotree-mode-hook #'(lambda () (display-line-numbers-mode -1))) ;; 隠しファイルを表示しない (setq neo-show-hidden-files nil) ;; 隠しファイル…
mwimがそれである。 github.com MELPAからインストールして、下記設定で便利に使える。 (global-set-key (kbd "C-a") 'mwim-beginning) (global-set-key (kbd "C-e") 'mwim-end) 挙動が少し変えたいときは以下。 (global-set-key (kbd "C-a") 'mwim-beginnin…
shackle-modeは愛用しているパッケージのひとつ。 ポップアップウィンドウの表示位置やサイズを調整できるので。 ひとまずこんな設定。 (add-hook 'after-init-hook #'(lambda () (shackle-mode 1) (setq shackle-rules '( ("*Help*" :align below :select t…
basedpyrightをインストールしたうえでこうする。 (with-eval-after-load 'eglot (add-hook 'eglot-server-programs '(python-ts-mode . ("basedpyright-langserver" "--stdio")))) 最新のeglotにはbasedpyrightの設定もマージされているけども、Emacs 29系…
こんな感じ (global-set-key (kbd "M-/") #'hippie-expand) (setq hippie-expand-try-functions-list '( try-expand-dabbrev try-expand-dabbrev-all-buffers try-complete-file-name-partially try-complete-file-name try-complete-lisp-symbol-partially …
eglotで無効にしたい機能があれば、eglot-ignored-server-capabilities というリスト変数に追加する(初期値はnil)。 例えばカーソル下のシンボルハイライトを止めたいときは :documentHighlightProvider を追加する。 (with-eval-after-load "eglot" (setq…
このリポジトリにある.GNU Elpaからパッケージでインストール可能. github.com 設定はこんな感じ.特定のメジャーモードのhookに引っ掛けるのも悪くない. (add-hook 'after-init-hook #'(lambda () (breadcrumb-mode +1)))
hotfuzzという補完スタイルを提供するEmacsパッケージがある. github.com あいまい入力の補完を助けるので,とても便利である. さらなる高速化を望むなら,hotfuzzの動的モジュールのソースコードをコンパイルしてロードパスの通ったところに置く必要があ…
こんな感じ. (add-hook 'c-mode-hook #'eglot-ensure) (add-hook 'c-mode-common-hook #'(lambda () (c-set-style "GNU") (setq c-basic-offset 4) ;; width of indent (setq fill-column 80) (setq-default auto-fill-mode t))) ;; https://emacs.stackexc…
Pythonを書くためのEmacsの設定は常にアップデートしている. reformatter および ruff-format をインストールする. これ以外にもtempelの設定もしてある.tempelについては以下の記事にて. 【Emacs】テンプレート用パッケージTempelの設定 - 備忘録 当然…
設定はこんな感じ。 (global-set-key (kbd "C-'") #'embark-act) (global-set-key (kbd "C-\"") #'embark-dwim) (setq embark-help-key "?") (add-hook 'embark-collect-mode-hook #'consult-preview-at-point-mode) ;; embark-consultをインストールしたう…
こうする。 ;; https://emacsredux.com/blog/2013/06/15/open-line-above/ (defun smart-open-line () "Insert an empty line after the current line. Position the cursor at its beginning, according to the current mode." (interactive) (move-end-of-…
dmacroのソースはここにあるのでダウンロードして、然るべき場所におく。 github.com dmacro-mode を有効にしたうえで、dmacroを使うことができる。トリガーに使うのはdmacro-keyである。 設定: (setq dmacro-key (kbd "C-S-e"))
例えばこんな感じ。 (defun smartchr-keybindings-python () (local-set-key (kbd "=") (smartchr '(" = " " == " "="))) (local-set-key (kbd "+") (smartchr '(" + " "++" " += " "+"))) (local-set-key (kbd "-") (smartchr '(" - " "--" " -= " "-"))) (…
テンプレート挿入・展開に便利なパッケージTempel がある. github.com 公式を参考に,設定はこんな感じ.テンプレート展開の部分キーワードを入力して M-+ でテンプレートが展開するので便利である. また「ここにテンプレートを展開したい」と思ったところ…
こんな感じにしている. (add-hook 'after-init-hook #'vertico-mode) (with-eval-after-load 'vertico (setq vertico-cycle t) ;; Enable recursive minibuffers (setq enable-recursive-minibuffers t) ;; vertico-directory (define-key vertico-map "DEL…