Humanity

Edit the world by your favorite way

Vim

セッション管理プラグインを作った結果あまりうまく運用できてない

Vim

github.com セッションの保存・復元 (プロジェクト等) 異常終了時のセッションの復元 を目的としたセッション管理プラグインを作った。 コミットログ見れば分かるけど深夜の勢いで書いたので雑な部分もあるけど普通に使えるはず。 下の例と合わせて読み取っ…

年末年始に送った PR や作った Vim の terminal 関連プラグインと振り返りとか

Vim

なんだかんだこういう振り返り記事を書いたの初めてかもしれません。 最近やったことを書く機会があって書き出したらいい感じに振り返り記事になったので丁度よかった(?)。 なぜ terminal 関連のプラグインのみなのかというと今自分の中で一番熱いからで…

Vim の terminal でも : や <Esc> でノーマルモードに移りたい。けど完全に潰したくはない

Vim

そんな方のための Hack をふと某 slack に公開したらウケが良かったのでブログに書いておきます。 一言で言うと 「シェルのプロンプトが空の場合は他のバッファと同じように振舞う」ようにしたら便利だった ついでにプラグイン化した という話です。 前置き …

Vim の terminal window でサッと別のタブに移動したい

Vim

※本記事は Vim Advent Calendar の記事ではありません 忙しいと文章書くの面倒になりますね。箇条書きでつらつらと書きます。 タブ移動 (gt, gT) は terminal window ではフォーカスを奪われるので使えない terminal window でも普通のバッファでも使えるよ…

tyru/sync-term-cwd.vim をちょっと便利にした

Vim

tyru.hatenablog.com ↑の記事で紹介した tyru/sync-term-cwd.vim に :SyncTermCwdConditionalCd を追加しました。 この長ったらしい Ex コマンドはグローバル変数 g:synctermcwd_cd_command に指定する使用例を想定しています。 let g:synctermcwd_cd_comman…

macOS Mojave で Vim のソースコード (C 言語) のデバッグをする (clang, lldb)

C Vim

もし lldb でも良いならそっちを使ったほうが良いです.leak detector は LLVM の msan とか使ってるのが最近は多い気がします— ドッグ (@Linda_pp) July 3, 2019 src/Makefile の CC, CFLAGS を変更 diff --git a/src/Makefile b/src/Makefile index 9c4a42…

macOS で Vim をソースコードからインストールする備忘録 (with LuaJIT)

--enable-lua しなければソースコードからもスルっと入ったけど +lua 付きがほしかった *1 ので。 ソースコードからインストールする ここら辺見て関連しそうなもの入れた。 余計なもの入ってたらすいません。 あと gpm 入れて再ビルドしてみたけど -mouse_g…

Vim で無名バッファを復元する方法

Vim

TL;DR スワップファイルを残したディレクトリに :cd して、 (:new 等で)無名バッファを開き、 :recover を実行する。 説明 デフォルトだと Vim はそのファイルを開いた時点に復元するかどうかのダイアログを表示すると思います。 というか自分はスワップフ…

Vim の端末ウィンドウから別のウィンドウに移る時にコマンドを実行中にしておく

Vim

tyru.hatenablog.com を書いた後 vimrc を整理していたら書きかけの設定があったのでこれも公開。 autocmd vimrc の vimrc は適当に変えてください(分からない人はそのままでもいいです)。 " Enter Terminal-Job mode when leaving terminal window autocm…

Vim で端末ウィンドウを複製する

Vim

Vim で端末ウィンドウを使ってるとスクロールされた出力を見たくなる時があると思います。 ただシェルでコマンド実行中なので、 <C-w>N すると出力も止まってしまう。なるべくなら出力を止めたくないと思います(たぶん)。 そういう時は以下を vimrc に貼り付け</c-w>…

quickrun.vim でバッファの Prolog コードを実行できるようにした

そういう Pull Request を送ってマージされました。 github.com 述語が多くなってくると REPL で確認するのも面倒になってくるかと思いますが、 そういう時はおもむろに新しいバッファを作って :setf prolog して :QuickRun すると実行した結果が別バッファ…

Windows Subsystem Linux で動かしてる端末版 Vim のバッファの内容をクリップボードにコピーしたい

ので書いた。 さっと書いた雑クオリティなので GitHub - kana/vim-fakeclip: Vim plugin: Provide pseudo "clipboard" registers 使うのが良いんだと思います。 help ちらっと見たら WSL にも対応してるっぽいので、OS 間で統一して扱いたいとかいう人はそち…

VSCodeVim に次送ろうと思ってる PR リスト

tyru.hatenablog.com 送ったものはマージされたものの、まだやり残した事がいくつかあって、 p コマンドのリファクタリング パフォーマンス改善 漢字仮名交じり文の上で w, b, e, ge を押した時に漢字、ひらがな、カタカナの区切りで止まるようにする 1 はす…

VSCode の Vim 拡張 (VSCodeVim) をより Vim っぽくする PR を送った

随時追加中。送った PR はこちら。 Pull Requests · VSCodeVim/Vim · GitHub あんまり一度に送りすぎてもアレなので温存してるブランチもまだあります… 送った PR の内容 注:まだマージされてない PR もあります。 全てマージされました。次のリリースが楽…

Go で struct をそのまま公開するのはあんまり良くないんじゃないか

