Programming
catkin tools (catkinコマンド)を用いてソースコードをビルドする時に、ビルドオプションを変更したいことがあります。 たとえば、RelaseビルドとDebugビルドを切り替えたいときです。 このようなビルドオプションの切り替えには、catkin profileの機能が便…
find-name-diredは, あるディレクトリ以下のファイルの文字列を一括で変換したりする際に、便利な関数です。 qiita.com www.gnu.org しかし, .gitディレクトリが候補に含まれてしまうと, 何かと不便なことが多いです。 以下のようにfind-name-argを変更する…
ROSのパッケージをビルドするときにcatkin tools (catkin_makeではなくてcatkinコマンド)を利用してcompile_commands.jsonを生成するために、シェル関数を~/.bashrcとか~/.zshrcに定義しておくと便利。 開発時は定期的に気が向いたら実行する。 compile_comm…
display-fill-column-indicator-modeの使い方 display-fill-column-indicator-modeという, モードがemacs27から実装されている. これは, 指定した行に目印を表示して、横に長過ぎるコード・文章を書かないようにするminor modeだ. display-fill-column-indic…
customize-indentation-rules visual studio codeのtabの挙動をemacsのようにしたい. そのために, 以下の2つのextensionを利用する. * vscode-emacs-indent * customize-indentation-rules emacsにおけるtabを押したときの挙動は以下のようなものだ. tabを押…
emacs-slack内ではEnterでメッセージ送信がされるので、メッセージ内で改行するときにwebのインターフェイスなどと同様にShift+Enter, Ctrl+Enterでメッセージ内改行するようにしたい. ;; use Shift+Enter and Ctrl+Enter as newline (define-key slack-mode…
個人的にC-sでの検索に通常のisearch-forwardではなく, helm-swoopを利用している. しかしこうすると, keyboard macroを入力している間にhelmが走り、これがどうやら後ほどkeyboard macroを再生するときに問題があるようだ. keyboard macroを記録中かどうか…
emacsで左側に行数を表示するlinum-modeは重いことで有名だった。 軽くするためにはいろいろと設定しなくてはいけなかった. しかし, emacs26でついに行数表示のネイティブ実装であるdiplay-line-numbers-modeが実装された. (if (version<= "26.0.50" emacs-v…
flycheck-add-modeで設定する (flycheck-add-mode 'javascript-eslint 'web-mode) eslintの設定で, eslint-plugin-htmlが必要なので、その設定を忘れないようにする. module.exports = { ... "plugins": [ "html", ], ... }
helm-ls-gitはgitで管理されているファイルをhelmの候補に加えてくれるとても便利なパッケージ. これをhelm-miniなどを立ち上げたときにも使うようにしたいのだが、helm-source-ls-gitをhelm-mini-default-sourcesに加えるだけでは不十分だった。自分でhelm-…
el-get はパッケージ管理のためのelisp. 一度インストールした後に更新したいときは M-x el-get-update-allを実行するとよい.
helm-ls-gitを使うと, helmの一覧にgitで管理されてるファイル一覧が列挙されて便利. しかしデフォルトでvc-dirが利用されているためかうまく動かなかった. これをmagitを使うように設定したら意図通り動くにようなった. (require 'helm-ls-git) (setq helm-…
slackのメッセージにはchannelのidが入っているが、名前にはなっていない. 名前に変換するにはchannels.infoを使う必要がありそう. 以下はtypescriptを利用したサンプル. ライブラリには slack-node-sdkを利用 import { WebClient, WebAPICallResult, RTMCli…
line-number-at-posを使えば良い (line-number-at-pos (point))
pythonでdictオブジェクトを文字列に変換すると、utf8の文字がエスケープされてしまう. 'hoge: %s' % json.dumps({'text': 'ほげ'}) => 'hoge: {"text": "\\u307b\\u3052"}' これをエスケープしないようにするにはensure_ascii=Falseにすれば良い. 'hoge: %s…
micropythonを動かす環境はm5stackといったメモリが貧弱であることが多く, 普段は気にならないサイズでもMemory Allocation Errorが発生して読み込めないことがある. micropythonのurequestsパッケージは便利だけど、データを逐次的に読み出すインタフェイス…
beta.observablehq.com observableはjavascript版のjupyterのようなサービス. d3.jsを利用した美しい可視化が特徴的. どうやら今年の1月31日にサービスインしたらしい. Hello, world! Announcing Observable notebooks: a better way to code, discover, an…
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 lispコード. どこかから拾ってきたのかもしれないもの. 意外と便利. (defun increment-number-at-point () "Increase number at current cursor." (interactive) (skip-chars-backward "0123456789") (or (looki…
m5stackでmicropythonを使ってwifiを利用するときは, wifisetupを利用すれば簡単に実装できる. import wifisetup ただ、再接続などを実現するためにどうしても自前で実装したかったので試してみた. from m5stack import lcd import utime import network def…
helm-miniをC-x bに割り振ってバッファ選択に使っているのだが、現在のカーソルがある位置のシンボル(いわゆるthing-at-point)がデフォルトで渡ってしまい、バッファの選択に不自由していた. どうやら, helm関数の:defaultキーワードを与えないと、thing-at-…
code blockのフォントを変えないようにしたのは良いけど 、色も変わらなくなってしまった。 これはみにくいので色を設定するようにする. (set-face-attribute 'markdown-code-face nil :inherit 'default) (set-face-attribute 'markdown-inline-code-face n…
m5stackでmicropythonを動かして、spotifyで再生中の曲を表示するものを作っている. m5stackで再生中のSpotifyの曲の画像が出るようなのを作ってみた pic.twitter.com/59qnbYn47M— がらえもん (@garaemon) 2018年4月14日 その過程で、micropythonに入ってい…
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でフォントが変わるのが嫌だったのでこれを変更しないように設定。 emacを使うような人は、デフォルトで等幅フォントを指定してるんじゃないのかな? ;; Do not change font in code block (set-face-attribute 'markdown-co…
emacsでmarkdownを書いてる時に、markdown-modeでcode block (triple backquotes) にsyntax higlightを有効にできる. (setq markdown-fontify-code-blocks-natively t) コレはかなり良さそう. before after
メモをとるのにmarkdownはとても便利. emacsで作業中のメモをとるためのmarkdownを日別に自動的に作成するemacs lispのコード. ~/daily-notes/の下に日付の入ったファイル名を自動生成する. また、先頭に日付も自動的に挿入するようにしている. (defvar dail…
最近emacsの検索のキーバインドであるC-sをhelm-swoopに置き換えてみている. helm-swoopに関する説明はこちらが詳しい emacs.rubikitch.com C-sのたびにバッファがかちゃかちゃしてうるさい気もするけど、使いこなせれば作業効率が上がりそうな気がする. 僕…
emacsで文字サイズを大きくおよび小さくするキーバインドはC-x C-+, C-x C--に割り振ってあるが、最近は(macだと) ⌘-+/-に割り振ってあるものが多い. 以下のように.emacsに書いておくと, macならそのようなキーバインドになる. Linuxだと\Mのかわりに\Cにし…
tramp-modeはemacsでssh越しにリモートのファイルを編集することができて大変便利な機能だ. しかし最近でtramp-modeを利用してssh越しにファイルを開こうとするとemacsが固まってしまい困っていた. 長いこと問題を放置してきたけれども, 色々調べてみるとaut…