スキップしてメイン コンテンツに移動

投稿

ラベル(Setting)が付いた投稿を表示しています

dpp.vimの設定でハマったアホな話

dpp.vimの設定でハマったアホな話 本記事は Vim駅伝 2024å¹´11月13日の記事です。 気がつけば11月も折り返しが近づいてきていて「2024年もあと1ヶ月半か~時間の流れが早すぎるってばよ……」と思っているArcCosineです。皆様いかがお過ごしでしょうか。 今日の記事は、 dpp.vim の設定をしていてハマったアホな話になります。 忙しい人のための要約 インストールパスを間違えない 便利な自動設定コードを活用 dpp.vimの導入をスムーズに もう少し詳しく知りたいと思った方は、続きをお読みください。 dpp.vimとは dpp.vimとは Dark Powered Plugin manager for Vim/NeoVim の事で、俗に言うshougowareにおける最新のVimプラグインマネージャーです。 この一つ前は、 dein.vim と呼ばれるプラグインマネージャーが活用さていました。dein.vimは中々画期的なプラグインマネージャーでした。dein.tomlやdein_lazy.tomlといった TOMLファイル を活用してプラグインの管理が色々出来るという事で、飛びついたのもありますし、何よりも 高速化 という言葉に弱い私にとっては大変魅力的なツールでした。しかし、dein.vimにも弱点が無かった訳ではありません。その辺の歴史に関しては、 プラグインマネージャーの歴史と新世代のプラグインマネージャー dpp.vim という記事が大変詳しいです。 この記事は実は非常に重要な 二次情報 で(一次情報はgithubに挙げられているソースコード。プログラマは黙ってソースコード読みなさいというストロングスタイル)、ここに書いてある設定を読み込むならば、誰でも(誰でもとは言っていない)dpp.vimを導入することが出来るようになっています。 記事の前段部分があまりにもボリューミーなため、本当に必要な設定に関しては一番最後の方に書いてある上に、これはどういう事をしますという説明が省かれているため、初見さんにはかなり厳しい内容となっています。 とは言え、そういう 思想 のプラグインなので、楽に導入したいという人は、もっと楽に導入出来るプラグインマネージャーを採用すれば良いのです。無理して苦労して導入している人...

ChromeOSでNeovim環境を構築する

似非ChromebookにNeovimをインストールする 先日の記事 で、Let's NoteにChromeOSを入れて、似非Chromebookを作成した。 ついでに、Neovimも走らせちゃおうというのがこの記事である。 この記事は、 Vim駅伝 の2024-08-09の記事である。 本日のお品書き。 Linux環境を整える Neovimのダウンロードとインストール もう少しいいターミナルを入れる 好きなフォントをインストールする Linux環境を整える Chromebook で Linux をセットアップする の記事を参考にすれば良い。 設定→ChromeOSについて→デベロッパーを選択し、Linux 開発環境をONにすれば良い。 ディスク領域を10GBほど取るけれども、似非Chromebookならば十分にディスク領域があるので、特に問題にはならないと思う。 これは余談なのだが、インストールされるLinux環境はDebianなので、aptが使える。 Neovimのダウンロードとインストール インストールページ に行き、Linuxのインストール方法を実行する curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz sudo rm -rf /opt/nvim sudo tar -C /opt -xzf nvim-linux64.tar.gz この辺はいつもどおりという感じ。 最後に、 /.bashrcに下記を追記する。vimで /.bashrcを開き、最終行に書き込めば終わり。 export PATH="$PATH:/opt/nvim-linux64/bin" これで、Neovimのインストールは完了。 そのまま、 source ~/.bashrc を実行し、 nvim とすると、Neovimが立ち上がる。 もう少しいいターミナルを入れる ChromeOSが提供するターミナルでもいいが、もう少し使い勝手の良いターミナルをいれる。 mate-terminal をインストールする。 aptを使うので、インストールは下記のコマンドを叩くだけで良い。 sudo apt insta...

WSL2に立てたサーバに、外部端末からアクセスする

