vim

VimConf 2023 Tiny に行ってきた

vim

昨日(11/18)はVimConfに行ってきました。 前回が2019年だったので実に4年ぶりの開催でした。 vimconf.org 2017年から2019年は3回ともスピーカーでしたが、今回は久しぶりの一聴衆でした。 なので当日は全く緊張する必要がなく、とても穏やかな気持ちで参加す…

macvimをビルドする(2023/08)

vim

だいぶ前にも書いていた。 daisuzu.hatenablog.com ここ最近は毎朝UpdateMacVimを実行している。*1 UpdateMacVim() { cd $HOME/go/src/github.com/macvim-dev/macvim git fetch origin master if [ -z "`git diff FETCH_HEAD --shortstat`" ]; then cd - ret…

Vimの極意

vim

この記事はVim Advent Calendar 2022の1日目の記事です。 今年でVimをメインエディタにして15年になります。 最近どうすれば思考する速度でテキストを編集できるようになる*1のか考えたりすることがあったので、この機会に軽くまとめてみます。 簡単な操作で…

Vimのterminalでパイプを使う

vim

この記事はVim Advent Calendar 2021の9日目の記事です。 Vimにterminal機能が追加されてずいぶん経ちましたが、普段はtmux上でVimを使っていたので実際のところ使用頻度はそんなに高くありませんでした。 たまに使った時は出力がVimの中に閉じているため、…

vim-lspのCallHierarchyをツリーっぽく表示する

vim

リファクタリングしたりコードを調べたりする時、呼び出し元を探すのにLspReferencesやLspCallHierarchyIncomingを使っていた。 ただ、どちらも1階層分しか表示してくれず、呼び出し元が遠いと影響範囲が把握しにくかったのでquickfixに結果をマージして表示…

go/analysisのSuggestedFixでコードを修正する

Goの既存コードを修正するツールを作る時、 既存コードをどう書き換えて 出力して テストするか を考えなければいけないのが少し面倒だと思っていました。 が、golang.org/x/tools/go/analysisのSuggestedFixを使えばすごく簡単にできてしまいます。 golang.…

編集を加速するVimのquickfix機能

vim

この記事はVim Advent Calendar 2020の3日目の記事です。 昨日は@mira010さんのvim pluginsをインストールしてみましょうでした。 みなさんquickfixを使っていますか? Vimのquickfix機能はgrepやmakeなどの結果を保持する専用のバッファと、それを扱うため…

goplsでworkspace/symbolが使いたい

現状の最新版(gopls/v0.2.2-pre2)では未実装。 daisuzu.hatenablog.com を書いていたら欲しくなったので第1回 ゴリラ合宿で実装したのがコチラ。 github.com symbolの探索はServerのsessionのViews()から Snapshotを取ってきて、 KnownPackages()のCompiledG…

VimのtagfuncでLSPを使う

vim

この記事はVim Advent Calendar 2019の6日目の記事です。 今年の4月にv8.1.1228でtagfuncという機能が追加されました。 こちらは:tagや:tselectなどのタグ系コマンド*1を実行した時、tagsファイルを検索する代わりに呼ばれる関数を設定するためのオプション…

VimConf 2019に行ってきた

vim

今年もVimConf 2019に行ってきました。 今回はテーマが “how to be more productive with Vim?” ということもあったのか、比較的Vim暦が浅い人の登壇が多かったような気もしますが、その割には発表内容が素晴らしいものばかりだったので、やっぱりVimを使う…

素のVimでGoを書く時のテクニック

gorillavim.connpass.com にて、 外部ネットワークに繋がらない環境でvimとgoしか使えない という縛りでライブコーディングをしてきました。 実際にそういう環境があるのか?という話はさておき、そのような状況でも以下を駆使してそこそこコードが書けます。…

第1回 ゴリラ.vimが開催されました

vim

2/18(月)にゴリラ.vim #1が開催され、スタッフ兼発表者として参加してきました。 gorillavim.connpass.com スタッフになったのはvim-jpのslackでゴリラさんこと@gorilla0513さんがVimの勉強会をやろうとしているのを見かけ、これは前々から思っていた渋谷でV…

Vimの折畳に対応したtreeコマンド

golang.tokyo #21のDevQuizはGoでtreeコマンドを作成するというものでした。 treeコマンドといえば、以前Vimでファイル一覧をツリー表示するためのtree.vimというプラグインを作る時に使いました。 github.com このプラグインはディレクトリにマーカーをつけ…

Vimのexecute()と組み合わせて便利なコマンド

vim

この記事はVim Advent Calendar 2018の13日目の記事です。 先月に開催されたVimConf 2018で、Migrating plugins to standard featuresというタイトルで発表してコマンドの結果をバッファに表示する方法を紹介しました。 その中で解説しきれなかったテクニッ…

VimConf 2018に行ってきた

vim

VimConf 2018に行ってきました。 今年は@mattn_jpさんだけじゃなく、Vim作者のBramさんも発表するという超豪華Keynoteでした。 また、今年は去年以上に国際色高まるカンファレンスだったんじゃないかなと思います。 運営のみなさま、とても大変だったと思い…

リポジトリごとにGOPATHを切る環境でのvim-go

↓のようなリポジトリごとにその直下をGOPATHにする環境でGoを書く時、 . ├── github.com/daisuzu/bar │ ├── bin │ ├── pkg │ └── src │ └── bar │ └── main.go └── github.com/daisuzu/foo ├── bin ├── pkg └── src └── foo └── main.go 両方のリポジトリの…

Meguro.vim #8 に行ってきた

vim

Meguro.vim #8 で久しぶりにvimrcを整理し、不要なプラグインや設定なんかを削ったら300行くらい短くすることができた。 ついでにリファクタリングをして、次のような任意のEXコマンドの結果を新しいバッファに表示するコマンド*1を作ってみた。 (今までは特…

Vimのカバレッジを見る

vim

この記事はVim Advent Calendar 2017の2日目の記事です。 Vimのカバレッジはcoveralls.ioやcodecov.io上で見ることができますが、手元で見たくなることもあると思います。 そんな時はMakefileに書いてある通り、次のようにしてカバレッジを計測し、生成され…

VimConf 2017でコントリビューターになる話をしてきた

vim

VimConf 2017 - An international Vim Conferenceで speakerdeck.com という発表をしてきました。 最初は25分も話すことなんてあるかな?なんて思ってたら意外と良い感じの時間になりました。 少し足りなかったところを少し補足しておくと、 gitコマンド v8.0…

プレゼン資料にハイライトされたコードを貼り付ける

vim

プレゼン資料を作っててコードを綺麗に表示させたくなったんだけど、 何かをインストールしたりとかは面倒だったのでvim*1を使ってやることにした。 以下のコマンドでブラウザが開くのでコピペするだけ。 " mac :TOhtml | w | !open % " win :TOhtml | w | !…

Meguro.vim #4でプラグインを作った

vim

Meguro.vim #4で自分用の:VimFilerSimpleに代わるプラグインを作りました。 github.com vimfilerは機能が豊富でそこまで不満があったわけではないのですが、 常に全ての機能を必要としているわけではない unite.vimに依存している ので、一番使う頻度の高い …

Vimでファイルを開く方法(基本編)

vim

この記事はVim Advent Calendar 2016の4日目の記事です。 Vimでファイルを開くのに Unite.vim Denite.nvim ctrlp.vim など のプラグインを使っている人はたくさんいると思います。 これらのプラグインは大変便利なインターフェースを提供してくれているので…

VimConf 2016 に行ってきた

vim

VimConf 2016に行ってきた。 発表メモ Introduction to Vim 8.0 by Ken Takata 最近Vimに入った機能の中でjob, timer, packagesは使ったけど *1 *2 Partial, lambda, closureはまだ触っていないので試してみたい 日本人VimmerがVim本体に多くのパッチを送っ…

neocompleteとneobundleを捨てた

vim

半年ほど使っていなかったのでvimrcを整理するタイミングで完全に消すことにした。 ただ長年ツートップだったプラグインなので消すに至った経緯を軽くメモっておく。 neocomplete 今の自分にはVim標準の補完機能(ins-completion)で十分だった。 自動補完が発…

vimのjob機能を使ってプラグインを更新する

vim

2ヶ月以上経ってるけど一応前回の続き。 ~/.vim/pack/bundle/opt/配下にインストールされているプラグインを更新するには、 ls -d ~/.vim/pack/bundle/opt/* | xargs -I{} git -C {} pull --ff --ff-only でやってしまうのが手っ取り早いんだけど、あえてvim…

vim pluginのbackground loading

vim

最近vimに追加されたpackages、timerを使ってvimが起動した後にプラグインの読み込みができたらどうだろう? と思ったのでやってみました。 以下のような設定をvimrcに追加してvimを起動するとvimが立ち上がってからプラグインが読み込まれます。 " vim起動後…

VimのCTRL-X補完について

vim

この記事はVim Advent Calendar 2015の5日目の記事です。 Vimで補完といえばShougoさんのプラグインneocompleteが有名ですが、プラグインを使わなくてもCTRL-X サブモードで補完を行うことが可能です。 この機能はブログや書籍などでたびたび紹介されてはい…

macvim-kaoriya or macvimをビルドする(2015/08)

vim

vim 7.4.774で追加された v:completed_item をmacvim-kaoriyaで使いたくなったけど今日の時点だとまだバージョン7.4.769なので使えない... Homebrewからインストールできるらしいけど手元の環境ではエラーが出たのでコンソールからビルドしてみる。 2015/08/…

neocompleteのomniソースからneosnippetのスニペットを生成する

vim

前回のTokyoVimで作ったアレをプラグイン化しました。 daisuzu/miosnippet.vimgithub.com プラグイン名は語感と強引なこじつけです。 クーポンなんかはありません。 関数の戻り値をスニペットに含める機能や スニペットを展開した時に型を消す機能とか を実…

TokyoVim#24に行ってきた

vim

TokyoVim#24 (2015/03/21 13:00〜)tokyovim.connpass.com 今日のTokyoVimではneocompleteのomniソースから関数のシグネチャのスニペットを生成するVim scriptを作ってみました。 今のところ対応しているのは go(gocomplete) python(jedi) のみです。 使い方…