「Neovimで生産性をクオンタムジャンプさせる」発表資料
(docs.google.com)録画映像 : https://www.youtube.com/watch?v=XYQnyJVGk-4&t=1s
付録 : https://kodingwarrior.github.io/wiki/appendix/excelcon-2nd/
2023-06-03 第2回エクセルコンで「Neovimで生産性をクオンタムジャンプさせる」というテーマで発表したのですが、遅ればせながらこちらでも共有します。
発表内容の要約
Neovimを使うだけで、どのように生産性が上がったのか?
- VSCode、Notion、RoamResearch、GitKraken などを切り替えながら使っていたところ、Neovim に統合したことで不要な認知負荷が減りました。
- macOS、archilinux を切り替えて使っていても、どこでも一貫した開発環境を維持できます(dotfiles)。
- デバイスの性能を気にする必要がなくなりました。
- Before : AndroidStudio、VSCode、RoamResearch など複数のアプリケーションを起動して作業していたため、スラッシングが頻繁に発生していました。ソースコードをタイプするだけでも時間がかかっていました / After : 飛行機の離陸音そのものが聞こえなくなりました。メモリ使用量もかなり低めです。
生産性を高めるための 3つの Step
- 生産性改善は、自分がどのような行為で不要に時間を消費しているのかを分析するメタ認知から始めること。
- まずは自分が使っているツールに慣れる。
- 自分がどんな作業を繰り返し行っているのかを見て、繰り返し作業にかかる時間を減らす活用方法があるか探してみる。(例: テンプレート、プラグイン、マクロ、スニペット、…)
- 2 の過程で自分に合ったものを選んで身につける。
分量の都合で説明できなかった内容は、ブログに付録として整理しました。
- AstroNvim、LazyNvim をはじめとした Neovim 初心者向けスターターキット
- neovim 専用の tree-sitter プラグイン
- 自動補完機能を提供する nvim-cmp
Vim をうまく使いたい人のための Discord コミュニティ(vim.kr)も運営しているので、ぜひご関心をお寄せください :)
11件のコメント
https://github.com/github/copilot.vim
私は VS Code の Copilot をとても便利に使っていて調べてみたところ、Neovim 用の Copilot プラグインもあるんですね。試してみようか悩んでいましたが、一度 Neovim を使ってみようと思います。
最初に転職した会社では、
vim + tmuxの Linux サーバーにリモート接続して開発していました。この環境ではリモートでのペアプログラミングが可能で、とても印象的でした。(コードの修正が即座に反映され、ターミナルも共有)
リモートサーバー上の dotfiles(
.vimrc,.bashrc)をきっかけに、vim に本格的に入門することになりました。サンプルがあったので気楽に始められた記憶があり、本文の dotfile の話には共感します(笑)
私もNVImからvscodeに移ったのですが、この記事を見るとまた戻りたくなりますね。笑
テキストエディタの話なので本当にうれしいですね。結局はすべてテキストを扱う仕事なのだと受け入れると、自分のテキスト環境に気を配ることも負担ではなくなります。私は去年からEmacsを使い始めましたが、本当にキーボードですべてできるようになりました。0番でおっしゃっていたように、不要な時間をかなり減らせるようになりました。vim.kr のご発展を願っています!!
動画で私が聞き逃したのかもしれないと思い、質問させてください。Notionをneovimで置き換えたというお話は、neovim上にwikiシステムを構築してそれを使っているという意味なのか、それともNotionをneovimから操作するライブラリがあるという意味なのか、気になっています。質問の意図としては、会社で使っているNotionもneovimから操作可能なのか知りたいです。
もちろん Notion を操作したりはしていません。
Notion が API をサポートしていれば、理論上は neovim から操作することも可能ではあると思いますが、今のところそうした試みは見たことがありません。
会社で使っている notion が neovim から操作可能かどうかは、ポリシー上の問題がありそうなので断言は難しいですね。
NotionではAPIが提供されていますが、現実的にはさまざまな制約が思い当たり、実装が止まっている状態でしたが、良い解決策があるのではと思っていました。ご回答ありがとうございます :D
wikiシステムを構築した、というほうが近いです。
telekasten.nvimというプラグインが、自分の要件を100%以上満たすレベルで、たいていの機能はひととおり備えています。テンプレート機能もかなりしっかりしていました。内部文書を管理する機能も十分です。
個人的に気に入っていた機能の一つであるグラフ可視化も、
force-graphというライブラリで自作しました。参考になるかもしれないので、関連するソースコードのリンクも残しておきます。
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- グラフ可視化に必要な頂点(文書)/辺(内部リンク)データを生成
https://github.com/kodingwarrior/kodingwarrior.github.io/… --
force-graphベースで可視化私も neovim を使って新しい世界に出会いました。だから周りの開発者の方々にも一度試してみてくださいと勧めてみたのですが、誰も乗り換えてきませんでした。neovim を使いながら開発環境を構築するのに必要なことを、より詳しく知るようになりました。韓国の Vim コミュニティがあることも知りませんでした。探して行ってみます。本当にうれしいです!
会社による、チームによる、ではありますが……意外にも開発環境の構築に興味がない人は多いものですね……
Vimをうまく使おうとすると、結局はzshやtmuxも一緒に使う必要がある気がします。
Emacsとは違って、ひげはなくてもいいので助かります。