Vimのバッファの表示状態を自動で保存する
私は、メインのエディタとしてVimクローンのneovim を使っています。折りたたみ(fold)を覚えてそこそこ大きなソースコードの編集が楽になりました。しかしながら、nvim起動の度に折りたたみ状況が解除されて手間だったので、バッファ状態保存の方法を調べたら以下の方法に行き当たりました。
私は、メインのエディタとしてVimクローンのneovim を使っています。折りたたみ(fold)を覚えてそこそこ大きなソースコードの編集が楽になりました。しかしながら、nvim起動の度に折りたたみ状況が解除されて手間だったので、バッファ状態保存の方法を調べたら以下の方法に行き当たりました。
今日は、ssh-argv0という、ものぐさを極めた伝統的なシェルスクリプトを紹介します。
$ ssh example.com
とするのを
$ example.com
とssh の部分省略できるスクリプトです。これだけですが😅
GoogleCloudPlatform
(以下GCP)にはCloudFunctions
とCloudRun
という2つのサーバレスサービスがあります。簡単にいうとこの2つは動作環境が違います。CloudFunctionsは開発者のコードを固定されたOS環境で動かすためのものであるのに対し、CloudRunは開発者が持ち込んだDockerコンテナを動かします。どちらを利用するべきか考える順番はCloudFunctions→CloudRunです。双方の違いは「自由と簡単」のトレードオフです。
今回CloudRunを初めて使ってみましたので記事にしてみました。
n8n
にはEditImageという画像処理ノードがインテグレーションされていて、簡単な操作ならこれで十分処理ができます。EditImageは内部でGraphicsMagick
が使われていますが、とある理由からImageMagick
を使いたくなりshell-jsonrpc
を使って実装してみました。shell-jsonrpcは、以前の記事でバイナリデータに対応するようになっています。
このブログ内のリンクが_blankだったりそうでなかったりと統一されてないなかったので以下のようなJavascriptで一括修正することにしました。
基本的にtarget=_blankが設定されているみたいなので、内部向けリンクについてa要素のtarget属性を削除する。
今日は以前の記事HackMD CLIをJSON-RPC経由で使う でで作ったhackmd-cli-api をn8n に組み込んでHackMDの日次バックアップを実装してみました。
できあがったのがこちら。

リモート環境だけでなくローカル環境でも tmux を使っていて、リモート環境でうっかり tmux を起動するとローカルの tmux の中に入れ子でリモートの tmux が起動します。この状態だとすべての tmux がプレフィクスが外側(ローカル側)に捉えれてしまって内側(リモート側)の tmux が制御不能となります。これを防ぐために、内側の tmux プレフィクスのキーバインドを変えるという方法 もあるのですが、操作が複雑で誤動作も多くなるのでもういっそ tmux から tmux を起動した場合は起動を抑制するようにしようと思います。
traefik
で自分で建てたウェブサービスにパスワードを設定する方法を紹介します。以前の記事(1つのサーバにたくさんのWebサービスを詰め込む方法)
で使ったwhoamiサービスを例に設定方法をメモします。
以前の記事、shellコマンドをJSON-RPC経由で実行する にて作ったshell-jsonrpc ですが、ふとバイナリファイルの扱いがどうなっているか不安になって調べてみました→だめでした、ので改良してみます。
tmuxは、新しいウインドウを開くときセッションを起動したカレントディレクトリで開きます。つまり、~/でtmuxを起動後、ウィンドウの内部で~/workに移り、この状態で新しいウィンドウを開くと~/がカレントディレクトリの状態で開きます。現在の作業の継続なので~/workで開いてほしいということでネットを検索したら解決方法を見つけました。