---
title: "Firenvimの使い方｜ChromeとFirefoxの入力欄でNeovimを動かす設定と起動しないときの対処【0.2.17対応】"
url: "https://www.issoh.co.jp/tech/details/10295/"
published: 2025-12-16
updated: 2026-11-10
categories: ["ブラウザ"]
publisher: "株式会社一創"
---

# Firenvimの使い方｜ChromeとFirefoxの入力欄でNeovimを動かす設定と起動しないときの対処【0.2.17対応】

Firenvimは、ブラウザの入力欄をローカルのNeovimに置き換える拡張です。GitHubのIssue欄をクリックすると、その位置に普段の `init.lua` を読み込んだNeovimが開き、`:w` で内容が入力欄へ戻ります。この記事は公式リポジトリ [glacambre/firenvim](https://github.com/glacambre/firenvim) の最新リリース0.2.17（2026年5月8日公開）とmaster（コミット302c105）のソースに基づき、インストール処理と通信経路はNeovim 0.12.6でmacOS上のヘッドレス実行により確かめました。ブラウザ画面の操作は公式ドキュメントによります。なお、Neovim自体をブラウザ内で動かす拡張ではなく、その用途にはttydやcode-serverが向きます。

## まとめ：Firenvimを使い始める前に確認する7点

- 導入は2段階。Neovimプラグインを入れて `firenvim#install(0)` を実行し、次にChromeウェブストアかFirefox Add-onsから拡張を入れる。
- 操作は「クリックで開く、`:w` で入力欄へ反映、`:q` で閉じる」の3つ。`:w` はフォームの送信まではしない。
- Neovimの下限は0.6.0。READMEのLua例を使うなら0.7.0以上が要る。
- lazy.nvimでFirenvimがブラウザ経由の起動時に読み込まれない設定だと、起動に失敗する。`lazy = not vim.g.started_by_firenvim` を付ける。
- 既定の `takeover = "always"` は該当する入力欄を全部奪う。業務端末では既定を `never` にして、使うサイトだけ自動起動させる形を勧める。ただし、`never` のサイトでも手動起動はでき、拡張のアクセス権限を制限する設定ではない。
- 編集中の本文は `$TMPDIR/firenvim` などに平文のファイルで置かれ、通常の終了時に削除される。ヤンクした文字列はShaDaに残る。
- Firefox 154（2026年8月18日公開）以降は、WebSocketへのLocal Network Access検査で枠が一瞬で閉じることがある。回避策は全WebSocketの保護を外すため、専用プロファイルに限る。

## Firenvimの基本操作：入力欄での起動と:wによる反映

使い方は[READMEの冒頭](https://github.com/glacambre/firenvim#how-to-use)にある数行でほぼ尽きます。入力欄をクリックするとNeovimの枠が重なり、元の入力欄は隠れた状態になります。

| 操作         | 動作                        |
| ---------- | ------------------------- |
| 入力欄をクリック   | その場でNeovimの枠が開く           |
| `<C-e>`    | 枠が出ないときに手動で開く（既定のショートカット） |
| `:w`       | Neovimの内容を隠れた入力欄へ書き戻す     |
| `:q`       | 枠を閉じて元の入力欄へ戻る             |
| URLバー横のボタン | そのタブだけFirenvimを一時的に止める    |

つまずきやすいのは `:w` の範囲です。反映されるのは入力欄の値までで、コメントの投稿やフォームの送信はページ側のボタンを押して行います。書き戻しは `BufWrite` を合図にしているので、`:w` せずに `:q!` で抜けると、編集した文字列は入力欄へ届きません。

枠を開くたびに、その入力欄専用のNeovimプロセスが1つ起動します（[background.ts](https://github.com/glacambre/firenvim/blob/master/src/background.ts) の `getNeovimInstance`）。SECURITY.mdにはブラウザ起動時にNeovimを立ち上げるとありますが、この先行起動は[0.2.17で廃止](https://github.com/glacambre/firenvim/releases/tag/0.2.17)され、現在は設定を読み取るだけです。`init.lua` も枠を開くたびに読まれるので、起動に数秒かかる設定は入力欄を開くたびに同じだけ待たされます。Neovim自体の操作や `init.lua` の書き方は[Neovim（nvim）の使い方](/tech/details/5870/)で扱っています。

## 導入手順：Neovimプラグインとブラウザ拡張の2段階

### lazy.nvimへの追加とfirenvim#installの実行

READMEのlazy.nvim例は `build` だけを指定していますが、遅延読み込みを既定にしている環境では、次のように `lazy` を足してください。

```
{
  'glacambre/firenvim',
  lazy = not vim.g.started_by_firenvim,
  build = ":call firenvim#install(0)",
}
```

Neovim 0.12.6で `lazy = true` のまま起動スクリプトを動かすと、ブラウザへ返る応答は `Your plugin manager did not load the Firenvim plugin for Neovim.` でした。ブラウザ経由の起動ではスクリプトが `g:started_by_firenvim` を先に定義するので、上の1行を入れると応答は正常なバージョン情報に変わります。

ビルドフックのないプラグインマネージャーでは、導入後にシェルから次を実行します。引数の `0` は設定ディレクトリが見つかったブラウザにだけ入れる指定で、`1` は確認せず全ブラウザへ入れる指定です。

```
nvim --headless "+call firenvim#install(0) | q"
```

Neovimの下限は0.6.0です。[autoload/firenvim.vim](https://github.com/glacambre/firenvim/blob/master/autoload/firenvim.vim) の `firenvim#install()` が `has('nvim-0.6.0')` で判定して、満たさなければ中断します。READMEのLua例は `vim.api.nvim_create_autocmd` を使うため、例をそのまま写すなら0.7.0以上が必要になります。最新安定版は0.12.6（2026年10月9日公開）で、この版への移行は[Neovim 0.12系への移行手順](/tech/details/17440/)にまとめました。

### firenvim#installが作る起動スクリプトとマニフェスト

`firenvim#install(0)` はNeovim側の設定を書き換えません。Chrome・Firefoxの設定ディレクトリだけを置いたmacOSの環境で実行すると、作られたファイルは次の3つでした。

- `~/.local/share/firenvim/firenvim`：Neovimを起動するシェルスクリプト（権限 `rwx------`）
- `~/Library/Application Support/Mozilla/NativeMessagingHosts/firenvim.json`：Firefox用マニフェスト（`rw-------`）
- `~/Library/Application Support/Google/Chrome/NativeMessagingHosts/firenvim.json`：Chrome用マニフェスト（`rw-------`）

マニフェストの呼び出し元は、Firefoxが `firenvim@lacamb.re`、Chromeが拡張ID `egpjdkipkomnmjhjmdamaniclmdlobbo` に固定されています。別のIDの拡張は起動スクリプトを呼び出せません。入っていないブラウザについては `No config detected for vivaldi. Skipping.` のような行が出ますが、使いたいブラウザがその行に出ていなければ問題ありません。Windowsでは `%LOCALAPPDATA%\firenvim` にマニフェストを置き、それを指すレジストリキーも作ります。

### 拡張の入手先（0.2.17）とChrome・Firefox以外の対応範囲

拡張は[Chromeウェブストア](https://chromewebstore.google.com/detail/firenvim/egpjdkipkomnmjhjmdamaniclmdlobbo)と[Firefox Add-ons](https://addons.mozilla.org/ja/firefox/addon/firenvim/)にあり、2026年11月時点でどちらも0.2.17です。Firefox版は128以降が対象で、154以降は切り分け章の手順3の対応が要ることがあります。

READMEが明確にサポートと書くのはFirefoxとChromeです。OperaとVivaldiは動くはずだが個別にテストはしていない、Edgeは動くかもしれない、Safariは動かない、という扱いで、BraveとArcは脚注が「動くはず」、本文が「動くかもしれない」と表現が割れています。Chromium系のブラウザでは、Chromeウェブストア版の拡張を入れられることと、インストールスクリプトがそのブラウザの設定ディレクトリを見つけられることが条件です。

## firenvim\_configの書き方：サイト別の許可とキーの扱い

### takeoverとpriorityで作るサイト別の許可リスト

設定は `init.lua` の `vim.g.firenvim_config` にまとめます。`localSettings` のキーはURL全体に当てるJavaScriptの正規表現です。業務でWebフォームを多用する端末では、既定を止めて必要なサイトだけ許可する次の形を勧めます。

```
vim.g.firenvim_config = {
  localSettings = {
    [".*"] = {
      takeover = "never",
      selector = "textarea",
      priority = 0,
    },
    ["^https?://github\\.com/"] = {
      takeover = "always",
      priority = 1,
    },
  },
}
```

正規表現はURLのどこかに一致すれば通るので、許可する側には `^` を付けます。付けないと、クエリに `https://github.com/` を含む別サイトのURLでも `always` になります。既定の `always` のままだと、社内ツールのコメント欄のようにブラウザで直接打ちたい場所でも編集枠に切り替わります。`selector` の既定は `textarea:not([readonly], [aria-readonly]), div[role="textbox"]` で、GmailやSlackのようなリッチテキストエディタも対象になるため、`textarea` に絞ると誤爆が減ります。

READMEは「最も高い `priority` のパターンが使われる」と書いていますが、[configuration.ts](https://github.com/glacambre/firenvim/blob/master/src/utils/configuration.ts) の実装は一致した設定を `priority` の昇順に `Object.assign` で重ねます。そのため上の例では、GitHub側に `selector` を書かなくても `textarea` が引き継がれます。`priority` の高い設定には、上書きしたい項目だけ書けば足ります。

| キー       | 取りうる値                                    | 既定値      |
| -------- | ---------------------------------------- | -------- |
| takeover | always / once / empty / nonempty / never | always   |
| cmdline  | neovim / firenvim / none                 | firenvim |
| content  | text / html                              | text     |
| renderer | canvas（htmlは削除済み）                        | canvas   |
| priority | 数値                                       | 0        |

`takeover` の `once` は最初の選択時だけ奪い、`:q` の後はショートカットが必要になります。`empty` は空の欄だけ、`nonempty` は入力済みの欄だけが対象です。`cmdline` はREADMEの設定例が `neovim` と書いていますが、実装の既定は領域を節約する外部表示の `firenvim` です。例を写すとNeovim標準のコマンドラインに変わり、狭い入力欄では編集に使える行が減ります。

Luaの書き方にも落とし穴があります。READMEの `vim.g.firenvim_config.localSettings[...] = {...}` という入れ子への代入は、Neovim 0.12.6で確かめても値が保存されませんでした。すでに定義済みの設定へ後から足すなら、ローカル変数で受けて代入し直します。

```
local cfg = vim.g.firenvim_config
cfg.localSettings["^https?://[^/]+\\.co\\.uk/"] = { takeover = "never", priority = 2 }
vim.g.firenvim_config = cfg
```

設定を変えたのに挙動が変わらないときは、ブラウザの拡張ボタンから開くポップアップの `Reload settings` を押します。拡張は読み取った設定をブラウザ側の保存領域に持っているためです。

### ブラウザが握るキーとMetaキーの取り返し方

`<C-n>`・`<C-t>`・`<C-w>` は通常の方法では上書きできません。Chromeは `chrome://extensions/shortcuts`、Firefoxは `about:addons` のショートカットメニューから、拡張の `send_C-n`・`send_C-t`・`send_C-w` にキーを割り当てます。手動起動の `nvimify` と、タブ単位で止める `toggle_firenvim` も同じ画面で変更できます。

逆にブラウザへ渡したいキーは `ignoreKeys` に書きます。キーがNeovimのモード名、値がキーの配列です。修飾キーはShift、Alt、Control、Metaの順に並べ、`Ctrl+Alt+Shift+1` は `<SAC-1>` になります。

```
-- vim.g.firenvim_config のテーブルに足す
globalSettings = {
  ignoreKeys = { all = { '<C-->' }, normal = { '<C-1>', '<C-2>' } },
},
```

macOSのoptionキーは、ブラウザがキーを受け取った時点で別の文字に変わっています。macOSでの既定 `alt = "alphanum"`（他のOSの既定は `all`）はoption+oを `ø` として渡し、`alt = "all"` は `<M-ø>` として渡すので、どちらでも `<M-o>` のマッピングは動きません。

## Firenvimのときだけ効かせる表示とfiletypeの設定

### g:started\_by\_firenvimによるステータス行の非表示

入力欄の高さは数行のことが多いので、ブラウザ経由の起動時だけUIを減らします。判定に使うのは、起動スクリプトが定義する `g:started_by_firenvim` です。

```
if vim.g.started_by_firenvim then
  vim.o.laststatus = 0
  vim.o.showtabline = 0
end
```

設定の分岐が増えてきたら、Firenvim専用の設定ディレクトリを持つ方法があります。`NVIM_APPNAME` を指定して `firenvim#install()` を実行すると、その値が起動スクリプトに書き込まれます。環境変数の渡し方は[環境変数とは？Linux・Windowsの設定方法とDocker・CIでの受け渡し](/tech/details/17616/)を参照してください。

### バッファ名とコードエディタの言語判定によるfiletype設定

バッファ名の既定は `{hostname%32}_{pathname%32}_{selector%32}_{timestamp%32}.{extension}` です。先頭がホスト名なので、GitHubの入力欄だけMarkdownとして開くことができます。

```
vim.api.nvim_create_autocmd("BufEnter", {
  pattern = "github.com_*.txt",
  command = "set filetype=markdown",
})
```

`{extension}` は通常の入力欄では `txt` ですが、Ace・CodeMirror・Monacoで作られたエディタ上では、そのエディタの言語設定から拡張子が決まります。Goの入力欄なら `.go` で開くので、`init.lua` のLSPやハイライトの設定がそのまま当たります。

## 権限と入力内容の置き場所：業務端末で導入する前の確認事項

### 拡張の権限とローカル通信の保護

READMEは導入前に[SECURITY.md](https://github.com/glacambre/firenvim/blob/master/SECURITY.md)を読むよう求めています。拡張が要求する主な権限は、`<all_urls>`（全サイトのページへ枠を追加するため）と `nativeMessaging`（Neovimを起動するため）です。ほかに `scripting`・`storage`・`alarms` を要求し、Chrome版のビルドではホスト権限に `file:///*` も加わります。

拡張とNeovimの間はWebSocketで、TLSはかかりません。保護は2段です。Neovimは `127.0.0.1` にだけバインドし、拡張は256ビットのランダムな値を接続のパスに入れます。起動スクリプトへ直接接続して確かめたところ、待ち受けは `127.0.0.1:<ポート>` のみで、異なるパスワードを送るとNeovimは5回すべて0.1秒以内に終了しました。推測で接続を試みるページがあってもコマンドは実行できず、プロセスが終わるだけです。

残る懸念としてSECURITY.mdが認めているのは、悪意のあるページが大量の入力欄を作ってフォーカスし、プロセス・ポート・メモリを枯渇させる攻撃です。防御策としてはapparmorによる隔離が案内されています。

### 編集中の本文の平文保存と終了後の残存

Firenvimは入力欄の内容を実際のファイルへ書き出してからNeovimで開きます（[frame.ts](https://github.com/glacambre/firenvim/blob/master/src/frame.ts) の `writefile`）。作業ディレクトリは `$XDG_RUNTIME_DIR` または `$TMPDIR` の下の `firenvim` で、インストール時の値が起動スクリプトに書き込まれます。計測ではディレクトリの権限が `700`、ファイルは `644` でした。

| 終わり方                 | 編集ファイル |
| -------------------- | ------ |
| WebSocketを閉じる（:q 相当） | 削除された  |
| 親の接続が切れる（ブラウザ終了相当）   | 削除された  |
| SIGKILLで強制終了         | 残った    |

削除は `VimLeave` の処理に任されているので、Neovimが後始末できない終わり方では残ります。もう1つの残存先がShaDaで、ヤンクした文字列は元のファイルを消しても `main.shada` の中に残っていました。Firenvimで個人情報を扱う可能性があるなら、次の3行をブラウザ経由の起動時だけ効かせます。この設定で同じ操作をしたときは、状態ディレクトリから文字列が見つかりませんでした。

```
if vim.g.started_by_firenvim then
  vim.o.swapfile = false
  vim.o.undofile = false
  vim.o.shadafile = "NONE"
end
```

既定の `selector` は `textarea` と `div[role="textbox"]` だけなので、`input` 要素のパスワード欄が自動で奪われることはありません（`<C-e>` の手動起動はフォーカス中の要素が対象になります）。判断としては、個人の開発端末で使う範囲なら上の設定と許可リストで足ります。顧客情報を扱う業務システムを開く端末へ全社展開する使い方は勧めません。全サイトへのアクセス権とネイティブ実行の権限を持つ拡張を配ることになり、許可リストはユーザー各自の `init.lua` に依存するからです。

## Firenvimが起動しない場合の症状別切り分け

`chrome://` のページやChromeウェブストア、Firefoxの `about:addons` などの特権ページや組み込みPDFビューアにはブラウザの制限で拡張のスクリプトが入らないので、枠が出なくて当然です。厳しいCSPを持つページでの失敗は[Issue #1681](https://github.com/glacambre/firenvim/issues/1681)で追跡されています。通常のページでも動かないときは、下の表で症状に近い手順から確認します。

| 症状                  | 原因の候補                              | 確認先   |
| ------------------- | ---------------------------------- | ----- |
| 枠がまったく出ない           | マニフェスト未作成・プラグイン未読込                 | 手順1・2 |
| 拡張のアイコンに警告が出る       | プラグインと拡張の版が不一致                     | 手順2   |
| 枠が一瞬出てすぐ閉じる         | Firefox 154以降のLocal Network Access | 手順3   |
| Snap・Flatpak版だけ動かない | サンドボックスの権限                         | 手順4   |
| 外部コマンド依存のプラグインだけ失敗  | ブラウザの $PATH                        | 手順5   |

### 手順1：firenvim#install(0)の出力確認

Neovimを引数なしで起動して `:call firenvim#install(0)` を実行します。`Installed native manifest for <ブラウザ名>.` が出れば正常です。使いたいブラウザに `No config detected` と出るなら、設定ディレクトリが標準の場所にありません。標準の場所へシンボリックリンクを張るか、`firenvim#install(1)` で強制インストールしてから内容をコピーします。`Unknown function: firenvim#install` はプラグイン自体が読み込まれていない状態です。

### 手順2：起動スクリプトの単体実行と版の一致

```
echo 'abcde{}' | ${XDG_DATA_HOME:-${HOME}/.local/share}/firenvim/firenvim
```

先頭の数バイトに続いて `{"messages": [], "version": "0.2.17", ...}` が返れば正常です。`version` が `0.0.0` で `Your plugin manager did not load the Firenvim plugin` と返るなら、前述の遅延読み込みの設定を見直します。拡張をアップデートしたあとに `Neovim plugin version (…) and browser addon version (…) do not match.` の警告が出たら、プラグインを更新して `firenvim#install(0)` を実行し直してください。

### 手順3：Firefox 154以降のLocal Network AccessによるWebSocket遮断

2026年8月18日公開の[Firefox 154](https://www.firefox.com/en-US/firefox/154.0/releasenotes/)で、Local Network Accessの保護がWebSocketにも広がりました。Firenvimの編集枠は `ws://127.0.0.1:<ポート>` へ接続するので、この検査に止められると枠が一瞬だけ表示されて閉じ、コンソールに `127.0.0.1` への接続失敗（`can’t establish a connection to the server`）が出ます。同じ症状は[Issue #1732](https://github.com/glacambre/firenvim/issues/1732)にFirefox 154とZenで報告があり、2026年11月時点でオープンのままです。同じIssueにはGitHubでは動いて他のドメインで失敗するという報告もあるので、1つのサイトで動いても解消の根拠にはなりません。

[TROUBLESHOOTING.md](https://github.com/glacambre/firenvim/blob/master/TROUBLESHOOTING.md) が示す回避策は、`about:config` で `network.lna.websocket.enabled` を `false` にする方法だけで、拡張ごとの例外を指定するAPIはありません。全サイトのWebSocketから保護が外れ、任意のページが `127.0.0.1` やプライベートIPを探れるようになるため、`false` にするのはFirenvim専用のプロファイルに限ります。

### 手順4：Snap・Flatpak版のブラウザの権限

パッケージ管理の形式によってはサンドボックスがNeovimの起動を止めます。`flatpak permissions webextensions` で確認し、拒否されていれば `flatpak permission-set webextensions firenvim snap.firefox yes` で許可します。Ubuntuの標準であるSnap版Firefoxを使っている環境は、ここを最初に確認してください。

### 手順5：ブラウザから見える$PATHの差

起動はするのに外部コマンドに依存するプラグインだけが動かないなら、シェルの `echo $PATH` とFirenvim内の `:!echo $PATH` を比べます。現行の起動スクリプトは `export PATH="$PATH:<インストール時の PATH>"` の1行を持ちます。インストール時のPATHに必要なディレクトリが入っていないと、外部コマンドが見つかりません。パスの通ったシェルで `firenvim#install(0)` をやり直すのが最初の手段です。追記は末尾なので、別の版のコマンドが先に見つかる場合は `firenvim#install(0, 'export PATH="..."')` の第2引数で並び順を指定します。

## Neovimをブラウザで使う別の手段との選び分け

下の表の中で、入力欄の位置にNeovimの画面そのものが出るのはFirenvimだけです。GhostTextなどはエディタ側の別ウィンドウで編集し、ttydとcode-serverはブラウザ内に端末やエディタを出す方式で、入力欄は置き換えません。

| ツール                       | 編集する場所        | エディタ                 | 主な前提                   |
| ------------------------- | ------------- | -------------------- | ---------------------- |
| Firenvim                  | ページ内の枠        | Neovimのみ             | プラグイン＋拡張               |
| GhostText                 | エディタの別ウィンドウ   | VS Code・Vim・Neovimほか | 各エディタ用プラグイン            |
| Textern                   | エディタの別ウィンドウ   | 任意                   | Firefox・Linux用ネイティブアプリ |
| Tridactyl                 | エディタの別ウィンドウ   | 任意                   | Firefox・ネイティブメッセンジャー   |
| ttyd                      | ブラウザ内の端末      | 端末で動くもの              | サーバー側でttydを起動          |
| code-server＋vscode-neovim | ブラウザ内のVS Code | Neovim 0.10.0以上      | code-serverの実行環境       |

入力欄ごとにNeovimの環境を使いたいならFirenvim、VS CodeやEmacsと併用するなら[GhostText](https://github.com/fregante/GhostText)（Neovimは [nvim-ghost.nvim](https://github.com/subnut/nvim-ghost.nvim) で接続）、Firefoxで全操作をVim風にしたいなら[Tridactyl](https://github.com/tridactyl/tridactyl)が向きます。[Textern](https://github.com/jlebon/textern)はエディタ側へのプラグインが要らない代わりに、ネイティブアプリの対応がLinuxに限られ、Firefox Add-onsの掲載版も0.8（2023年6月更新）で止まっています。Vim本体しか使っていない環境では、Neovim専用のFirenvimは選べません（Vim側の現行版は[Vim 9.2の新機能と更新手順](/tech/details/11043/)で扱っています）。

## 日本語入力の扱い：ChromeとFirefoxの差とskkeleton

### ChromeとFirefoxで異なるIME合成イベント

IMEの変換確定の扱いはブラウザによって違います。`src/KeyHandler.ts` のコメントは中国語Pinyin入力での観測を記録していて、確定の入力イベントはFirefoxでは `compositionend` の後に届き、Chromeでは前に届くうえ `isComposing` が真のままです。Firenvimはこの差を、Chromeだけ `compositionend` を監視して埋めています。日本語IMEも同じ処理を通るので、不具合を報告するときはブラウザ名とバージョンを必ず添えてください。

### skkeletonでNeovim側に日本語入力を寄せる判断

OSのIMEを通さない構成として、SKK方式の [skkeleton](https://github.com/vim-skk/skkeleton) があります。Firenvimの枠の中で使う運用は[Vim as an IMEの解説](https://zenn.dev/dog/articles/vim-as-an-ime)に例があります。ブラウザのどの入力欄でも同じ辞書を使えます。必要なのは依存先の [denops.vim](https://github.com/vim-denops/denops.vim) が要求するDeno 2.3.0以上とNeovim 0.11.3以上で、Firenvimの下限である0.6.0では動きません。IMEの変換窓がFirenvimの枠と干渉する、複数のマシンで辞書を揃えたいなどの具体的な不満がなければ、SKKの習得とDenoの管理を増やす理由は薄いと判断します。denops.vimの仕組みは[denops.vimとは](/tech/details/12611/)で解説しています。

## よくある質問

### FirenvimはChromeでも使えますか？

使えます。Chromeウェブストアの拡張（0.2.17）と、Neovim側の `firenvim#install(0)` の両方が要ります。拡張だけではNeovimを起動するためのマニフェストが作られず、クリックしても枠が出ません。Brave・Vivaldi・OperaなどのChromium系ブラウザでも同じ拡張を使います。

### Neovimのバージョンはいくつ必要ですか？

0.6.0以上です。付属のTROUBLESHOOTING.mdとChromeウェブストアの説明文には0.4.0とありますが、インストール処理の実装は0.6.0で判定しているので、実装の値を採ってください。READMEのLua例をそのまま使うなら0.7.0以上、skkeletonと組み合わせるなら0.11.3以上が条件になります。

### 特定のサイトだけFirenvimを無効にできますか？

できます。`localSettings` に対象サイトのURL正規表現を追加し、`takeover = "never"` と、既定のパターンより大きい `priority` を指定するだけです。そのタブだけ止めるなら、URLバー横のボタンで足ります。

### 編集内容を自動で入力欄に反映できますか？

可能です。Firenvimは `BufWrite` を合図に入力欄へ書き戻すので、`TextChanged` と `TextChangedI` の自動コマンドで `write` を呼べば同期されます。本文が長いと遅くなるため、READMEには `timer_start` で書き込みを10秒に1回へ間引く例も載っています。

### Neovimをブラウザの中で使う方法はFirenvim以外にありますか？

入力欄の編集が目的なら、前章の表のGhostTextやTexternが候補です。端末ごとブラウザへ出すなら[ttyd](https://github.com/tsl0922/ttyd)（書き込みには `-W` が必要）、VS Code環境なら[code-server](https://github.com/coder/code-server)と[vscode-neovim](https://github.com/vscode-neovim/vscode-neovim)（Neovim 0.10.0以上）の組み合わせがあります。Firenvimはブラウザ内にNeovimを同梱しておらず、ローカルのNeovimが必須です。

## 関連記事

- [Neovim（nvim）の使い方｜基本操作・init.lua設定・プラグイン・LSP【0.12.6対応】](/tech/details/5870/)
- [Neovim 0.12系への移行手順：vim.packと内蔵LSP・自動補完の実装【0.12.6対応】](/tech/details/17440/)
- [denops.vimとは｜Deno 2でVim/Neovimプラグインを書く仕組みと導入・開発手順【v8対応】](/tech/details/12611/)
- [Vimとは？読み方・viとの違いと使い方｜基本コマンド・終了方法・.vimrc設定](/tech/details/4840/)
- [Vim 9.2の新機能と最新バージョン確認・更新手順｜Enum・Tuple・Wayland対応とパッチ判定](/tech/details/11043/)

---

出典: [Firenvimの使い方｜ChromeとFirefoxの入力欄でNeovimを動かす設定と起動しないときの対処【0.2.17対応】](<https://www.issoh.co.jp/tech/details/10295/>)（株式会社一創）
