ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

2021-01-01から1年間の記事一覧

Floating Windowの変態的な使い方

Vim

これはVim Advent Calendar 2021の14日目の記事です。 NeovimにFloating Windowが実装されて以来、様々なプラグインが開発、リプレイスされてきました。 有名所でいうとgit-messenger.vimでしょうか。Floating Windowの良い使い方だなあと感動した覚えがあり…

今月のコミット一覧を出す

GithubでsinceとuntilをURLにつければ検索できるんだな、知らんかった。 https://github.com/Rasukarusan/dotfiles/commits?author=Rasukarusan&since=2021-11-01&until=2021-11-30 コマンドだとこう git log --after '2021/11/01' --before '2021/11/30' 差…

俺がエンジニアとして作りたかったのは「治療薬」だったがしかし。

「君のプロダクトはビタミン剤か?鎮痛剤か?それとも治療薬か?」という記事を読んだ。 blog.btrax.com 記事で紹介されている「ビタミン剤」「鎮痛剤」「治療薬」のプロダクト例は下記。 ビタミン剤:YouTube, Facebook, Tiktok 鎮痛剤:Slack, Zoom, Sales…

VimでmessagesやhighlightなどのExコマンドの結果を別タブで開く

Vim

:tabe :put = execute('messages') めちゃくちゃシンプル。 今まで下記のようなredirを利用した関数を作って実行していたけど、完全に不要だった。 function! s:show_ex_result(cmd) redir => message silent execute a:cmd redir END if empty(message) ech…

macOSでneovimをbuildするとき「ninja: error: loading 'build.ninja': No such file or directory」のエラーが出る

Vim

.depsファイルが邪魔しているのでそれを削除するとbuildできるようになる。 cd neovim sudo rm -rf .deps sudo rm -rf build # buildも一応消しておく buildし直す sudo make CMAKE_INSTALL_PREFIX=$HOME/neovim/nvim install 環境 macOS BigSur 11.23 neovi…

Voicyに出演した

voicy.jp voicy.jp めちゃくちゃ緊張したし全然思った通りに話せなかったけど、オーナーの圧倒的まとめ力によって救われた。 出演して初めて知ったことは、収録はプレゼンや講演、講義をやるのとはまた全然違う緊張感があるということ。 院生時代は毎週教授…

【Neovim】好きな位置にテキストを埋め込んだりハイライトできる「ExtMark」の使い方

Vim

ExtMarkとは 指定した行、列にマーカーをセットできる。セットしたマーカー(位置)に好きな文字列を表示したり、ハイライトできたりする。 テキストの変更を追跡して表示できるので、インデント幅の表示やスペルミスを表すために使われたりする。 ヘルプは:h …

Mac専用sipsコマンドで、画像に枠線をサクッとつける

Mac標準搭載のコマンドでsipsコマンドがある。画像情報を取得したり付与したりできる。 画像のコマンドといえばimagemagickだが、imagemagickよりも少ないオプションで、かつ直感的に実行できるのがsipsコマンドの良いところ。brew等で別途インストールしな…

Sequel AceをApplescriptで操作する

以前Sequel ProをApplescriptで操作するのはやっていたが、昨今はSequel Aceを使うようになった。 Sequel ProとAceではFavorite.plistのPATHやUIの配置などがいくつか異なっていたため、それをまとめたい。 スクリプト まずどういったスクリプトなのかを載せ…

webpack × SentryでSourceMapが読み込まれないときの解決法

ソースマップが読み込まれなくて困ったときの解決方法を書いていくで。 ・releaseタグをinit時にも書いてないか ・urlPrefixをつけているか ...

カーソル下の関数だけ実行できるVimスクリプトを作った

Vim

vimでshellスクリプトを書いてるとき、ある関数だけ実行したい、ってのがよくある。そのとき毎回コメントアウトしていたのが面倒であった。例えば下記のような場合。 main() { echo 'main' } main2() { echo 'main2' } main # main2 # mainだけ実行したいの…

React, TypescriptでChrome Extensionを開発する(ホットリロード対応)

死ぬほど参考にさせていただいたサイト 基本的には下記のサイトを参考に進めればいけます。(最高の記事ありがとうございます、大感謝祭) code-log.hatenablog.com 本記事では上記で紹介されていたホットリロードがエラーで動かなかったため、別の方法でホッ…

M1MacBook、VimのquickrunでC#の実行環境を整える

知人がC#をやり始めて、教えてくれと言われたのでとりあえず開発環境を整えてみた。 環境 M1 MacBookAir Neovim >= 0.5 brew install monoができない arm版だとダメ的な問題でエラーが出てインストールできないので、Visual Studioから引っ張ってくるやり方…

M1 MacでNeovimをBuildする

Vim

NevimのBuild手順が少しわかりづらかったのでまとめておく。 環境 M1 MacBookAir(Big Sur) 事前準備 brew install cmake 手順 Homebrewでインストールしたnvimを上書きする場合 git clone https://github.com/neovim/neovim.git cd neovim make CMAKE_BUILD_…

ブラウザからTemrinalに接続するxterm.jsをNext.jsとNestJSで構築する

xterm.jsが楽しそう ブラウザにTerminalを設置できるxterm.jsというライブラリがある。VSCodeのTerminalやHyperなどに使われている。 xterm.jsが提供するのはざっくり言ってしまえばTerminalの形をしたテキストフィールドのみ。実際にTerminalに接続したりキ…