と思った。理由は以下の通り。 ずっと地味に困ってた事があって、ある struct をコンストラクタ的な関数 (例えば Foo って struct だったら NewFoo って名前の関数) 経由で生成したい、と思っても、 Go の言語仕様上普通にこんな感じで struct を作れてしま…

neosnippet でプレースホルダがある場合は展開よりジャンプを優先させる

Vim

今週の 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>…

ロガー用 vital モジュールを作った (ただし Vim 8 専用)

Vim

まだ 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…

最近の Vim で入った面白 Vim script 関数

Vim

:h eval.txt を眺めてたら結構色々関数追加されてるなーと思ったのでまとめてみた。 (追記: 結構古くからある関数も交じってた…) 基本的に詳細な仕様は書くつもりはありません (古くなるかもしれないし help 見た方が正確)。 wordcount() g<C-g> を押すと現在のバ</c-g>…

Vim script で Chrome Debugging Protocol を扱うライブラリを作りたい

Vim

github.com タイトルの通りなのですが、Chrome Debugging Protocol (以下 CDP) を扱うためには、 CDP は WebSocket ベースなので WebSocket を実装しなきゃならない バイト列をパースする際にヌルバイトを Vim では扱えない となって悩んでいます。 ヌルバイ…

netupvim で Windows でも最新の Vim を追いかけよう

これは Vim Advent Calendar 2017 その2 の21日目の記事です。 github.com 内容は上記リポジトリの README.md のパクリです。 netupvim 便利だよ!って事が言いたかった。 序文 Windows で Vim を使っているとふと最新の Vim を欲しい時があります。 そんな…

Vim 8 時代のがんばらないプラグイン管理のすすめ

Vim

これは Vim Advent Calendar 2017 の20日目の記事です。 皆さん Vim しておられるでしょうか。 Yes と答えた方、プラグインマネージャーは使っていますか? 巷では Vim のプラグイン管理にはプラグインマネージャーを入れる必要があるかのような勢いで「まず…

:terminal コマンドが使える Windows 版 Vim の配布状況 (2017/09/15 時点)

Vim

tyru.hatenablog.com この記事を書いた後 Windows でも :terminal コマンドが使える Vim が配布されるようになったのでその配布状況をメモしておく。 Vim バイナリの配布 URL 一覧 まず初めに Vim のバイナリへのリンク集を vim-jp では提供しているので貼っ…

open-browser.vim で Windows Subsystem for Linux 上の Vim から URL 開けるようになった

Vim

github.com これで WSL 上であろうとなかろうと意識せず URL を開けるはずです。 最近は WSL の Vim ばっかり使ってるので個人的にうれしい機能追加です(追加したの自分だけど)。 WSL は Windows の世界と分断されてると思い込んでたのですが、 /mnt で Wi…

Vim の :terminal がもたらすもの

Vim

追記 本記事を書いた後いろいろ状況が変わって :terminal コマンドが使える Vim が配布されるようになったので、 とりあえず現時点(2017/09/15)での状況を書きました。 tyru.hatenablog.com 序文 今絶賛開発中の Vim の :terminal コマンドについて書こう…

Vim script に ECMAScript の Observable がほしい

タイトルは前記事からの流用。 最近 Vim script で Java 8 の Stream API を実装する、ということをしている。 tyru.hatenablog.com github.com Vim 8 でも lambda が入ったので、メソッドチェインでどんどん処理を繋げるスタイルの書き方ができると嬉しいと…

Vim script に Java 8 の Stream API がほしい

Vim

ので作ってる。この記事も PR も絶賛更新中。 github.com 一言で言うと underscore.vim + Data.LazyList 的なものがほしかった。 Twitter でぼやいた時の会話。 vital.vim の Data.List って、名前からだと https://t.co/423dfKhtl4([1,2,3,4,5]).filter({x …

はてなブログの記事をブログ間で移動させたかったから MovableType 形式のファイル用の Vim 折り畳みプラグイン作った

Vim

github.com 使用方法 珍しく GIF アニメ作ったのでそれで察してください。 はてなブログでエクスポートした記事のテキストファイル(MovableType 形式)に折り畳みを付けるだけのプラグインです。 インターフェースは MovableTypeFoldToggle コマンドしかあ…

Vim のマッピングで Fizzbuzz 問題を解く

Vim

この記事は Vim Advent Calendar 2016 19日目の記事です。 締め切りがない世界に行きたいと言いつつ、締め切りがなければ何もしないニート根性の tyru です。メリークリスマス!!(錯乱) (レジスタ編) Fizzbuzz 問題のコード 以前私はこんなコードを Gist に…

ミニマリストな Vimmer におすすめしたい履歴管理プラグイン oldfilesearch.vim

Vim

この記事は Vim Advent Calendar 2016 (その2) の 4 日目の記事です。 追記:oldfilesearch.vim のリポジトリへのリンクを貼り忘れていたので追記しました。 履歴管理プラグインへの懸念 履歴管理プラグインには様々なものがあります。 例えば MRU.vim であ…

私、普通のVimmerに戻ります

Vim

頭のおかしいいつも通りのヨタ話です。半分ネタです。 もう限界です。 プラグインを入れたり作ったりしてプラグインが増えていき、気が付くと Core i3 4130 3.4 GHz, メモリ 16G の PC にもかかわらず Vim が起動するまで3秒ぐらい掛かるようになってしまい…