- skkeletonservがディスクの肥やしになっていたので雑に公開した
- 車輪の再発明がてら、flake-compatもどきを作っていたけど、結構学びがあった
outputs = self // (flakeNix.outputs (inputs // { self = outputs; }));みたいな書き方をすると、outputsの呼び出しに渡されるselfが循環するので面白い- ここだけは書き方が分からなくて答えを見てしまった
- ddu.vimの設定を詰めてた
- waitのかけかたミスってて、中途半端に設定が適用された状態で立ち上がっていたので適切にかけるようにした
- nix-prefetch-jsrなるものを作った
@std/[email protected]みたいなパッケージ指定子を与えるとdeno使ってfetchしてキャッシュした上でNix式を生成してくれる
- nix-prefetch-jsrを元にdeno.lockからvendorディレクトリを生成するNix式を吐くプログラムを書いた
- 今の所jsrで完結するプログラムにしか適用できないけど、それなりに複雑なプログラムも動いた
- 将来的にはdenopsプラグインをパッキングしたい
Neovimの適当overrideがtree-sitterの更新によりぶっ壊れてあれこれしてる内に、 USE_BUNDLED によるビルドをしたら安定するんちゃうかということに気付いたため、Nix内で完結できないか試していた。
幸い cmake.deps/deps.txt にそのまま使える形で依存の記述があるので、Nixで使える形に変形してビルドが通ることを確認した。
ビルドにより時間がかかるようになったが、安心してアップデートをかけられるようになった。
公開したらnatsukiumさんよりdepsのビルドだけ別derivationにした方がいいとの指摘を頂いたので、そのように手直ししていた。
builtins.path を適用して、depsのビルドに必要なファイルだけ分離したらいいのだが、ここで小一時間バージョン上げると必ずリビルドが走るという問題にハマっていた。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| pkgs ? import <nixpkgs> { }, | |
| neovim ? import ./neovim-src.nix { inherit pkgs; }, | |
| }: | |
| let | |
| lib = pkgs.lib; | |
| deps = lib.pipe "${neovim}/cmake.deps/deps.txt" [ | |
| builtins.readFile | |
| (builtins.split "[\n]") | |
| (builtins.filter builtins.isString) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| pkgs ? import <nixpkgs> { }, | |
| }: | |
| let | |
| emacs = pkgs.emacsPackages.withPackages (epkgs: [ epkgs.ddskk ]); | |
| init-directory = pkgs.linkFarm ".emacs.d" { | |
| "init.el" = ./init.el; | |
| "skk.el" = pkgs.substituteAll { | |
| src = ./skk.el; |
- lexima.vim導入して括弧抜けのやつ設定してみた
- 自分でプラグインマネージャを書いてみて気付いたけど、Fuzzy Finderでプラグインディレクトリにアクセスするやつに結構依存しているらしい
- Melpaからddskk突っ込むとskk-setup.elが無いからskk-isearchが使えない問題をどうにかしたref
- fzfをMRU等で使う際には
--scheme historyを指定するといいらしい - 八十八ヶ所巡礼を垂れ流してたら親がハマりかけてて驚いてる
- Nixを使うと、dein.vimがやってるような具合で設定を切り出したりして繋ぎ合わせたり、プラグインディレクトリをマージしたりといったキャッシュ作成をソースからいい感じに行えるので楽しい
- VPSに突っ込んでたArch LinuxのNixパッケージがぶっ壊れてるので公式インストーラーで放り込むことにした
- 過程で色々壊れて何度か構築かけ直したのでArch Linux難しいなという気持ちになった(NixOSが運用する分には楽すぎるだけである)
- Nixのfetchgit完全に理解した
- builtinsの方はめんどいので(ストアの外にキャッシュ作られる)とりあえずpkgsの方使えばよさげ
- revision hash指定してfetchできるの知らなかった
- Emacsのxrefのジャンプした後に光るやつの実装を探してた
- とりあえず
xref--show-pos-in-bufから呼ばれるxref-after-jump-hookに突っ込まれてるのを確認した pulse.elというスクリプトに実装がある。細切れのタイマーを使ってぬるっとアニメーションさせてるらしい
- とりあえず
- NixでVimのパッケージマネージャを作ろう計画始めた
- Emacsのsh-modeで
/usr/bin/env -S bash -uみたいなパターンが使えない件を掘っていたらauto-mode-interpreter-regexpに辿り付いた- 地獄みたいな正規表現が見える
/usr/bin/env bashは認識するのでこれがいい気がする
- Magitのrebaseの味を覚えてしまったのでVimでも似たようなことをやりたくなってきた
- ゴリラ.vimの最後の方だけ見ていたけど、同じ物を視聴しながらみんなでわいわい言うのは楽しいな
- yt-dlpを動かすためにサクッと
shell.nixを書いた。{ pkgs ? import <nixpkgs> { },