go-template-modeのインストール
go-templateのためのメジャーモードがないかと探していたらGistに簡易なものがあった。 https://gist.github.com/anonymous/1654113 が最初だが、Forkされたもの https://gist.github.com/grafov/10985431 のほうが状態がよさそうだったの...
go-templateのためのメジャーモードがないかと探していたらGistに簡易なものがあった。 https://gist.github.com/anonymous/1654113 が最初だが、Forkされたもの https://gist.github.com/grafov/10985431 のほうが状態がよさそうだったの...
ansi-termを使ってターミナルエミュレータを起動していたが、引数を直接渡せないなどの細かい挙動が気になりだした。 考えつく限り自分の要求に合うように関数の挙...
開発版版のEmacs (28.0.50) をソースからビルドして使っている。 el-getをrequireしようとしたところ以下のエラーが発生した。 Debugger entered--Lisp error: (wrong-number-of-arguments (3 . 4) 2) #f(compiled-function (obsolete-name current-name when &optional docstring) "Set OBSOLETE-NAME's function...
org-modeでアウトラインを開閉を行うには以下のコマンドを用いる。 動作 コマンド名 開く outline-show-all 閉じる outline-hide-other どんなショートカットにバインドされているかは環境によって異なる...
Emacsを使って複数のprojectで開発しているとprocess-environmentを頻繁に 書きかえる必要が出てくる。projectの切り替えはproj...
動機 Emacsのカスタマイズをした。Blogを書くときは自作のEditorモードを用いて いる。これは書いた内容を特定のディレクトリに配置してGitに登録するツー...
explicit-shell-file-nameで指定できる。 (custom-set-variables '(explicit-shell-file-name "/usr/local/bin/bash"))...
.envの定義からprocess-environmentを設定できるようにdotenv-modeをカスタマイズした。 M-x dotenv-load RET で適応される。 dotenvファイルはd...
Warning (python): Your ‘python-shell-interpreter’ doesn’t seem to support readline, yet ‘python-shell-completion-native-enable’...
.dir-locals.elを配置するとファイルを開く際に警告が表示される事がある。 The local variables list in /srv/foo/ contains values that may not be safe (*). Do you want to apply it? You can type y -- to apply the local variables list. n -- to ignore the local variables...
スクラッチバッファのメジャーモードは lisp-interaction-mode です。 新しいバッファを作成しメジャーモードを変更すればスクラッチバッファのように扱うことができます。 (defun scratch-buffer-create (buf-name) "Create new scratch buffer" (interactive "sBuffer Name: ")...
process-environmentという変数に適応する環境変数のリストが収められている。 それをletなどで上書きした状態でmake-processすれば、そ...
(defun dockerfile-read-image-name () "Read a docker image name." (ido-completing-read "Image name: " dockerfile-image-name-history nil nil nil nil (car dockerfile-image-name-history))) (bind-key "C-c C-c" #'dockerfile-build-buffer 'dockerfile-mode-map)...
この記事は Emacs Advent Calendar 2020 15日目の記事です。 はじめに PlantUMLはUMLを記述するためのツールです。今回はPlantUMLをEmacsから扱う方法をまとめます。 plantuml-mode...
Pythonのdoctestを実行するflycheckのcheckerを書いた。 実装 (flycheck-define-checker python-doctest "Python doctest flycheck checker" :command ("python" "-m" "doctest" source-inplace) :modes (python-mode) :enabled (lambda () t) :error-patterns ((error line-start (repeat 70 "\*") "\n" line-start "File " "\"" (file-name) "\", line " line ", in " (+ printing)...
Org-modeは #+INCLUDE: を使うことで外部のファイルの内容をを取り込みます。今回はこの機能の色々な指定方法を試します。 基本的な使い方 最初のパラメータは含めるファイル名...
Emacsのパッケージがインストールされるのを眺めるで.sigという拡張子のファイルをダウンロードしていました。これはGnuPGの署名ファイルです。今回はこの署...
transientはMagitの様なUIを実現するためのライブラリです。元々はmagit-popupという名前のパッケージでしたが、そこから分岐したようです。t...
今回はEmacSQLというサードパーティ製のライブラリを使ってMySQLに接続してクエリを実行してみます。 emacsql?emacsql-mysql? emacs...
Emacsのパッケージとarchive-contentsをpackage-buildを使って作成しました。また作成時のファイルの配置場所などの設定を確認しました...
ソースコードの取得 まずはソースコードを取得します。 Github上にミラーリポジトリがあるので今回はそこから取得しました。 とりあえず最新のソースだけでよいので --depth 1...
自作したパッケージも依存関係があったりするので外部にホスティングしたいです。ただMELPAに入れようとすると体裁を整えるなどの時間が取られてしまうのでそこまでは...
EmacsWikiにEmacsのパッケージアーカイブについて書かれています。 https://www.emacswiki.org/emacs/ELPA 名前 使用中 説明 URL GNU ELPA o FSFに承認されたパッケージが提供されている https://elpa.gnu.org/packages/ MELPA o 色々なパッ...
url-retrieve-synchronicallyのデバッグについてでurl-retrieve-synchronouslyのデバッグについて書きました。ur...
Emacsのパッケージをインストールする時には署名の検査が行われますが、署名の検査を行わないように設定に設定できます。今回はその際に設定する変数と使われ方につい...
Org-modeのプラグインであるorg-babelでドキュメント内に記述したコードを実行する方法と #+PROPERTY: 構文を使った設定設定の共通化の方法をまとめました。 コードブ...
url-retrieve-synchronicallyはURLで指定されたリソースにアクセスするための関数。 この関数はいろいろと使いにくいところがあるのでデバッ...
https://sximada.qrunch.io/entries/igZwGMywTUSL9IJdの転載。 Emacsで M-x list-buffers を実行するとバッファ一覧が表示される...
(add-hook 'before-save-hook #'our-git-commit-and-push-all nil t) our-git-commit-and-push-allはhttps://symdon.ga/posts/1604485779/で定義した関数。...
(require 'magit) (progn (magit-stage-1 "--all") (magit-commit-create '("--message" "Fix.")) (magit-push-matching "origin")) (defun our-git-commit-and-push-all () (magit-stage-1 "--all") (magit-commit-create '("--message" "Fix.")) (magit-push-matching "origin"))...
次のようなコードで確認した (add-hook 'org-capture-prepare-finalize-hook (lambda () (message (format "prepare: %s" (buffer-name (current-buffer)))))) (add-hook 'org-capture-before-finalize-hook (lambda () (message (format "before: %s" (buffer-name (current-buffer)))))) (add-hook 'org-capture-after-finalize-hook (lambda () (message (format "after: %s" (buffer-name (current-buffer)))))) 結果 prepare: CAPTURE-.notes before: CAPTURE-.notes Wrote /Users/sximada/.notes after: current.org...
準備 (package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/"))) (package-install 'flycheck) (use-package flycheck :ensure t) (require 'flycheck) checkerの定義 要点 flycheck-define-checkerを使う。 定義したチェッカーはchecker-c...
このような感じでコマンドを変更した。 (transient-define-prefix editor-save-as () "Editor mode save as..." [("s" "Symdon GA" editor-save-as-kill)]) (bind-keys :map editor-mode-map ("C-x C-s" . editor-save-as)) (bind-key* "C-t C-w" 'editor-create-buffer)...
transientを使って簡単なコマンドを書いてみた。 (defun hello-world () (interactive) (message "Hello world!!")) (transient-define-prefix testing () "testing" [("a" "A" hello-world) ("b" "B" hello-world)]) 基本的にはこういう使い方でコマンドを追加できる。 グループ化や引数の機能も...
transientでコマンドを書く場合はmagitやdocker.elが参考になる。 xref-find-definitionsで動いている実装まで即座にジャンプ...
transientはEmacsのコマンドを作るためのemacs lisp。 Magit Organizationによって開発/管理されている。 以前magitのUI部分はmag...
まずはeditor-modeを拡張しよう。 今は以下のようにバインドしている。 キーバインド 関数 処理 C-t C-w editor-create-buffer editor-modeの起動 C-x C-s editor-save-as-kill editor-modeで...
editor-modeでコメントのたびにgit addおよびgit commitをしないといけないのは大変なので C-c C-s したらそれを実行されるように変更する。 (defun editor-save-as-kill () (interactive) (symdon-ga-post...
DATEエクスポートオプションを更新したい場合、現状では手動で書き換える必要がある。 edit-create-buffer 内部では更新処理を行っているので 切り出して独立して実行できるようにする。 (defun...
Emacsでtimestampを取得する (float-time) 少数を切り捨てる (truncate (float-time))...
作成したtextを即座にpostsに書き込めるようにした。 (defcustom symdon-ga-post-directory "/ng/symdon/pages/posts" "Path to directory of symdon-ga posts") (defun symdon-ga-create-new-file-path () (concat (directory-file-name symdon-ga-post-directory) "/" (format "%s.org" (truncate (float-time))))) (defun symdon-ga-post (text) (with-current-buffer (find-file-noselect (symdon-ga-create-new-file-path)) (insert text) (save-buffer) (current-buffer))) (defun editor-get-editor-buffer-text () (with-current-buffer (get-buffer editor-buffer-name) (buffer-substring-no-properties (point-min) (point-max)))) (defun editor-save-as-kill () (interactive) (symdon-ga-post (editor-get-editor-buffer-text)) (kill-buffer editor-buffer-name)) (custom-set-variables '(symdon-ga-post-directory "/ng/symdon/pages/posts")) (bind-keys...
symbol 実行されるタイミング カレントバッファ 備考 org-capture-mode-hook org-capture-modeが有効化される前 org-capture-prepare-finalize-hook ファイナライズが開始される直前 キャプチャバッファ ナローイングされて...
EmacsのOrg(org-mode)の上付き/下付き文字の設定を変更してHTMLに変換した時にどのように出力されるのかを確認します。また部分的に変換する方法に...
org-md-export-as-markdownはorg-modeのテキストをMarkdownに変換します。変換時に自動で挿入される目次の位置と表記をカスタマ...