web-dev-qa-db-ja.com

Vimperatorを一時的に無効にする

どうすれば一時的にVimperatorを無効にできますか?たとえば、ウェブメールアプリを使用しているときは、Vimperatorを一時的に無効にしたいと思います。コマンドはありますか?

42
blue123

Vimperatorを一時的に無効にするShift-Escについてすでにご存知だと思います。だから私はあなたの現在の場所に基づいてvimperatorを無効にする方法を書きました。

まず、解決策:

autocmd LocationChange .*                             js modes.passAllKeys = false
autocmd LocationChange mail\\.google\\.com            js modes.passAllKeys = true
autocmd LocationChange www\\.google\\.com/calendar    js modes.passAllKeys = true
autocmd LocationChange www\\.google\\.com/reader      js modes.passAllKeys = true
autocmd LocationChange mail\\.google\\.com/tasks      js modes.passAllKeys = false

これにより、gMail、gCalendar、gReaderはフィルタリングされますが、gTaskはフィルタリングされません。

私が提供したソリューションは、vimperatorを有効にするようにすべてのWebサイトを定義してから、各Webサイトに対して選択的に無効にするカスケードアプローチです。したがって、gTaskはgmailと同じ親サイトを使用していますが、vimperatorが有効になっています。

ここで説明:

これらのコマンドは、ホームディレクトリの.vimperatorrcにあります。 .vimperatorrcの場所を変更することができます

source! *directory*

.vimperatorrcファイル内ですが、デフォルトの場所はホームディレクトリの.vimperatorrcファイルです。 (Windowsでは%userprofile%)

代替ソリューション:

autocmd LocationChange .* js modes.passAllKeys = /mail\.google\.com/.test(buffer.URL)

*ドットをエスケープするにはバックスラッシュに注意してください。

このアプローチの問題は、autocmdを使用した最新のコマンド行のみが機能することです。最後のautocmdコマンドが最初のものを上書きすることを意味します。したがって、次のように、結果としてコマンドでブール演算が実行されます。

autocmd LocationChange .* js modes.passAllKeys = /(mail\.google\.com|google\.com\/reader)/.test(buffer.URL)

ご覧のように、除外したいウェブサイトがたくさんある場合、これは複雑になる可能性があります。

ドキュメント: http://vimperator.sourceforge.net/help/vimperator/autocommands.xhtml
ソリューションのソース: http://code.google.com/p/vimperator-labs/issues/detail?id=406

35
Forethinker

使用する Shift+Esc Vimperatorを一時的に無効にします。もう一度押すと機能します

53
William

:ignorekeysコマンドを使用できます

ignorekeys add mail.yahoo.com
ignorekeys add mail.google.com

これらのドメインでvimperatorのすべてのキーバインドを無効にします。

10
nuaimat

keyboard-shorcutsforgmail/ feedly with feedSomeKeys(Vimperatorのプラグイン)を使用できます。

どうやって?

  • this および this ファイルを取得します。
  • 〜/ .vimperator/pluginsに両方のファイルをコピーします(存在しない場合は作成します)。
  • 〜/ .vimperatorrcファイルに次の行を追加します。

    :source〜/ .vimperator/plugin_libly.js:command! -nargs = + lazy autocmd VimperatorEnter。*:lazy fmaps -u = 'mail.google.com/mail' c/j k n p o u e x s r a#[]? gi gs gt Gd ga gc

  • それを試してみてください!

1
David

autocmd solution を使用すると、毎回メッセージ "Executing LocationChange Auto commands for ..."が表示されるたびに煩わしい場合があります。

Vimperatorの最新バージョン(3.8.3)では、このメッセージはデフォルトでは表示されず、詳細モードでのみ表示されます。
しかし、Firefoxアドオンの現在のバージョンは3.8.2なので、手動でインストールする必要があります。単純なように:

git clone https://github.com/vimperator/vimperator-labs.git . 
make xpi

次に、downloadsディレクトリからvimperatorをインストールします。

0
Grisha Pushkov