WSL2に立てたサーバに、外部端末からアクセスする 最近、絶賛WSL2で開発中なのだが、ちょくちょく外部端末からアクセスしたくなる事が多くなってきた。 wsl2 で立てたサーバーにローカルネットワーク内の他の端末からアクセスする 上記記事を 丸パクリ 参考にして、自分の環境用にカスタマイズしたスクリプトを公開する。 ポートを開放するスクリプト ポートを開放するスクリプトは下記の通り。 コピペで使えるはず。 コメント行の下に空行を入れないと、その下の文がコメント扱いされる という罠があったので、注意。 僕はこのスクリプトに、 server_conf.ps1 という適当な名前をつけて、 PowerShell で実行した。 実行すると、管理者権限のPowerShellが立ち上がって勝手に色々やってくれる。 $ports 変数の所を調整すれば、色々と好きなポートを開けることが出来るので、自分の環境に合わせて変えて欲しい。 # 管理者権限で実行 # コメントの下に空行を入れないと、その下の文はコメント扱いされるので、注意 if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")) { Start-Process powershell.exe "-File `"$PSCommandPath`"" -Verb RunAs; exit } # WSL 2 の IP アドレスを取得 $ip = bash.exe -c "ip r |tail -n1|cut -d ' ' -f9" if( ! $ip ){ echo "The Script Exited, the ip address of WSL 2 cannot be found"; exit; } # 通信ポートを開く $ports=@(3000, 5173); $ports_a = $ports -join ","; # ファイアウォールの例外ルールを削除 iex ...

開発環境の羅列 2023 秋

開発環境の羅列 2023 秋 自分の現在の開発環境について適当に羅列する。備忘録的な感じ。 OS Windows 11 WSL2 on Ubuntu Mac OS X OS に関しては、メイン端末は Windows 11 に WSL2 を入れて、そこで Ubuntu を走らせている。 日常のメモ書きから、プログラム開発まですべて WSL2 上の Ubuntu でカバーできている。 もしかして、Windows11 無くても生きていけるのではという錯覚に陥りがちだが、Word、Excel、PowerPoint を編集する作業があるので、多分、まだまだ Windows は必要。 Max OS X に関しては、Intel Mac のマシンを 11 年近く使っている。やべー。 こんなに長く使う予定は無かったのにどうして……。 でも、Mac 環境が無いと Safari の動作が確認できなかったりするので、しばらくは Mac は必要だろう。 M1 Mac 欲しいなぁ。 Terminal WezTerm Terminal に関しては、WezTerm に乗り換えてからずっと使っている。Win/Mac 共に使えるのが良いことと、同じ設定が使えるので愛用している。 今のところ、特に不満なく使っている Editor Neovim Vim エディタに関しては、相変わらず Vim を使っている……ように見せかけて、完全に Neovim へ移行した。これは、 Shougo-ware をメインで使っている関係上、Vim で四苦八苦するより、Neovim でぺちぺちやった方が早く環境構築が出来るからだ。 Neovim だから良いという訳ではないが、積極的に Vim を選ばなくても良い時代になったと言える。 ちなみに、エディタの起動時間は、WezTerm を立ち上げて、nvim とタイプして起動するまで 5 秒掛からない。この起動速度+十分に精錬された開発環境は VSCode を上回っている。LSP も有効化しているので、VSCode を積極的に使う理由が、今のところ僕には無い。流石に今のマシンスペックだと、VSCode は 10 秒で起動するので、たかが 5 秒くらいと言われるかもしれないので、起動速度が速い!すごい!とは言い切れないのが現状。実は、VSC...

NextJS を 13.5 に上げたら、Netlify で API Routes が使えなくなった

