
3月頃にすでに一部のChromeの拡張機能が使えなくなる警告は出ていましたが、とりあず手動で有効にすれば使えていました。 ただ、今回一度落として再起動した際にManifest V3のアップデートが完全に?有効になったようで 有効にすることが不可能になりました。 いくつか使えなくなったものがありますが、cVimの乗り換えに関して。
これまで使っていたものVimperator -> cVim
ブラウザでVimライクな操作をするための拡張機能として 元々FirefoxでVimperatorを使っていましたが、 Firefoxのアップデートで数々の拡張機能が使えなくなり、 似たような拡張機能を探して、一番使えそうなVimiumという拡張機能を試してみました。 ただ、基本的にはキーマッピングを変える位しか出来ないので Vimperatorとは程遠いものでした。 VimiumはFirefox版もChrome版もあり、そこも良い点ですが、 特にFirefox版はうまく動かないものも多く使えませんでした。
そこでもはやFirefoxにこだわる必要もなくなったのでChromeに乗り換えました。
ChromeにはcVimという拡張機能があり、それがある程度Vimperatorの代わりになるものだったので これまでずっとそれを使ってきました。
ただ、このcVimはかなり前にChromeのウェブストアからは消えていて 自分でビルドして入れたりしていました。
ただ今回のChromeのアップデートで完全に使えなくなったので、 自分でなんとかコードをアップデートして使うか、別なものを使うかというところで 色々見てみた結果、 Vimiumをフォークした Vimium C が良さそうだったので乗り換え先にしました。
Vimium Cへの乗り換え
オリジナルのVimiumは基本的にはキーマッピング+Hit a hint(リンクに対してヒントを表示してそれをキーボードで選択する)という機能がメインでした。
VimperatorやcVimはコマンドラインモードもあり、コマンドの定義も出来てそれによっていろいろな操作が出来るようになっていましたが、 Vimiumでは出来ず、これに関してはVimium Cでも出来ません。
ただ、Vimiumではキーマッピングも基本的にはもともとあるコマンドに対してキーマッピングを設定するというものですが、 Vimium Cではより複雑な設定が出来るのと、 独自コマンドの拡張で特定のURLを開くキーを設定したりすることも出来るようになっています。
これでだいたいいまやりたいことが出来そうだったのでVimium Cで一通り設定をしてみました。
設定
Custom key mappings
以下をVimium CのオプションのCustom key mappingsに追加。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
leader
設定はVimium、Vimium Cともにサポートされてませんが、
擬似的にmapKey
を使うことで実現できます。
Feature Request: Leader key support · Issue #1986 · philc/vimium
leader keyword support · Issue #1107 · gdh1995/vimium-c
Move/Tab及びOthersにある設定はVimiumでも出来るものです。
また、<a-f>
をunmapしているのは、Chromeの検索を別途で<a-f>
で使いたいからです。
Vimium Cを使った理由はそれ以外のautoOpen
とopenUrl
コマンドを使ってもの。
ワンキーで選択中のテキストをGoogleで検索する、という操作をVimperator以来よく使っているのでそれがないと困るのですが、 Vimiumだと実現は難しそう。
一方、Vimium Cなら、autoOpen
というコマンドを使いそれを実現できます。
1
|
|
ここでkeywoard
で指定しているものは
オプションのCustom search enginesで設定されているもので、
google
はデフォルトで設定されています。
これで選択中のテキストをGoogleで検索して開けます。
似たようなことはVimiumでも例えばVisualモードに入って単語を選択して、p
で検索、ということも出来ますが、
左手キーボード、右手マウス、といった 感じで操作している際に右手で選択して左手で一発サーチ、
がしたいのでこれが必要です。
もう一つはopenUrl
コマンドで、これはその名の通り指定したURLを開くコマンドです。
VimperatorやcVimであったqmark
のような使い方も出来ますし、
これにBookmarkletのコードを指定することも出来るので
表示中のページのいろいろな情報を取得したりすることも出来るようになります。
上の設定では<leader>i
(,i
)で表示中のページを[url](title)
の形式でクリップボードにコピーするBookmarkletを実行します。
ちょっと後半にごちゃごちゃと追加がありますが、
navigator.clipboard.writeText(m)
より後は右下にコピーしたよ、という表示を出すためのものなので必要なければ削除しても大丈夫です。
ちょっとURLをメモしておきたいときに便利でよくつかうのでこれもないと困るもの。
Vonibarを半透明にする
o
などで表示されるVomnibarですが、例えばちょっと表示されてるページの何かを検索しようと思ったとき、
見ながら検索したいのにVomonibarが出てしまうと完全に見えなくなってしまい困ることがあります。
cVimでも同じようなことがあって、そういった表示を半透明にするようにしていました。
Vimium Cでも同じように、 Custom CSS for Vimium C UIの設定に
1 2 3 4 |
|
という設定を加えることで半透明にします。
こんな感じ。
Link hintsの表示文字の変更
Characters used for link hintsの設定を
1
|
|
に。元々は
1
|
|
だけですが、使いやすいように。
戻る/進むの文字列の追加
[[
や]]
でページに愛に有るprev
やnext
といった文字のリンクに進むことが出来るようになっていますが、
この文字列の設定がデフォルトだと英語と中国と記号、といった感じになってるので日本語を追加します。
Previous patterns
1
|
|
Next patterns
1
|
|
それぞれ、前へ
, 次へ
以降のものが追加したもの。
キーボードショートカット
WindowsやLinuxで、上記のマッピングのように<c-n>
を設定しようとしても効かずにChromeの下の新しいウィンドウを開くの動作が出てしまいます。
Why can’t I remap Ctrl-N and similar keys on Linux and Windows?
このキーを右のタブに移るnextTab
に設定したいのですが、
この動作に関しては拡張機能の設定でキーボードショートカットへ行くと、Vimium Cの設定もあり、
その中にGo one tab rightという項目があるのでここにCtrl+N
を設定することで
<c-n>
で右のタブに移ることが出来るようになります。
ついでにCtrl+P
も左のタブに移るGo one tab leftに設定しておきます。
ここで設定するとメリットもあって、Chromeのより上流の設定になるので 通常Vimium Cが無効になるChromeのウェブストアのページなどでも動作する状態になります。 なのでmacOSでもこちらでやっておくことにします。
他のhistoryやreloadなどもそういったページで動作させたい場合はここでキー設定をしておくと出来るようになります。
あと、場合によっては別の拡張機能がこのキーボードショートカットで上書きしてることもあって、 拡張機能のオプションでショートカットが見つからずに変更できないという場合もあるので、 キーボードショートカット一覧をチェックして必要なら別の拡張機能のショートカットも変更しておくと良いです。
Windows, AutoHotkeyの設定
検索キー
Windowsの場合、
1 2 3 |
|
のような設定をAutoHotkeyでしています。
これはCtrl-FをscrollFullPageDown
に設定しているので
代わりの検索キーです。
Vimium Cの機能でも/で検索が出来ますが、 サイトによってうまくいかなかったりする場合にChromeの検索だとうまくいくことがあるので一応すぐに使えるように。
cVimの場合だとGitHubなんかで/検索すると表示が崩れてましたが その点Vimiumでは問題なく動作しているので、検索に関してはVimiumの方が安定しているかも。
上のキーバインドがちょっとよくわからないものになってますが、
!f
: Alt-Fでメニューにフォーカスf
: Fで検索と編集の項目にフォーカスf
: Fで検索を実行
という役割です。 Ctrl-Fが使えないのでメニューから実行のを変わりにやっていますが、 別の方法としてはAutoHotkeyで
1 2 3 4 |
|
のように交換しておいて、scrollFullPageDown
を<a-f>
に設定する、という方法でも良いかもしれません。
進む、戻る
VimiumでもgoBack
/goForward
というコマンドでブラウザ履歴の戻る、進むが出来き、
また拡張機能のキーボードショートカットでもGo back in history/Go forward in historyという項目で
設定することも出来ます。
ただ、この動作は他のアプリでもよく使うもので、さらにOS共通のショートカットの Alt-Left/Rightで 行えるのでAutoHotkeyで設定してあります。
1 2 3 |
|
これであればChromeのウェブストアのページなどでも動作するという利点もあり、 エクスプローラーなどでもCtrl-Oで戻る、なども出来るようになります。
ただ、一つ欠点として、これらのキーが潰れるので、必要であれば特定のアプリだけで使うようにした方が良いかもしれません。 自分的にはターミナル上での作業でも特に使わなくても困らないので全体設定にしてあります。
一つ被るものとしてはMicrosoft IMEで、Ctrl-Iがカタカナに変換、のキーになっている点。 Google日本語入力を使ってますがMS IMEの設定ベースのキーを使っているので同様にCtrl-Iを使います。 たまに使うので使えないと面倒なので、
1 2 |
|
としてAlt-Iでカタカナ変換出来るようにしてあります。
これに関してはIMEの設定で変更することも出来ますが、 変更する方を統一しておきたいのでAHKで変更してあります。
macOS, Karabiner-Elementの設定
検索キー
macOSの場合には元々ブラウザの検索はCmd-Fなので<c-f>
を設定してもそのままで大丈夫です。
進む、戻る
macOSではChromeやFinderではCommand-[/]で戻る、進むが出来るので これを設定します。
Wndows同様IMEの問題があるのでこちらもCommand-Iでカタカナ変換が出来るようにしておきます。
この設定は
からPersonal SettingsをImportすると
Next/Prev by Ctrl-i/o, Ctrl-left/right arrow、及び Cmd-i as Ctrl-i, for IME katakanaという設定があるのでそれを有効にすることで設定が出来ます。