nvim_create_autocmd({event}, {*opts}) nvim_create_autocmd() Create an |autocommand| The API allows for two (mutually exclusive) types of actions to be executed when the autocommand triggers: a callback function (Lua or Vim script), or a command (like regular autocommands). このAPIでは、オートコマンドのトリガー時に実行されるアクションとして、 コールバック関数(LuaまたはVim script)、 またはコマンド(通常のオートコマンドと同様)の 2種類(相互に排他的)を指定することができる。 -- Example us
はじめに Noevimには組み込みのLSPクライアントがあり、きちんと設定すれば非常に高機能な開発環境を構築することができます。 今回は、初心者の方にもとっつきやすいようなるべく小さなファイルで解説することを目指しました。LSP関連の最低限の機能に絞って100行弱の設定ファイルに収まるようまとめています。 使用しているプラグインは主に4つ、依存関係を入れても7つです。補完とLSPサーバー管理以外の機能はほぼ組み込みで実現できます。 wbthomason/packer.nvim(プラグインマネージャ) neovim/nvim-lspconfig(LSP設定) williamboman/mason.nvim(LSPサーバー管理) williamboman/mason-lspconfig.nvim hrsh7th/nvim-cmp(補完) hrsh7th/cmp-nvim-lsp hrsh7th
この記事はFIXER 3rd Advent Calendar 2020 2日目の記事です。 ライトなVimmerの和田です。今までVSCode上でVIMと同様の操作を行えるようにVSCodeVimを導入してたんですが、こいつはまだまだ発展途上らしく、動作がもっさりしていたりだとか.vimrcのサポートが甘かったりなどの問題を感じていました。最近Vue.jsを触りはじめてVSCodeを使う機会も多くなってきていたので、なんかいい代替がないかな~とネットサーフィンをしていたら件のvscode-neovimが良いらしいという話を見つけました。というわけで今回は、お試しでvscode-neovimを導入してみたいと思います。 vscode-neovimとは https://github.com/asvetliakov/vscode-neovim VSCodeVimのようにVIMをエミュレートするの
2023/8/12日追記: null-ls.nvimは、現在、作者さんによる開発が終了し、Archiveされています。 https://github.com/jose-elias-alvarez/null-ls.nvim/issues/1621 利用される際はご注意ください。 BuiltinLSP+Lspsaga.nvim+null-ls.nvimでeslintを動かしているところ ここ1~2年、Neovimでは、Neovimに組み込みのLSP(BuiltinLSP:Language Server Protcol)クライアントを用いて各種のコーディング支援機能(コード補完/定義ジャンプ/コード診断など)を活用することが大きなトレンドとなっています✍ BuiltinLSPを用いると、各種Language Server(例えば、Typescriptであればtsserver)が提供するコーディン
Coc.nvim+init.vimからBuiltin LSP+init.luaへ この記事の概要 BuiltinLSP+Lspsaga.nvimでドキュメントをホバーさせているところ 2022年10月現在、NeovimにおいてモダンなIDEに近い様々なコーディング支援機能(Ex. 言語ごとの入力補完、定義ジャンプ、コード診断など)を利用するには、 Vim/NeovimをまるごとIDE化するプラグインであるCoc.nvimを導入する方法 Neovimに組み込まれたLSP(Language Server Protocol)クライアント機能を用いて、補完(Completion)、コード診断(Diagnostics)、リンター/フォーマッター(Linter/Formatter)の各要素につき、個別にプラグインを導入してカスタマイズする方法 の2通りがあります。 今回は、Neovim組み込みのBui
去年8年ぶりに vimrc を書き直した時はLSPの体験があんまりよくなくてLSPなしでNeovimを使い続けていたのだが、様々な言語のOSSをメンテする都合で用途に応じてIntelliJとVSCodeとNeovimの三刀流で暮らしていた結果、可能ならNeovimに寄せたいけどそれならLSPを使いたいなということになり、今回LSPの所を真面目に設定し直して、かなり良い体験になっている。 正直Neovimの設定はVSCodeのそれに比べたら面倒なんじゃないかという印象がありサボっていた節があるが、実際にやってみるとVSCodeと同程度に簡単に済む方法もあったので紹介したい。 何故Neovimなのか LSPの話の前に、タイトルだけ見た人がそもそも単にVSCode使えばいいじゃんと言いそうなので、どうしてIntelliJやVSCodeではなくNeovimに揃えようと思ったのかについて書いておく。
2019年ごろにVim/Neovimで開発できる環境を整えてから3年経過しました。 Neovim関連のプラグインが充実しているようで、最近はGitHub copilot XのようなGPT4ベースのツールもNeovimに対応しています。AstroNvimとか、もはやVSCodeと見間違いそうなカッコいい設定ツールも出てきました。 VimとNeovim両方で動くように.vimrcを設定していましたが、そろそろNeovimへ寄せようと思い、プラグインなどの棚卸しを行いました。 プラグインマネージャーの変更packer.nvimへ移行しました。 READMEを参考に設定後、nvimで下記コマンドを実行することで、設定ファイルに記載したプラグインがインストールされます。 LSP設定用のプラグインnvim-lspconfigに移行しました。goplsなどのLanguage Server Protoco
はじめに Neovimのプラグインで私がよく使うキーマップを紹介します。 Vim版は こちら です。 環境 macOS: Ventura 13.5.2(22G91) Neovim: v0.10.0-dev-1336+g9c2270b83 注意 表の見やすさを優先して noremap を省略している 実際に設定するときは 私のdotfiles が参考になるはず 「カスタマイズ」は私が使いやすいように変更している 私は <Leader> を , にしている わからない説明は先頭に「(?)」を付けている Neovimのプラグインでよく使うキーマップ一覧 Neovimのプラグインでよく使うキーマップの一覧です。 ノーマル ノーマルモード( n )でよく使うキーマップの一覧です。 nvim-treesitter-context 説明 デフォルト カスタマイズ 備考
最近Javaばかり書いてるもんでInteliJしか触ってなくて、neovimを放置してたのだが、やっと重い腰を上げて今風なエディタにするべく、全プラグインを見直しつつ設定を刷新した。 init.lua化 まず、普通のvimと共通の設定を作るのを諦めて、設定ファイルをinit.luaに全面的に書き直した。今となってはneovim以外を使うことは余り考えられないし、それが使えない状態だったら素のvimでええわという感じで割り切った。 設定をinit.luaに移行する時にやらなければいけないのは基本的に以下の3つ。 set number みたいな設定値をvim.opt.number = trueという形に置き換える。set nonumberみたいなのはvim.opt.number = falseになる。 keymapの設定はvim.keymap.set('n', 'L', '<cmd>tabne
Vim/NeovimでLSPを利用して関数などの定義を参照すると、気付いたら標準ライブラリなどを参照している、なんて場面があります。 どこまで実装を追いたいかは人それぞれとは言え、作業ディレクトリの内外どちらのファイルを参照しているかはすぐに気付ける方がいいでしょう。 方法としてはいくつか考えられます。 メッセージで通知するステータスラインなどにフルパスを表示する配色の変更などで訴える私は、(3)の方向性で、バッファのファイルパスが作業ディレクトリ内にあるか判定し、カラースキームを変えることにしました。 (1)のメッセージで通知する方法は、ウィンドウから目を離すなど、時間経過と共に情報が記憶から流れる可能性があります。 (2)のフルパスを表示する方法は、バッファが作業ディレクトリ内にあるか常に意識して、パスを都度確認する必要があります。加えてパスを読まねばならず、パスは「作業ディレクトリ内
Neovimのフローティングウィンドウでシェルコマンドを実行する方法について調べていたのでまとめます。 概要 nvim_open_win()の解説 フローティングウィンドウを開くために使用するのはnvim_open_win(buf, enter, config)関数です。3つの引数をとります。 第一引数はフローティングウィンドウに表示するバッファ番号です。今回はシェルコマンドを実行してすぐに破棄されるため、nvim_create_buf(v:false, v:true)で一時バッファを作るのが良いと思います。 第二引数はウィンドウに移動するかどうかの真偽値です。今回は作ったウィンドウでシェルコマンドを実行したいのでv:trueを指定します。 第三引数はウィンドウの設定で、辞書を渡します。今回の記事で使用するキーのみ紹介します。 row: 縦位置の指定です。小数も使えます。 col: 横位置
当サイトでは「アフィリエイト広告」を掲載している場合があります。消費者庁が問題としている「誇大な宣伝や表現」に配慮しコンテンツを制作しておりますのでご安心下さい。問題のある表現がありましたらお問い合わせよりご連絡いただけますと幸いです。 こんにちは。ナミレリです。エディター環境をMacとUbuntuの両方でvimやVSCodeからNeovimに移行しています。Lua言語に慣れていない私ですが、Neovimの新しい環境をセットアップするのは楽しいですね。全てを自分好みにカスタマイズできます。Lua言語に慣れていない私でも、各プラグインの公式サイトやgithubを参考にし、ある程度はやりたいことを設定できるのでLua初心者にもわかりやすく紹介します。 この記事ではLua初心者でもわかりやすく、Neovimのインストールから、最初にやっておきたいNeovimの初期設定を紹介していきます。 この記
2020年のエディタ・IDE界 2020年のエディタ・IDE界は、Vim vs Emacsとか言われていた時代も過去になり、昨今はVSCode1強になりつつあります[1]。VSCodeはデフォルトの機能も必要十分ありますし、拡張機能のエコシステムが発達してますし、リリースサイクルも早くてすばらしいの一言ですね(あとやっぱりMSがバックにいるのが何気に強い)。2015年にリリースされてからまさに飛ぶ鳥を落とす勢いです。 他に有料だとJetBrainsのIDEとかはやっぱり出来がいいですね。あとVSCodeの拡張がそのまま使えるEclipse Cheなんかも新興勢力として期待しています。 私について 世の中はいろいろ動いてますが、私はVimをかれこれ15年以上使ってます。2016年くらいにVimからNeovimに乗り換えましたが、今でもほぼ毎日使っています。 特に世界平均と比較した際に、Vim
前回の記事の続編にして最終章の幕開けである。ついにinit.lua化は果たされ、主だったプラグインはどれもLua製に置き換わった。プラグイン総数が50前後しかないカジュアルユーザの僕でも丸一日かかったがやるだけの価値はあったと思いたい。 今や業務以外ではエディタをVim一本に絞りきれるところまで馴染んだ。主流のプラグインマネージャがNeoBundleの時代からVimに触れてきた割にはずいぶん手間を食ったものだ。「Vimはサブ武器です」と尻込みしていた頃とはうってかわり、Vimはもう僕のメイン武器となった。 init.lua化の実践 ■シングルファイル Web上の様々な設定例はたいていファイルが細かく分割されている。プラグインごとに独立したファイルを与えている事例もよく見るし、init.luaが数行しかないのも珍しくない。だいたいみんな5個くらいには分けているようだ。僕も以前はinit.vi
2022-07-12 追記 かなり情報が古くなっていたので更新しました。 lua-introにもあるnanotee/nvim-lua-guideも参照してください。 日本語訳もあります。 はじめに 今回はlua.txtからLuaで設定を書くために必要なものを紹介します。 NVIM v0.8.0-dev+604-gd8360e903を使用しています。 どうやって読み込むのか .config/nvim/init.vimの代わりに.config/nvim/init.luaを置くと、設定ファイルとして読み込まれます。 init.vimとinit.luaが同時に存在するとエラーになります。 プラグインとして使用したい場合もruntimepath内でplugin/hoge.luaのように配置し、今までの.vimファイルを置き換えれば自動で読み込んでくれます。 (Vim scriptを置き換える目的なら
vimでテンプレートを使って入力の手間を省いてみようと思い、vim-sonictemplateを試してみました。 同じフォーマットの文書を編集する時には予めテンプレート化しておくと便利です。vimにおいてもテンプレート機能をもつプラグインは数ありますが、今回は様々な種類別のテンプレートを用意できる mattn/vim-sonictemplate を紹介してみます。 プラグインについて 初期から幾つもの言語用テンプレートが用意されています。また、テンプレート内にシェルコマンドも併用可能で、日付等の都度異なる値を自動入力も可能です。 インストールする 今回はlazy.tomlへの記載で行います。 vim ~/.config/nvim/lazy.toml [[plugins]] repo = 'mattn/vim-sonictemplate' テンプレートを呼び出す テンプレートは編集中のファイ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く