【メモ】PHPフレームワークSlimをdocker-composeで環境構築する

途中でまとめるのが面倒になってしまったのでメモ書きとして残しておく リポジトリ github.com 環境 M1 MacBookAir(Big Sur) Docker Desktop(3.3.0) 初期ディレクトリ構築 mkdir php-slim cd php-slim # slimのインストール composer create-project slim/sl…

【メモ】VimでPHPの開発環境を整える

やること LSPの導入 Formatterの導入 GTAGS(GNU Gloabal)の導入 環境 M1 MacBookAir(Big Sur) LSPの導入 coc.nvimでcoc-phpls導入して終了。 :CocInstall coc-phpls これで補完や定義ジャンプができるようになる。あとは好みだけどUltisnipsで自作のsnippet…

GolangでGIF分割・結合・文字入れ

Go

全体のソース github.com 動機 GIFの開始と終わりを判別するために、GIFの最初の方に”START”みたいなラベルを挿入したい。 ImageMagickには依存したくなかったのでGolangの標準パッケージでなんとかしてみた。 環境 $ go version go version go1.16.2 darwin…

gif動画から指定のフレーム(最初・最後・最後から2番目など)を抜き出す

convertコマンドで可能。とりあえずbrewでインストールしましょう。 # imagemagickをインストールするとconvertコマンドが使えるようになる brew install imagemagick 指定のフレームを抜き出す 最初 convert 'neko.gif[0]' first.png 最後 convert 'neko.gi…

Vimで特定の行だけ選択してコピーするプラグイン

Vim

vimのVISUALモードはシンプルかつパワフルで特に不満はないのだが、行を飛ばしてコピーができない。 例えば下記のようなファイルがあったとして、 line 1 line 2 line 3 line1とline3だけコピーしたいようなケース。 このような隣接していない行のコピーを実…

NestJSでよく見る@Decoratorって何なのかわからなかったからサクッと試してみた

NestJSで@Controllerのような@を使った書き方をよくみる。よくわからず使っていたけど調べてみたらなんてことなかったので書き留めておく。 こういうやつ。 @Controller('app') export class AppController { @Post() create(@Body() dto: CreateAppDto) {} …

NestJSとNext.jsをlernaでモノレポ化する

最近流行りのフレームワークたちをlernaを使ってモノレポ化する。 構成はこんな感じになる想定。 . ├── lerna.json ├── package.json └── packages ├── client <-------- Next.js │ └── package.json └── server <-------- NestJS └── package.json どこまで…

ソースコードを画像化する、Rust製のコマンドラインツールsiliconで使える日本語対応フォント一覧

環境 macOS Catalina(10.15.5) 日本語対応フォント一覧 851MkPOP AhahaMojimoji Arial Unicode MS Hannotate SC HanziPen SC Hiragino Maru Gothic ProN Hiragino Mincho ProN Hiragino Sans Hiragino Sans GB Osaka PingFang HK PingFang SC PingFang TC Ri…

今更ながらgit-ftp便利すぎた

とりあえず必要なことをババっと書いておく インストール brew install git-ftp もしくは、リポジトリにgit-ftpの実行ファイルがあるからcloneしてきて使ってもいい。 git clone https://github.com/git-ftp/git-ftp cd git-ftp ./git-ftp 初期設定 git conf…

【Vim】aleでハイライトがされない問題の修正

Vim

色がつかなくて困っていた Lintを非同期実行できるプラグインのale。NeovimのVirtual Textにも対応していて、Lintエラーの文言を下記のように表示できる。 Virtual TextでLintエラーを表示 上記画像では黄色でハイライトされているが、以前までハイライトが…

日記には”事柄”と”感情”、どちらを書くべきか

半年ほど前から紙のノートに日記をつけている。コロナによって仕事がフルリモートになり、今までの習慣が劇的に変わったことから、もう一度ルーティンを構築するために日記を書き始めた。 以前からEvernoteに日記をつけていたが、紙のほうが圧倒的につけてい…

Udemy『AWS: ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得』をterraformで構築する

Udemyの講座楽しい www.udemy.com terraformで構築してみた。 個人用メモ。 死ぬほど参考にさせていただいたサイト まずは公式のチュートリアルで概要を掴む Introduction to Infrastructure as Code with Terraform | Terraform - HashiCorp Learn どんなre…

Neovim: Floating Windowでボタンを作る

Vim

Floating Windowをボタンにしないなんてもったいない! Floating Windowを使って立体的なボタンを作ってみた。ENTERでボタンを押せる。 ボタンに見せるにはどうするか これだけでボタンに見える frontとbackの2枚のウィンドウを用意 backの色をfrontの色より…

Neovim: Floating Windowに枠線をつける

Vim

FloatingWindowには枠線をつけるオプションがない border:1pxのようなオプションは用意されていない。ただ、枠線があるように見せることは可能。 下記はこちらの記事で作成したときのもの。カレンダーを表現するのに枠線付きのFloatingWindowが必要だった。…

ターミナル上にwifi接続のQRを表示できるsdushantha/wifi-passwordがおもしろい

github.com 今接続しているwifiのパスワード、またはQRコードをTermianl上に表示できるツール。 使用頻度は少ないかもしれないが、あったら地味に便利。 インストールはpipで可能。 python3 -m pip install --user wifi-password 実行 wifi-password --qrcod…