NextJS を 13.5 に上げたら、Netlify で API Routes が使えなくなった 基本的に、NextJS をフレームワークとして使う場合は Vercel を使っていれば、変なトラブルに巻き込まれる事はないのだが、今回 netlify で作っていたアプリがコケたので、その知見を書き記したい。 事象 API Routes が全く動作しなくなった。エラーとしては 502 (Bad Gateway) が出ているが、実際にログを精査すると、 Runtime.ImportModuleError: Error: Cannot find module 'styled-jsx/style' というエラーが出ている事が分かった。 検索結果 Runtime.ImportModuleError: Error: Cannot find module 'styled-jsx' - Nextjs + NextAuth - #2 by hrishikesh この記事を見ると、@netlify/plugin-nextjs の 4.38.0 以上を入れろとなっている。だが、これをやっても駄目だった。 最終的な解決策 色々試して、NextJS の 13.5 以上は現在 netlify で API Routes が使えない事が分かったので、 NextJS をダウングレード して対応した。 最近、自分は bun を愛用しているので、 bun add [email protected] を実行して、package.json の中身を更新するだけで良かった。 完走した感想 ぬわああああん疲れたもおおおおん。 コイツいつも疲れてんな。 正直今回のバグはエグくて、いわゆる環境バグ。 おま環と言われても仕方がないレベルなので、再現性はもちろん、解決方法も簡単には見つからない。 今回、泣く泣くダウングレードという策を採用したが、もう少し深い所での解決を出来るようになりたい。

Sesami4 を MacroDroid で操作する

