cVim カスタマイズ
cVimは、Vimぽい操作で動かせる、Google Chrome拡張機能です。
前は、Vichromeをカスタマイズして使っていました。一部機能が使えないので前に乗り換えましたが、Migemoは便利でしたので惜しいです。
機能は色々と多いですが、類似のVimiumも機能が増えてきているので、好きな方でいいのかも。
設定も一段落したので、メモ代わりに置いておきます。
環境
- Windows10 64bit
- Magic Keyboard - US
- cVim 1.3
機能
1995eaton/chromium-vim · GitHub
説明が英語なんですが、ブラウザの翻訳機能などで何とか頑張って読んで下さい。他よりも機能は多いので色々とできます。
基本的な機能は他のVim系と似ていますので、基本的な操作についてはそこまで難しくはないと思います。
キーボードだけで文字選択する、Visual/Caret Modeは、マウスの方が速いので使わなくていいかなと思います。
ヘルプページは、:
押して、help
と入力してEnter
で移動できます。
また、設定のページは、:
押して、settings
と入力してEnter
で移動できます。
微妙な点
- 他のVim系に比べて少し重め
zr
でブラウザ再起動が動かない
少し重い時があるので、古いpcだと厳しい時があるかも。
最近のpcなら問題無いと思いますが、表示したサイト自体が重い時はどうしようもないですね。
再起動が動かないのは、ブラウザ側の問題らしいという書き込みを見た気がするので、今のところは無理っぽい。
海外用の検索エンジンを変更する
デフォルトだと海外用で検索されてしまうので、cVimrcで、設定を変える必要があります。
cVimrcの設定を変更したらSave。適用されていなかったときはブラウザ再起動して下さい。
googleなら、自動でリダイレクトするので設定しなくても大丈夫なはずです。
1.地域の変更
1 | let locale = "jp" |
2.登録されている検索エンジンを外す為に、googleだけを有効にして、google.co.jpをデフォルト検索に
google.co.jpは設定しなくても、1でjp指定していれば大丈夫みたいです。
1 | " completionengines |
3.検索エンジンを登録する
1 | " Amazon jp |
4.検索が簡単に出来るようにsearchaliasに登録
1 | let searchalias a = "nb_sb_noss_2" |
これで、o
かt
を押すと、コマンドバーが表示されるので、amazonで検索したいなら、a
半角スペース
検索文字
Enter
で検索できます。o
が同じタブで検索。t
が新規タブで検索。
googleはデフォルト検索にしたので、o
やt
の後に検索文字
Enter
で検索できます。また、a
でも新規タブで検索ができます。
ちなみに、コマンドバーの位置は、barposition
で変えられます。
前は、searchaliasに、amazon、wikipediaで登録できたのですが、今は英語版が表示されてしまったり、動作が上手くいかないことがあるので、他の名称で登録します。
現在は登録できます。
C-nで選択出来るようにする
今のところ、ブラウザのキーボードショートカットが優先されてしまい動きません。C-p
は問題ないです。Tab
で代用はできます。S-Tab
で逆移動になります。
コマンドバーで選択する時に使えると便利です。
ブラウザのキーボードショートカットが優先されるので、変更します。
1.設定を追加
1 | set cncpcompletion |
2.chrome://extensions
へ移動
3.左上の拡張機能メニュー左の三本線 > キーボードショートカットをクリック
4.cVimの、Let Chrome useCtrl-N
に設定する
他にも変更出来る項目があるので、変更したい場合は変更して下さい。
サイトを開いた時のフォーカスを無効にする
1 | set noautofocus |
cVimの機能を使おうとしたら、検索バーに文字入力していたというようなことが防げます。
ページナビ移動
1 | let previousmatchpattern = '((?!last)(prev(ious)?|newer|back|less|<|‹|«|←|前へ|前のページ| )+)' |
[[
ページ上の戻るリンクをクリック]]
ページ上の次へリンクをクリック
previousmatchpattern
とnextmatchpattern
は、ページ移動するときに探すキーになります。
矢印と日本語を追加しておきました。
Hit a Hintの表示文字
1 | let hintcharacters = "asdfghjklwertuioxcvnm" |
f
などを押した後に左手だけで押せるようにしていて、右手でマウスを併用する時に便利です。
f
現在のタブでリンクを開く。F
新しいタブでリンクを開く。W
新しいウィンドウでリンクを開く。mf
複数のリンクを開く。
今は
1 | let hintcharacters = "asdfghjklwertuoxcvnm" |
にして両手で押しています。
QuickMarks
1 | let qmark s = ["http://www.speedtest.net/"] |
上記設定後、gos
で現在のタブで設定したURLを開きます。
gns
新しいタブで設定したURLを開く。gws
新しいウィンドウで設定したURLを開く。
ブラウザのブックマークみたいなもので、すぐに移動できるので、よく使うサイトを登録しておくと便利です。
execute
1 | map <C-g> :execute vyP<CR> |
上記設定後、マウスで文字選択した後にC-g
押すと、新しいタブで、選択した文字の検索結果やURLが開けます。
v
Visual/Caret Mode 切り替え。y
現在の選択をコピー。P
新しいタブで選択したテキストを開く。
連続で実行出来るので、色々と応用が効きそうだと思います。
iunmapAll
1 | " Text boxesを全て無効 |
入力欄でvimっぽい操作ができますが、使わないので無効にしています。
Site-specific Configuration
サイトの特定のキーボードショートカットを優先して、cVimのキーを無効化する設定。
1 | " Site-specific Configuration |
passkeys
cVimをパスして、サイトにキーを渡す。unmap
cVimでキーを無効化する。
前に、feedlyなどのサイトの設定で、gg
などの除外が効かないと記載しましたが、色々と試したら、少なくともfeedlyでは無効化出来ました。すみません。unmap
で無理な場合は、passkeys
を試してみて下さい。
サイトとcVimのどちらのキーを優先させるのか、結構悩みますね。
numerichints
1 | site 'https://toggl.com/app/timer*' { |
数字でHit a Hint出来るようになります。
Hit a Hintのキーよりもサイトのキーが優先されるサイトもあるので、そういうサイトでは設定するといいです。
cVimをサイトで無効化
1 | let blacklists = ["https://mail.google.com/*","https://www.google.com/calendar/*"] |
サイトを追加すると無効化できます。
cVimの機能が不要で、サイトのキーボードショートカットを優先したいときにどうぞ。
insertMode
一時的にcVimを無効化したいときは、i
を押すと一時的に無効化できます。
再び有効化するときは、Esc
で解除できます。
script
vimperatorの代替としてcVim入れてみた - Qiita
ページタイトルとURLをコピーするスクリプトが書いてあったので、参考になります。
スクリプトが書ける方ならば、色々出来そうですね。
cVim - SanRin舎
参考になるリンクが沢山あるので助かります。
他の変更部分の補足
ファイラのPaper Plane xUIを使っていて、両方で出来るだけ同じキーバインドにして押しやすくしているので、結構変えています。
他には、よく使う検索エンジンやサイト登録の一部を載せています。
後は、スクロール量を変えていたりなどしています。
設定ファイル
追記
2015-12-16
- 間違えていた部分を修正
- TOPSYから、Yahoo!リアルタイム検索へ変更
2016-01-08
- cVim 1.2.80 > cVim 1.2.81へ変更
- Hit a Hint、QuickMarks、executeの説明を追加
- smoothscrollがデフォルトで無効になったので有効へ
- executeを追加
2016-06-12
- 環境 変更
- Windows7 64bit > Windows10 64bitへ変更
- Apple Wireless Keyboard (US) > Magic Keyboard - USへ変更
- cVim 1.2.81 > cVim 1.2.84へ変更
- cVim 1.2.82でunmapを纏めて書けるようになったので変更。前のバージョンでは動きません
- 海外用の検索エンジンを変更しても、英語版が表示されていたので変更
- 検索エンジンにSocial Bearingを追加
- qmarkを一部削除。追加
2017-11-14
- cVim 1.2.98へ変更
- scriptの説明を追加
- searchengineで設定した後にsearchaliasを書くように変更
- 検索エンジンなどを一部修正、追加、削除
2018-01-23
- cVim 1.2.99へ変更
- Hit a Hintの表示文字へ追加
- qmarkを一部修正、追加
- Site-specific Configurationを修正、追加
2018-02-17
- C-nで選択出来るようにするで、
C-n
が動かない説明を追加 - Site-specific Configurationの説明を追加し、関連する説明を修正
- feedlyを追加
- cVimをサイトで無効化の説明を追加
- 追記に新記事、cVimでフォントやサイズなどを変更へリンク追加
2018-03-04
- iunmapAllの説明を追加
- scriptの説明にリンク追加
- qmarkを一部修正、追加
- scriptを修正、追加
- サイトタイトルコピーを追加
- HTML形式でリンクコピーを追加
- Markdown形式でリンクコピーを追加
2018-04-12
- scriptを修正
- HTML形式のリンクコピーで、
&
などと記載するところを変換していたので修正
- HTML形式のリンクコピーで、
2018-05- 04
- qmarkを一部削除、追加
C- j/k
: 5回分の j/k 追加;<*>
のcreate mark
が使えないため、;
と:
の入れ替えを削除- unmapに
u
追加
2018-07-10
- scriptを修正
- HTML 新しいタブで開く形式でリンクコピーで、
rel="noopener"
を追加 - Markdown形式でリンクコピーを修正
- HTML 新しいタブで開く形式でリンクコピーで、
2018-10-24
u
previousScrollPosition 追加U
nextScrollPosition 追加
2019-04-26
b
goUpUrl 削除u
previousScrollPosition > goUpUrlへU
nextScrollPosition 削除s
:buffer削除 b
:buffer追加
2019-05-05
- ページナビ移動の説明 追加
2019-08-18
- 一部のsearchengineとsearchaliasの名前を変更
- scriptで設定したキーを先に書くように変更
2021-05-19
- 環境変更
- cVim 1.3へ変更