`(blog ,garaemon)

ポップカルチャーを摂取して、コードを吐き出す機械

emacs

forgeを導入してpull requestをemacs上で作る

forgeを導入することで、emacsからpull requestを作成できるようにする。 github.com use-packageを使っていると導入はかんたん。 (use-package forge :after magit :ensure t) forgeを使うには少し設定が必要。 githubのユーザ名の設定は git config --glob…

emacsで対応するgithubのURLをminibufferに表示する

browse-at-remoteは非常に素晴らしいelispで、emacsで開いているバッファから対応するgithubのページをブラウザで開くことができる。 github.com しかし、個人的には仮想マシンや他の計算機にsshして、そこでtmuxを立ち上げてemacsをemacs -nwで立ち上げてい…

find-name-diredから.gitディレクトリを除く

find-name-diredは, あるディレクトリ以下のファイルの文字列を一括で変換したりする際に、便利な関数です。 qiita.com www.gnu.org しかし, .gitディレクトリが候補に含まれてしまうと, 何かと不便なことが多いです。 以下のようにfind-name-argを変更する…

display-fill-column-indicator-modeを試す

display-fill-column-indicator-modeの使い方 display-fill-column-indicator-modeという, モードがemacs27から実装されている. これは, 指定した行に目印を表示して、横に長過ぎるコード・文章を書かないようにするminor modeだ. display-fill-column-indic…

vscodeのtabの挙動をemacsっぽくする

customize-indentation-rules visual studio codeのtabの挙動をemacsのようにしたい. そのために, 以下の2つのextensionを利用する. * vscode-emacs-indent * customize-indentation-rules emacsにおけるtabを押したときの挙動は以下のようなものだ. tabを押…

選択しているbufferに応じてneotreeのディレクトリを移動させる

emacsでbufferを選択するたびにneotreeのディレクトリがそれに応じて変わると便利なのではないかと思い, 設定してみた. bufferの選択に応じて呼び出されるhookは存在しないらしいので, switch-buffer-functionsを利用する (use-package switch-buffer-functi…

macでimagemagickとcocoaが有効になったemacsを使う

結論から言うと, emacs-plusを使うと良い macでemacsをcocoa上で動かしたい時, homebrewではbrew cask install emacsのようにインストールする. しかしこれだとimagemagickが有効になっていない. imagemagickが有効化は以下のコマンドで調べられる. (image-t…

emojifyを使ってemacsで絵文字を表示する😺

emacsで絵文字を表示するにはemacs-emojifyを入れると良い. use-packageを使って, こんな感じで設定 (use-package emojify :ensure t :if (display-graphic-p) :hook (after-init . global-emojify-mode) :bind ("C-x e" . 'emojify-insert-emoji) ) 絵文字…

emacsからcatkin buildを走らせる

emacs編集中に, ターミナルに移動することなくcatkin buildを走らせられると便利. (defun ros-catkin-make (dir) "Run catkin_make command in DIR." (interactive (list default-directory)) ;; clear compilation buffer first not to occupy memory space…

emacs-slackでShift+Enter, Ctrl+Enterをメッセージ内改行にする

emacs-slack内ではEnterでメッセージ送信がされるので、メッセージ内で改行するときにwebのインターフェイスなどと同様にShift+Enter, Ctrl+Enterでメッセージ内改行するようにしたい. ;; use Shift+Enter and Ctrl+Enter as newline (define-key slack-mode…

keyboard macroの最中はhelmを使わない

個人的にC-sでの検索に通常のisearch-forwardではなく, helm-swoopを利用している. しかしこうすると, keyboard macroを入力している間にhelmが走り、これがどうやら後ほどkeyboard macroを再生するときに問題があるようだ. keyboard macroを記録中かどうか…

emacs 26で入ったdisplay-line-numbersを利用する

emacsで左側に行数を表示するlinum-modeは重いことで有名だった。 軽くするためにはいろいろと設定しなくてはいけなかった. しかし, emacs26でついに行数表示のネイティブ実装であるdiplay-line-numbers-modeが実装された. (if (version<= "26.0.50" emacs-v…

web-modeでeslintをflycheck経由で使う

flycheck-add-modeで設定する (flycheck-add-mode 'javascript-eslint 'web-mode) eslintの設定で, eslint-plugin-htmlが必要なので、その設定を忘れないようにする. module.exports = { ... "plugins": [ "html", ], ... }

helmを立ち上げたときにhelm-source-ls-gitを強制的に更新させる

helm-ls-gitはgitで管理されているファイルをhelmの候補に加えてくれるとても便利なパッケージ. これをhelm-miniなどを立ち上げたときにも使うようにしたいのだが、helm-source-ls-gitをhelm-mini-default-sourcesに加えるだけでは不十分だった。自分でhelm-…

el-getで導入したパッケージをまとめて更新する

el-get はパッケージ管理のためのelisp. 一度インストールした後に更新したいときは M-x el-get-update-allを実行するとよい.

helm-ls-gitでmagitをバックエンドに利用する

helm-ls-gitを使うと, helmの一覧にgitで管理されてるファイル一覧が列挙されて便利. しかしデフォルトでvc-dirが利用されているためかうまく動かなかった. これをmagitを使うように設定したら意図通り動くにようなった. (require 'helm-ls-git) (setq helm-…

emacsでカーソルの行番号を取得する

line-number-at-posを使えば良い (line-number-at-pos (point))

emacsでカーソル位置の単語をispellの辞書に追加する

emacsでカーソル位置の単語をispellの辞書に追加するelispコード (require 'thingatpt) (defun add-word-to-ispell-dictionary () "Add word to dictionary file for ispell." (interactive) (let ((user-dictionary-file (expand-file-name "~/.aspell.en.p…

emacsでカーソル位置の数字を上下させる

emacsでカーソル位置の数字を上下させるemacs lispコード. どこかから拾ってきたのかもしれないもの. 意外と便利. (defun increment-number-at-point () "Increase number at current cursor." (interactive) (skip-chars-backward "0123456789") (or (looki…

helm-miniのデフォルト値にカーソルのシンボルが渡ってしまう

helm-miniをC-x bに割り振ってバッファ選択に使っているのだが、現在のカーソルがある位置のシンボル(いわゆるthing-at-point)がデフォルトで渡ってしまい、バッファの選択に不自由していた. どうやら, helm関数の:defaultキーワードを与えないと、thing-at-…

emacsでmarkdown-modeのinline code blockに色を付ける

code blockのフォントを変えないようにしたのは良いけど 、色も変わらなくなってしまった。 これはみにくいので色を設定するようにする. (set-face-attribute 'markdown-code-face nil :inherit 'default) (set-face-attribute 'markdown-inline-code-face n…

emacsで選択範囲or現在行のpythonを評価する

elpyを使っています. elpyやemacs付属のpython-modeでも, pythonのインタプリタをemacs上で起動することができ、大変便利だ. elpyの場合はM-x elpy-shell-switch-to-shell, python-modeならM-x run-pythonでpythonインタプリタを立ち上げることができる. ema…

emacsのmarkdown-modeのcode blockでフォントを変えない

emacsのmarkdown-modeはcode blockでフォントが変わるのが嫌だったのでこれを変更しないように設定。 emacを使うような人は、デフォルトで等幅フォントを指定してるんじゃないのかな? ;; Do not change font in code block (set-face-attribute 'markdown-co…

emacsのmarkdown-modeでcode blockをsyntax higlightする

emacsでmarkdownを書いてる時に、markdown-modeでcode block (triple backquotes) にsyntax higlightを有効にできる. (setq markdown-fontify-code-blocks-natively t) コレはかなり良さそう. before after

emacsで毎日のメモのためのmarkdownを自動的に作成する

メモをとるのにmarkdownはとても便利. emacsで作業中のメモをとるためのmarkdownを日別に自動的に作成するemacs lispのコード. ~/daily-notes/の下に日付の入ったファイル名を自動生成する. また、先頭に日付も自動的に挿入するようにしている. (defvar dail…

emacsのC-sをhelm-swoopで置き換える

最近emacsの検索のキーバインドであるC-sをhelm-swoopに置き換えてみている. helm-swoopに関する説明はこちらが詳しい emacs.rubikitch.com C-sのたびにバッファがかちゃかちゃしてうるさい気もするけど、使いこなせれば作業効率が上がりそうな気がする. 僕…

emacsの文字サイズの変更をよくあるキーバインドにする

emacsで文字サイズを大きくおよび小さくするキーバインドはC-x C-+, C-x C--に割り振ってあるが、最近は(macだと) ⌘-+/-に割り振ってあるものが多い. 以下のように.emacsに書いておくと, macならそのようなキーバインドになる. Linuxだと\Mのかわりに\Cにし…

auto-save-buffers-enhancedを使っているとtramp-modeがハングする

tramp-modeはemacsでssh越しにリモートのファイルを編集することができて大変便利な機能だ. しかし最近でtramp-modeを利用してssh越しにファイルを開こうとするとemacsが固まってしまい困っていた. 長いこと問題を放置してきたけれども, 色々調べてみるとaut…