クマーなひとときv2

雑多なメモ。twitterで書ききれないもの等。

VimFx メモ その4

案の定、Vimperatorの周りが慌しくなってますね。やっぱり移行しといてよかったと思う。

Vimperator周辺の様子を尻目に、VimFxメモの続き。

なお、CSSについては、家のNightlyでは動作するのに、職場のportableでは動作しない。何でだろ。

VimFx メモ
VimFx メモ その2
VimFx メモ その3

アドオン追加

VimFx使う上で便利そうなアドオン追加した。

stylRRR

VimFxへのCSS適用に使っていたStylishスパイウェア化したらしいので、代替として使ってる。

StylRRR - Barebones Userstyle Injector :: Add-ons for Firefox

Firefox再起動しなくていいのはやっぱ便利。

設定の追加

いくつか増やした。

TabGroups

元々アドオン自体は入れていたんだけど、VimFxから関数呼べる事が分かったので、その設定を追加した。

//タブグループ画面を開く{{{
vimfx.addCommand({
    name: 'tab_groups',
    description: 'open tabGroups',
    category: 'tabs',
}, ({vim}) => {
    vim.window.tabGroups.TabView.toggle();
});
map('<BS>', 'tab_groups', true); //}}}
//次のタブグループを開く{{{
vimfx.addCommand({
  name: 'next_tab_groups',
  description: 'next tabGroup',
  category: 'tabs',
}, ({vim}) => {
  vim.window.tabGroups.TabView.switchGroup(false);
});
map('gn', 'next_tab_groups', true); //}}}
//タブグループ検索{{{
vimfx.addCommand({
  name: 'search_tab_groups',
  description: 'search tabGroups',
  category: 'tabs',
}, ({vim}) => {
  vim.window.tabGroups.TabView.commandButton();
});
map('gb', 'search_tab_groups', true); //}}}

以下のようにコロコロ切り替えられて便利。
ただし、作者がWEに対応しない事を表明しているため、Firefox57が出るまでの命。悲しいなぁ…

f:id:tonkuma:20170204171406g:plain

クイックマーク

Vimperatorみたいには使えないけど、よく使うページを数ストロークで開く目的にしか使わないので、とりあえずこれで事足りてる。

let categories = vimfx.get('categories');
categories.qmarks = {
  name: 'qmarks',
  order: categories.misc.order - 1,
};
let quickmark = (val, shortcut, url) => {
  vimfx.addCommand({
    name: `quickmark_${val}`,
    description: `Open quickmark ${val}`,
    category: 'qmarks',
  }, function({vim}) {
    vim.window.gBrowser.loadURI(url)
  })
  map(shortcut, `quickmark_${val}`, true)
}

quickmark('twicli', 'got', 'http://twicli.neocat.jp/twicli.html')

Vimperatorみたいに使いたいなら、 Question: Is there any way to get single character with public API? · Issue #861 · akhodakivskiy/VimFx に参考になる情報があるかも。

URLバー非表示

Vimperator使ってた時みたいに、ノートPCの小さい画面でも広々と使いたくなった。

通常は非表示にして、上部にカーソル持っていったり、
otでURLバーにフォーカス移ったら表示されるようにした。

  @-moz-document url(chrome://browser/content/browser.xul) {
    #browser {
      margin-top:-3em !important;
    }
    #nav-bar {
      overflow-y: hidden !important;
      max-height:0 !important;
      min-height:0 !important;
    }
    :hover > #nav-bar {
      max-height: 3.15em !important;
    }
  }
  #nav-bar:focus-within {
      max-height: 3.15em !important;
  }

とりあえずは満足している。細かい不満はあるけど、そこはまた今度直せたらいいな。

タブ検索後に元いたタブのフォーカスを外す

bでタブ検索して移動後、移動前のタブに戻った時にURLバーにフォーカスあったままなのが嫌だったため、フォーカス外すようにした。

vimfx.on('TabSelect', ({event}) => {
  event.detail.previousTab.ownerDocument.activeElement.blur();
})

以下GIFの前半が設定前、後半が設定後。
いつまで動くかちょっと怪しい感じあるが、まぁこれでいいや。1

f:id:tonkuma:20170204171443g:plain

<C-u><C-k>で文字削除

この2つだけ欲しかったので追加した。
コードの量多くて貼ると長くなるため、参考にした方のリンク張っとく。

conf/vimfx at master · doy/conf

その他

約一ヶ月前に、WE版のVimFxへの移行のため、機能要望が打ち切られてる。

Turn VimFx into a WebExtension / THE FUTURE OF VIMFX · Issue #860 · akhodakivskiy/VimFx

正直、現状のFirefox版WE APIで作れるのか…?という不安はあるけど、信じて待つしかないかなぁ、という感じ。
ほんとFirefoxはショートカット用のAPI作ってくれよな~頼むよ~。

1215061 - Better keyboard shortcut support

一応、最悪の自体に備えて、Chrome系も CentBrowser + cVim で設定して使っているけど、Chrome の仕様がどうしても嫌2なので、ほんと Firefox + VimFx には頑張ってほしいです。

もしくは、つい最近知ったんだけど、 vimb とか、 uzbl みたいな、完全にそれに特化したブラウザもいいかもしれない。

選択肢は多いに越した事はないので、今後も快適なブラウジングのため、情報収集はしていきたいな、と思いました(小並)


  1. WE化してもメモってる設定動くの?とか考えだしてきりがない。実際不安要素ではある。

  2. ページの読込終わらないと動かないとか。そもそも動かない(動かせない)ページ多いとか。