Sesami4 を MacroDroid で操作する 以前に IFTTT で操作していた Sesami4 だが、IFTTT のアプリの Geofence がほとんど効かなくなっていたため、代替アプリを探していた。 そして、ようやくやりたいことが出来るアプリが見つかった。それが MacroDroid である。 使い方は今まで通りで、トリガーとアクションを設定するだけで良い。 アクションの具体的な設定は、 リクエストメソッド は POST URL には GAS をデプロイした時に発行された URL ( https://script.google.com/macros/s/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/exec)を指定 リダイレクトを許容するにチェック コンテントボディのコンテントタイプに application/json コンテントボディには、 は { "password": "任意のパスワード", "userName": "任意の名前", "action": "unlock" } 任意のパスワードは、エンドポイント認証用ダイジェストの時に指定したパスワード。 userName の名前は sesami に表示される名前なので、適当に action には unlock、lock、toggle のどれかを指定する GAS をトリガーとして使う場合、 リダイレクトを許容する にチェックが入っていないと動作しなかったので、そこだけ注意が必要だ。 それ以外のつまずきポイントはない。 使用感について まず、ちゃんと Geofence が動作しているのがありがたい。 IFTTT は、最初の数回はちゃんと動くのだが、すぐにポンコツ化して全く反応しなくなった。 アプリの作り込みが甘すぎるんじゃないかな。 まあ、IFTTT にとって、アプリの作り込みなんて本質じゃないから、気合い入れて作ってないんだろうけれど。 その点、MacroDroid はこのアプリが命なので、ちゃんと動作するように作られており、...

骨董品 Bluetooth keyboard を Android Tablet につなげる

骨董品 Bluetooth keyboard を Android Tablet につなげる。 部屋の中に iGo Think Outside Stowaway Ultra-Slim Keyboard が転がっていた。 LooxU とつなげるために買った気がするけれど、そうでないかもしれない。 そう言えば、このブログは LooxU を購入したのがきっかけで始めたブログだ。 探してみたら 黒歴史 が見つかった。 やはり、人間なんでも書いておくべきである。 自分が持っているのは、iGo ブランドになった、Stowaway Ultra-Slim Keyboard で、多分この記事を書いて数カ月後くらいに手に入れたのだろう。明確な記憶が無いが、確か個人輸入で購入した気がする。 あの頃は大分チャレンジャブルだったなぁ。 という訳で、思い入れも深く、中々捨てられなかった一品。 という事で、同じく部屋に転がっている Android Tablet に繋いでみた。 まず、電源の入れ方とか、Bluetooth 待機モードとか色々忘れて、英語圏のマニュアルを探し出すことから始めた。 簡単にまとめると 電源の on/off→ スライドして開ければ on、閉じれば off。 Bluetooth 待機モードへの入り方 →Ctrl+Blue Fn+Green Fn→ 緑のランプが点滅すれば、OK。 こんな感じ。 後は適度に Android の設定をすれば普通に繋がって普通に使えた。 ヤバい。 この Stowaway Ultra-Slim Keyboard は、取外し可能な PDA 用のスタンドが付いているのが一番のポイント。 PDA スタンドというゾンビが令和の時代になって蘇るだなんて誰が想像しただろうか、いや、出来ない。 9 割ぐらいは冗談として、1 割ぐらいはマジだ。 実際にタイピングテストをしてみたけれど、存外悪くない。 キー配列が、印字されているのとアンマッチだが、そこは脳内キー配列を覚えればいいので、慣れるまで打ち込めば良い。 それにしても、2007 å¹´、あるいは 2008 年に購入した Bluetooth Keyboard が未だに使えることに感動する。 15 年間という漬け込み時間を経由して、奴は蘇った。 15 年間も共通で使えるプロトコルが維持されてい...

Next.js 13 以降で PWA を有効にするその2(開発環境にも対応)

Next.js 13 以降で PWA を有効にするその2 多分、その内 next-pwa が対応するので、待ってれば大丈夫だと思うが、どうしても今すぐに対応したい人用のパッチコード。 バージョンは、 next ^13.4.2 next-pwa ^5.6.0 となっている。 修正するファイルは、next.config.js next.config.js /** @type {import('next').NextConfig} */ const path = require("path"); const isDev = process.env.NODE_ENV !== "production"; const withPWA = require("next-pwa")({ dest: "public", disable: isDev, buildExcludes: ["app-build-manifest.json"], }); const generateAppDirEntry = (entry) => { const packagePath = require.resolve("next-pwa"); const packageDirectory = path.dirname(packagePath); const registerJs = path.join(packageDirectory, "register.js"); return entry().then((entries) => { // Register SW on App directory, solution: https://github.com/shadowwalker/next-pwa/pull/427 if (entries["main-app"] && !entries["main-app"].includes(registerJs)) { ...

ssh config で複数の秘密鍵を切り分ける方

ssh config で複数の秘密鍵を切り分ける方法 ようやく、納得の行くやり方が出来たのでメモ。 まずは設定 ~/.ssh/config に、下記の設定をする。 # github プライベートアカウント Host github.com HostName github.com User git IdentityFile ~/.ssh/githubkey1 IdentitiesOnly yes # github 仕事用アカウント Host github.com.sub HostName github.com User git Port 22 IdentityFile ~/.ssh/githubkey2 TCPKeepAlive yes IdentitiesOnly yes 解説 ポイントは、Host 名に必ず、トップレベルドメインまで入れる事。 Host github ---> NG Host github.com ---> OK Host github.com.subdomain --->OK ちなみに、最近まで一番上のトップレベルドメイン省略で設定していたせいで、何にも参照していない状態だった(辛い)。 ~/.ssh/config に設定する際には、必ずトップレベルドメインまで指定しましょう。 さて、自分は仕事の関係上、プライベートアカウントと仕事用アカウントを2つに分けて運用している。 あとはこれを使い分けるために色々やってるのだが、仕事用アカウントのリモートレポジトリを下記のように設定している origin [email protected]:仕事用アカウント名/レポジトリ名.git ポイントは、 [email protected] で開始している所。 こうする事で、仕事用アカウントのレポジトリは、仕事用の秘密鍵を参照するようになる。 便利。 この設定は、クローン時に下記のコマンドを実行すれば良い git clone [email protected]:仕事用アカウント名/レポジトリ名.git その...

Next.js 13 以降で PWA を有効にする

Next.js 13 以降で PWA を有効にする 2023/5/28追記: さらに良い設定を、新しい記事に書いたので、そちらを参照の事。 多分、その内 next-pwa が対応するので、待ってれば大丈夫だと思うが、どうしても今すぐに対応したい人用のパッチコード。 バージョンは、 next ^13.4.2 next-pwa ^5.6.0 となっている。 修正するファイルは、next.config.js next.config.js /** @type {import('next').NextConfig} */ const path = require("path"); const isDev = process.env.NODE_ENV !== "production"; const withPWA = require("next-pwa")({ dest: "public", disable: isDev, exclude: [ // add buildExcludes here ({ asset, compilation }) => { if ( asset.name.startsWith("server/") || asset.name.match( /^((app-|^)build-manifest\.json|react-loadable-manifest\.json)$/ ) ) { return true; } if (isDev && !asset.name.startsWith("static/runtime/")) { return true; } return false...

blueskyを始めて、独自ドメインを設定した

bluesky始めました 今話題の bluesky の招待コードをもらうことが出来たので、blueskyを始めました。 画面としてはこんな感じ。 見慣れたTwitterのUIで作られています。 これ、アカウントを作ると最初は、「ユーザ名.bsky.social」みたいになるのですが、独自ドメインを持っている人は、自分のドメインを設定することが出来ます。 以下、その設定方法のメモです。 Blueskyのスクリーンネームに独自ドメインを設定する方法 これから仕様が変わるかもしれませんが、2023å¹´4月現在、PCからも blueskyへのアクセスが出来ます 。このページに招待コードを入れて、アカウントを作った後の話です。 アカウント作成にアプリはなくても大丈夫です。 さて、スクリーンネームに独自ドメインを設定する方法ですが、「Settings→Change my handle→”I have my own domain"」とクリックすると下記の画面が表示されます。 Enter the domain want to use と書いてあるフィールドに、自分が持っているドメインを入力すると、下部にどういうDNS設定をすればいいかが表示されます。 TXTレコードのサブドメインとして_atprotoを設定して、did=did:plc:ほにゃららみたいな値を設定すればいいだけです。 Value-domainで設定する 自分は、Value-domainを使っているので、こういう感じで一番最後に設定しました。 他のDNSサーバでも同じだと思いますが、TXTレコードに txt _atproto did=did:plc:ほにゃらら と言った感じで、設定すれば良いです。 浸透したかどうかを whatsmydns で確認後、Blueskyの画面に戻り、Verify DNS RecordとすればOK。 ちゃんと浸透していればスクリーンネームが更新されます。 blueskyの感想 まだ始めてから数日なので、雰囲気を掴み取れてないのですが、mastodonと違って、TLは自分がフォローした人しか流れてこないので、相当に穏やかな流れになっています。 フォローしていない人の情報を眺めてカオスな感じのmastodonもありますし、まったりとしたローカルタイムライ...

帰宅した時に、Sesami4 を自動解錠するよう IFTTT で操作する

Sesami4 を IFTTT で操作する 先日、スマートロックの Sesami4 を購入した 。 使い始めて 1 ヶ月ちょいになり、不満点が出てきた。 手ぶらで解錠がロクに効かない Android のウィジェットが常時表示はウザい オートロックを有効にしてると締め出される(当たり前だよなぁ!?) と言った感じ。 この中では特に手ぶらで解錠がロクに効かないのには相当不満があった。 原因はシンプルで、BLE(Bluetooth Low Energy)が上手く動作していなかった。 観察した結果だが、動作する時はちゃんと動作するが、ダメな時はとことんダメ。 Sesami の作り込みが甘いのか、純粋に Android の反応が悪いだけなのか、どちらなのか判断は付けられない。 その両方である可能性もあるが、いずれにせよこれでは快適な生活が送れない。 Sesami は API を公開しているので、それを使ってリモートコントロールする事にした。 あ、一応 Sesami の WiFi モジュール は導入している前提。 これがないと今回の Tips は使えないので、気をつけるように。 今回は スマートロックのセサミをさらに便利にする(アレクサからパスコードレスで解錠&オートロック化) の記事をそのままパクってるだけなので、その記事を読めば概ね同じことが出来る。 Sesami API キー取得 公式ページ にアクセスし、メールアドレスを入力する。 認証コードが送られてくるので、それを入力すると API 取得画面が表示される。 スマホアプリの「このセサミの鍵をシェア」から QR コードのスクリーンショットを撮って、API 取得画面にアップロードする。 そうする事で、デバイスの UUID と SecretKey が取得出来る。 API キー デバイスの UUID デバイスの SecretKey GAS のエンドポイント認証用のハッシュ値を用意する 下記のコマンドを実行して、認証用ハッシュ値を取得する。 任意のパスワードは、IFTTT との連携に使用するので、メモしておく事 $ echo -n '任意のパスワード' | shasum -a 512 自分は WSL2 上で実行して取得した。 SHA512 Onl...

WSL2にfishを導入した

WSL2にfishを導入した 最近、WSL2をカスタマイズするのにハマっている。 カスタマイズを始めると、色々とやりたくなるのは開発環境構築あるあるで、以前から気になっていた fish を導入することにした。 fish のインストール sudo apt install -y fish aptで入れるだけなので、簡単。 chsh which fishでパスを確認し、 chsh を実行する。 自分の場合は、「/usr/bin/fish」にインストールされていた。 fisher のインストール fishのプラグインマネージャーにはfisherを採用 curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher これもワンライナーでインストール出来るので楽ちん。 fisherプラグインを入れる テーマ まず、テーマを入れる。 fisher install oh-my-fish/theme-bobthefish これで、いい感じのテーマが入る。 今使っているLightlineライクなテーマで個人的には気にいっている。 もし、文字化けするようであれば、weztermのフォントを変えればOK。 weztermの設定に関しては、 前の記事 に書いてある。 z 補完を色々とやってくれるzも入れた。 fisher install jethrokuan/z 「z ディレクトリ名」を入力した後、TABキーで補完してエンター押せば一発移動してくれるので超便利。 オススメ。 他にも何かオススメのプラグインがあったら教えてください。 環境変数を適用する このままだと、何故かdenoを認識してくれなかったので、環境変数を適用する。 ファイルの場所は、 ~/.config/fish/config.fish 。 if status is-interactive # Commands to run in interactive sessions can go here # deno set -x DENO_INSTALL...

Windows11 on WSL2 + wezterm + Neovim = 最強開発環境

Windows11 on WSL2 + wezterm + Neovim = 最強開発環境 これは、恥を忍んで書いている。 以下の点を守れば、Neovim使いにとって最強の開発環境を手に入れることができる。 開発用ディレクトリをWSL内に入れる Terminalをweztermにする wezterm内でNeovimを使う 開発用ディレクトリの位置 さて、まずは開発用ディレクトリの位置に関してだが、これはWSL内に入れると非常に快適に動作してくれる。 何を当たり前の事をと思われるかもしれないが、案外気が付かずに開発している人もいるかもしれないので、テキスト化する。 実は、自分は、 /mnt/d/hogehoge のようなディレクトリ下に開発用ディレクトリを置いていた(今もいくつか置いてある)。 これで問題なく開発できるプロジェクトもあるが、WSL経由でやろうとすると 死ぬほど遅い 開発体験になる。 もう既に識者の方は気がついていると思うが、/mnt/cや/mnt/d以下のアクセスはWindows経由でのアクセスになる。つまり、wsl→仮想ネットワーク→Windowsという遠回りをしてファイルにアクセスしているのと同義であった。 これは、非常に遅い開発体験になっても仕方がない。 自分は、開発ディレクトリを /home/ユーザ名/develop 以下に移動して、めちゃくちゃ快適な開発体験が出来るようになった。 yarn installがやけに遅かったり、yarn devでの起動が異様に遅かったのは、開発ディレクトリの位置が悪かったからという非常にお粗末な環境設定のせいだった。 もし、WSLで開発しようと思っている人は、ちゃんとWSL内にファイルを置いて開発する事。 試してないけれど、シンボリックリンクで/mnt/cとか/mnt/dに繋ぐと同じように遅延が発生すると思われるので、絶対辞めるように。 ちなみに、この情報は英語圏には大量に出回っており、既知の事実として知れ渡っている。 なんてこったい。 Weztermの設定 Cross Platformで使えるWeztermが非常に良い。 自分はとりあえず最小構成で使うようにしている。 local wezterm = require 'wezterm' local act = wez...

ddu-source-rgを導入した

ddu-source-rg を導入する Slack の vim-jp に、grep 何を使っていますか~と問いかけたら、ddu-source-rg 使ってるよ~という情報をいただき、早速導入した。 まずは、 本家 に書いてあるような設定を施す。 ripgrep のインストール まずは、 ripgrep をインストールする。 すでに導入済みの人はこのステップを飛ばして良い。 自分は Windows 環境なので、 Scoop で導入した。 Scoop を導入していない人は、Scoop を先に導入する事。 PowerShell で下記コマンドを叩き込めば、勝手にインストールされる。 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Needed to run a remote script the first time irm get.scoop.sh | iex Scoop の導入が完了してるならば、ripgrep をインストールする。 scoop install ripgrep ddu-source-rg の導入 ddu-source-rg は、Plug やら dein やらでインストールする。 自分は、dein.toml で管理しているので、dein.toml に [[plugins]] repo='shun/ddu-source-rg' を追記しただけ。 後は、dein#install()を実行。 ddu-source-rg の設定 本家にはシンプルに call ddu#custom#patch_global({ \ 'sourceParams' : { \ 'rg' : { \ 'args': ['--column', '--no-heading', '--color', 'never'], \ }, \ }, \ }) と書いてあるので、ddu#custom#patch_global に同じ設定をすれば良い。 ごちゃごちゃしてるけれど、自分のはこんな感...

KittyにUDEV ゴシックを導入

Kitty で UDEV ゴシックを有効にする 最近、Mac OSの方では、 Kitty を愛用している。 理由としては、GPUベースで動いているからヌルヌルだという記事をどこかで読んで飛びついた次第。 VimとGitがあれば、後は大抵何でもできるのだが、最近導入した Fern でフォルダアイコンとかをいい感じに表示したい欲が生まれた。 ターミナルのフォント変更についてネットで調べても、日本語記事はあまりなかった。 公式のドキュメントを読んだら kitty +list-fonts を実行して、その一覧にあるフォントを指定しろと書いてあったので、Windowsでも導入している UDEVゴシックフォント のNerd版を入れた。 UDEVゴシックフォントインストール後、kitty +list-fontsを実行し、そこに記されているフォント名を控え、kitty.confに追記した。 font_family UDEV Gothic NF Regular bold_font UDEV Gothic NF Bold italic_font UDEV Gothic NF Italic bold_italic_font UDEV Gothic NF Bold Italic font_size 18.0 font_sizeは自分の環境でのサイズなので、各自好きなサイズへどうぞ。 UDEVゴシックフォントをダウンロードする時は、UDEVGothic_NF_vX.X.X.zipと書いてある方をダウンロードする事。 NerdFont無いと、漢字が表記されて魔界になるので、注意。

electronのリリース用ファイルサイズを半分以下にした

electronのリリース用ファイルサイズを半分以下にした 本日、 きつねゆっくりリネーマーVer 0.0.2 をリリースした。 基本機能は変わっていないが、リリース用のファイルサイズを半分にした。 変更箇所 変更箇所は、package.jsonのbuild。 変更前 "files": [ "dist/**/*" ] 変更後 "files": [ "!.git", "!.dist", "dist/background.js", "dist/index.html", "dist/preload.js", "dist/assets/**/*", "node_modules", "package.json" ], 変更したのはここだけ。 以前のバージョンは、dist以下全部をビルドするようになっていたが、今回は、ビルド用のファイルを個別に指定するようにした。 node_modulesやpackage.jsonやら、色々書いているが、多分要らない。 今後、実験してこの辺はアップデートしていく予定。 推測 以前のビルド設定だと、dist以下を全部包含して作っていたため、同じファイルを2回パッキングしていた可能性がある。 ひどい。 まあ、何も知らないで作るとこうなるという話なので、もし似たような件で悩んでいる人がいたら参考にしていただければと思う。

ddu.vim introduction

ddu.vim へ移行する 昨日、重い腰を上げて、 denite.vim から、 ddu.vim への移行を行った。 基本的なセッティッグは、ddu.vim の README.md を読めばある程度出来る。 とは言え、ddu.vim の理念を理解していないとそもそも使えないプラグインなので、理念を含めて説明していきたいと思う。 ddu.vim とは ddu.vim は、 Shougo さんによって開発されている、Vim プラグインである。 Unite.vim や denite.vim の流れを組むプラグインであり、物凄く雑に説明すると、Vim で操作できる全てをコントロールしようというプラグインである。 雑すぎねーか。 Unite.vim からこのコンセプトは変わっていないが、Unite.vim は速度が遅いという欠点を抱えていた。 そこで、速度改善のために、pure Vim Script から脱却し、Python3 を採用したのが、denite.vim。 しかし、denite.vim は Python 回りのでトラブルが多かった。 そういう地獄のような状況で、 denops.vim というプラグインが登場する事で環境が一気に変わった。 denops.vim は、 Deno を Vim で使えるようにするプラグインで、これがべらぼうに Vim と相性が良かった。 早いし、色々なことが出来るなど、非常に柔軟な対応を出来るようになった。 Python ちゃんは要らなかったんや……。 簡単にまとめると、 ddu.vim は全てを繋ぐ 環境依存性を著しく下げる denpos.vim の登場により、環境構築が容易に Deno を採用することで高速性と柔軟性を担保 と言った、まさしく次世代のプラグインと呼ぶことが出来る。 ddu.vim の概念 ddu.vim には、 UI sources filters kinds という概念があり、これらも合わせてインストールが必要である。 それぞれ好きな物をインストールすれば良いと書いてしまえばそれで終わりなのだが、初めて導入する人にとっては何を言っているのか意味が分からないと思う。 UI は、文字通り、ユーザーインターフェースである。 とりあえず、ファジーファイン...

gVim(not Kaoriya)を半透明化する

gVimを半透明化する Kaoriya版を捨てた ので、gVimの半透明化が出来ていなかった。 とはいえ色々検索したら、半透明化が出来ることが分かったので、その方法を記載する。 これは、githubのreleaseから、インストールしたユーザ向けの記事である。 VimTweakのダウンロード .gvimrcへの記述 VimTweakのダウンロード VimTweak から、ファイルをダウンロードする。 CodeのDownload Zipから、ファイルをダウンロードして、展開する。 vimtweak64.dllをgvim.exeと同じディレクトリにコピーする。 自分の場合は、 C:\Program Files\Vim\vim82 だったので、そこにコピーした。 .gvimrcへの記述 gVim on Windowsを半透明にしてみた を参考に、以下のコマンドを.gvimrcへ記述する autocmd guienter * call libcallnr("vimtweak64.dll","SetAlpha",220) 半透明の度合いは、お好みで。 個人的には、220が好きだけれども、200~220の間ぐらいが見やすさ的に丁度良いと思っている。

PlemolJP導入

PlemolJP を導入した 思い立つことがあり、 PlemolJP をインストールする事にした。 自分は、PowerLine を使っているので、PlemolJP Nerd Fonts 版である、PlemolJP_NF をダウンロードしてインストールした PlemolJP の releases から、PlemolJP_NF_vx.x.x.zip をダウンロードする。 zip を展開し、PlemolJPConsoleNF-Regular.ttf をインストールする set guifont=PlemolJP_Console_NF:h18 を gvimrc に書く(フォントサイズはお好きに) ちなみに、これは Windows 限定の設定なので、Mac や Linux などで導入する際には、別の方法をオススメする。 余談 gvimrc に指定するフォント名が微妙にわかりづらい。 普段は、 set guioptions-=m してメニューバーは出していないが、今回は :set guioptions+=m を実行して、編集 → フォント設定からフォントを選び、フォント名に入力されている文字列をコピペして、スペース部分をアンダースコアで置き換えた。 この辺のルールとかに詳しい人にぜひとも教えて欲しい所。 導入した感想 今までの Powerline フォントはいまいちなのが多かったが、PlemolJP の表示は非常に良い。 今後はこちらをメインで使って行きたい。 あと、僕はヱビス派です。