Artiste が本当に好きで1巻が出た頃から何度も読んでる。 といっても文才がないしレビューなんてほぼ書いた事もないので訳分かんない文章になって削除したりを繰り返したりしてる。 そもそも前にも書いたけど、あんまり自分は作品の事前情報は書きたくない。…
随時追加中。送った PR はこちら。 Pull Requests · VSCodeVim/Vim · GitHub あんまり一度に送りすぎてもアレなので温存してるブランチもまだあります… 送った PR の内容 注:まだマージされてない PR もあります。 全てマージされました。次のリリースが楽…
と思った。理由は以下の通り。 ずっと地味に困ってた事があって、ある struct をコンストラクタ的な関数 (例えば Foo って struct だったら NewFoo って名前の関数) 経由で生成したい、と思っても、 Go の言語仕様上普通にこんな感じで struct を作れてしま…
今週の Vim の細道見てて neosnippet で困った挙動があるのを思い出して、重い腰上げて help 見て設定したら解消した。 <Tab> にこんな感じで割り当ててたけど imap <expr> <Tab> neosnippet#expandable_or_jumpable() ? \ "\<Plug>(neosnippet_expand_or_jump)" : "\<Tab>" smap <expr> <Tab> neos</tab></expr></tab></plug></tab></expr></tab>…
こんな感じに使う。 package main import ( "errors" "fmt" ) func main() { fmt.Println("start") if err := f(); err != nil { fmt.Println(err.Error()) } fmt.Println("end") } func f() (err error) { fmt.Println("f() start") g := &Guard{} defer fu…
基本的な Go の挙動が理解できてないのかもしれないですが、なぜ以下のコードで (2) err != nil: true となるのかが分かりません。 誰か教えて… (g() がメソッドなのはなるべく元のコードと似せたせいです) gist.github.com 追記 KoRoN さんとりんだんさんに…
150万以上ある Mongo のレコードに LIKE 検索したい時こうすると雲泥の差になった (1分以上かかってたのが 50ms 以下になった)。①インデックスを使う ($hint 指定しないと $regex の場合は使われないっぽい)②パターンの頭に ^ を付ける③パターンに .* を使わ…
以前楽天銀行でワンタイムパスワードを突破しつつ明細履歴を TSV ファイルに保存するスクリプトを書いた。 ワンタイムパスワードのメールを受け取って本文をパースするために IMAP にログインしてメールが来るまで待つ、みたいな事をしている。 tyru.hatenab…
基本的に Go アプリのテストは以下を参考にしたら概ねうまく言ってたんだけど、 (最新じゃなく)バージョン固定してる場合に問題となったため書いておく。 blog.markvincze.com 起こった問題 最近 AppVeyor の Go のバージョンが上がって Go 1.10 をデフォ…
まだ vim-jp/vital.vim には PR してないけど十分使える (使えてる)。 https://github.com/tyru/nesk.vim/blob/0775e7d6fb3502ce52b64911d84b19cde32825aa/autoload/vital/__nesk__/Nesk/Log.vim https://github.com/tyru/nesk.vim/tree/0775e7d6fb3502ce52b…
:h eval.txt を眺めてたら結構色々関数追加されてるなーと思ったのでまとめてみた。 (追記: 結構古くからある関数も交じってた…) 基本的に詳細な仕様は書くつもりはありません (古くなるかもしれないし help 見た方が正確)。 wordcount() g<C-g> を押すと現在のバ</c-g>…
github.com タイトルの通りなのですが、Chrome Debugging Protocol (以下 CDP) を扱うためには、 CDP は WebSocket ベースなので WebSocket を実装しなきゃならない バイト列をパースする際にヌルバイトを Vim では扱えない となって悩んでいます。 ヌルバイ…
ふと必要になったので作りました。 github.com 動作には open-browser.vim が必要です。 github.com なにこれ Vim から FileFormat.Info の指定された文字のページをブラウザで開くプラグインです。 えっどういうこと? Vim でファイルを開いている時にふと…
これは Vim Advent Calendar 2017 その2 の21日目の記事です。 github.com 内容は上記リポジトリの README.md のパクリです。 netupvim 便利だよ!って事が言いたかった。 序文 Windows で Vim を使っているとふと最新の Vim を欲しい時があります。 そんな…
これは Vim Advent Calendar 2017 の20日目の記事です。 皆さん Vim しておられるでしょうか。 Yes と答えた方、プラグインマネージャーは使っていますか? 巷では Vim のプラグイン管理にはプラグインマネージャーを入れる必要があるかのような勢いで「まず…
stackoverflow.com GitHub git config --global url.ssh://git@github.com/.insteadOf https://github.com/ BitBucket git config --global url.ssh://git@bitbucket.org/.insteadOf https://bitbucket.org/ 特定のユーザだけ ssh の URL を使う (2018/12/08…
Go のコマンドラインアプリの AppVeyor 対応したので雑なログ。 ここを参考にした。 Organization 用の AppVeyor アカウントを Sign Up から作る 自分のメインの AppVeyor アカウントを Administrator role で Collaborator として追加する Collaborator を…
mattn さんに教えてもらった。 いつもお世話になってて感謝しかない。 -d dir1 -d dir2 みたいな引数を持つオプションを複数指定する方法 Go の flag パッケージで複数オプションをパースするにはどうしたらいいんだろ。-d dir1 -d dir2 で [dir1, dir2] の…
alias clip=/mnt/c/Windows/System32/clip.exe echo Hello | clip とかしてクリップボードにコピーできて便利。
godoc . org と github . com のリポジトリを切り替える雑なブックマークレット作ったhttps://t.co/VwKlEeWUqW— tyru (@_tyru_) 2017年9月17日 gist.github.com 以上です。
tyru.hatenablog.com この記事を書いた後 Windows でも :terminal コマンドが使える Vim が配布されるようになったのでその配布状況をメモしておく。 Vim バイナリの配布 URL 一覧 まず初めに Vim のバイナリへのリンク集を vim-jp では提供しているので貼っ…
type html5Handler struct { fs http.FileSystem routes []staticRoute } // Look up path when Vue.js HTML5 history mode is enabled // https://router.vuejs.org/ja/essentials/history-mode.html func enableHTML5Mode(fs http.FileSystem, routes []st…
github.com これで WSL 上であろうとなかろうと意識せず URL を開けるはずです。 最近は WSL の Vim ばっかり使ってるので個人的にうれしい機能追加です(追加したの自分だけど)。 WSL は Windows の世界と分断されてると思い込んでたのですが、 /mnt で Wi…
github.com issue には上げたけど日本語でも書く。 結果から言うと自分が README.md よく読んでなかっただけ。 でも gvm ももうちょっと気を利かせてくれてもいいのになーと思ったので上の issue でお願いしたという経緯です。 解決法 Go 1.5 以上をコンパイ…
習作って言っても以前 Go 触ってたことはありましたが、 そのツールを作ったこと自体忘れてたぐらい記憶が抜け落ちていたので、改めて Go に再入門しました。 作ったもの 使い方は README.md 読んでください(まだ不十分だと思いますが、分からない点は issu…
言葉で説明するのだるいので次のコードを見てください。 package main import ( "fmt" ) func main() { array := []int{1, 2, 3} // これだと &a が同じアドレスになってしまうことがある // (range は array[i] のコピーを返す) for i, a := range array { …
追記 続編です。 これと組み合わせれば Subsonic でも曲をフォルダに置いたら即スキャンしてくれるようになります。 tyru.hatenablog.com 本文 ずっと Subsonic というストリーミングサーバーを使っていた。 1ドル /月 払えば Android アプリでも接続できる…
追記 本記事を書いた後いろいろ状況が変わって :terminal コマンドが使える Vim が配布されるようになったので、 とりあえず現時点(2017/09/15)での状況を書きました。 tyru.hatenablog.com 序文 今絶賛開発中の Vim の :terminal コマンドについて書こう…
今更すぎるけど便利だったので。 top で起動した後に M でメモリ使用量が多い順にソートできる。 P で CPU 使用率。 そしてさらにデフォルトではプログラムの引数は表示されていないが、c と打つと表示できる。 例えば KVM 上で動かしている VM のプロセスを…
Gitlab にはデフォルトで Prometheus と node_exporter がパッケージに付属されている。 ただ有効にはなっておらず、かつ単に有効にしただけでは localhost からの HTTP アクセスしか通さない(理由は以下の issue の通りセキュリティのためとのこと)。 git…