クマーなひとときv2

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

Redmond Path vs Rapid Environment Editor

Windows環境変数を編集するツールの話。

7年近くお世話になった Redmond Path と、今日知った Rapid Environment Editor の比較。

対象となるOSはWindows10。
長いので RP と RapidEE を略称とする。

両者の比較

RPの更新は停止している。 RapidEEは最終更新日が2016/03。

比較対象 RP RapidEE
言語 英語のみ 日本語対応
システム変数/ユーザ変数 起動直後から両方操作可能 システム変数を操作するには管理者として実行する必要がある
操作可能な環境変数 PATHのみ 全て
不正なパス 判別可能。アイコンが×で表示される 判別可能。対象行が赤くなる。
変数の検索
環境変数の操作 変更、削除、ボタンでの並べ替え RPの機能+α色々
環境変数の追加 不可
コマンドライン操作 不可

結論

RapidEEの勝ち。

まだまだ違いはあるけれど、以下の二点が強すぎるので、RapidEEに軍配が上がる。

VimFxでmodalHighlightは現状使いづらい。

Firefox51からmodalHighlightというのに変わるらしいけど、VimFxで使うとちょっと問題がある。
modalHighlightに関しては以下の記事が分かりやすい。

rockridge.hatenablog.com

現象

VimFxでmodalHighlightを使うと、nNで検索結果を探すとき、検索バーにフォーカスが当たってしまう。
そのため、nEnterで確定。を、何度も繰り返さないといけない。とても面倒。

f:id:tonkuma:20160927170714g:plain

Issuesも投稿されてる。

The new modal Safari-style findbar breaks VimFx Find commands (/ and friends) · Issue #760 · akhodakivskiy/VimFx

解決法

簡単な解決法は、新しい表示方法を使わないこと。
findbar.modalHighlightfalseに設定すれば、以前の表示方法に戻せる。(findbar.highlightAllも変更必要かも

f:id:tonkuma:20160927171005g:plain

多分、この設定が標準でonにならない限りは、Issueもwaitingのままなんじゃないかな、と思う。

VimFx0.19.0更新来てた。

眠くて意識飛んでる間に更新きてた。
更新内容はここ見ればいいけど、簡単にまとめる。

ブラックリストを開くマッピング gB の追加

gBを押すことで、ブラックリストを編集出来る。
開いた直後は現在のドメインが追加されているので、そのまま Enter を押すだけで、ブラックリストに追加出来る。

f:id:tonkuma:20160926003656g:plain

変更内容は即座に反映される模様。
自分で設定ファイル作って読み込んでいる場合はあまり関係ない機能。

コンテキストメニューを開くマッピング ec の追加

この機能を待ってた!!!

f:id:tonkuma:20160926003834g:plain

メニューが出てからは各メニューのアクセスキーを使おう。
無い場合は…うん、頑張れ。

hit-a-hintの選択中、テキストで絞り込みが可能になった

確かVimperatorにも同じように絞り込みする機能ありましたね(私は使ったことない)
それがVimFxにも実装された。hint表示中に大文字入力で絞り込み出来る。

以下は hint表示中に HINTS と入力した例。

f:id:tonkuma:20160926004010g:plain

絞り込んだ結果が最後の1つになると、自動的に選択される。
新しく追加されたオプション hints.auto_activatehints.timeout 辺りを弄ればその辺の挙動を変更出来る。

一部マッピング/設定名の変更

設定の追加に伴い、変更されている模様。

設定画面で「~の項目で上書きされてるぞ」と教えてくれていたり、

f:id:tonkuma:20160926004422j:plain

コンソールにエラーログ吐いてくれるので、それを見て直そう。

f:id:tonkuma:20160926004452j:plain

個人的に、 前の記事 で書いた「ヒントに関する操作」がちょっと押しづらくなったのが残念。マッピング的に仕方ないけど。

その他

Issue #812 は修正されてた。もう mode == 'normal' は不要。

? を押すと出るヘルプ画面で、説明文をクリックすると、設定画面の項目に一瞬で飛べる。
以前からあったかもしれない。

f:id:tonkuma:20160926004615g:plain


終わり。よし寝る。

Ank-Pixiv-Tool 不具合めも

どうもe10s環境だと、Ank-Pixiv-Toolは正しく動作しない模様。

[Notice] does not work if e10s is enabled (>=FF42?) ・ Issue #85

というわけで、現時点で分かった問題点。

Pixiv

Pixivでの問題点

評価後に自動ダウンロードする機能が動作しない

これ
f:id:tonkuma:20160922034327j:plain

設定した後、評価10付けても、自動ダウンロードが始まらない。
e10sを無効化すればちゃんと動く。

Twitter

Twitterでの問題点

連続で画像をDLした時、一番最初の画像しかDL出来ない。

例えば、hoge さんのユーザページで、以下の画像をDLする。

  • ゆかりん.jpg → 最初にDLする
  • マキマキ.jpg → 次にDLする

実際に画像を開いてDLすると、以下のようになる。

  • hoge-ゆかりん.jpg
    → 中身もファイル名も問題無し。
  • hoge-マキマキ.jpg
    → ファイル名は問題無いが、中身が最初にDLした「作者名-ゆかりん.jpg」と同じ。

なお、一度更新すれば直る模様。


2015/12/22 以降は更新されてないし、e10s対応予定もなし。
自分で改修するか、他の拡張機能(ChromeにあるPixiv Downloaderとか)に乗り換えるしかないですね。

VimFx メモ その2

前の記事。
VimFx メモ - クマーなひとときv2

今は Nightly + VimFxで、e10s有効にして使ってるけど快適。
主にCSSとカスタムコマンドに関するめも。

Vimperatorの今後も怪しいし、もしもの時*1への備えだけはしっかりしておきたい。

ブラックリスト

ZenzaWatchとの兼ね合いのため、nicovideo.jp/watchとかはVimFxを無効化してる。

vimfx.set('blacklist', '*live.nicovideo.jp/* *nicovideo.jp/watch/*')

何となくニコ生も無効化してるけど、正直FirefoxFlashの組み合わせ最悪なので、ニコ生はCentBrowser使ってる。

一部キーのみ無効化

こちらも便利。と思うんだけど、問題があって使ってない。

VimFx/api.md at master · akhodakivskiy/VimFx · GitHub

一部キーだけ無効化出来る。
ただし、全てのモードで無効化されてしまったため、結局使ってない。
以下の例だと、hintモードでもjkが無効化されてしまう。hint文字にjkを使っているため、入力出来なくなった。

vimfx.addKeyOverrides(
  [ location => location.hostname === 'twicli.neocat.jp',
    ['j', 'k']
  ]
)

normalモードでだけ無効化する方法とかありそうなんだけどな。

2016/09/21T20:39:56 追記

Issue投げようと思ったら、他の人が質問して回答貰ってた。
addKeyOverrides & Hints mode · Issue #812 · akhodakivskiy/VimFx

というわけで、以下で動いた。マニュアル読んで、location以外渡せないと思ってたわ…

vimfx.addKeyOverrides(
  [ (location, mode) => location.hostname === 'twicli.neocat.jp' &&
    mode == 'normal',
    ['j', 'k']
  ]
)

通知

VimFx使ってると、右下に色々通知が出てくるけど、そこに好きなメッセージを出せる。

f:id:tonkuma:20160914065512j:plain

vimfx.on('modeChange', ({vim}) => {
  let mode = vimfx.modes[vim.mode].name
  vim.notify(`Entering mode: ${mode}`) // 通知
})

たまーに通知が消えなくなる事を除けば便利と思う。
locationChangeイベント発生時にページURL表示するとか、
スクロール時に現在位置を%で表示させるとか、色々使い道ありそう。(重くならないか心配だけど。

CSS

VimFxの見栄え変更。切っ掛けはヒント文字をもう少し大きくしたいな、という願望から。
以下に大体書かれてる。

VimFx/styling.md at master · akhodakivskiy/VimFx · GitHub

ヒント文字のサイズ変更

パパっと変更。

#VimFxMarkersContainer .marker {
  font-size: 15px !important; /* Specific font size. */
}

ちなみに、デフォルトのCSSは以下にあるので、ここを参考に直すのもあり。

VimFx/style.css at master · akhodakivskiy/VimFx · GitHub

ignoreモードを分かりやすく

ignoreモードかどうかの判断材料がツールバーのアイコンしかなく、判断が難しい。

通常時 ignore時
f:id:tonkuma:20160914071726j:plain f:id:tonkuma:20160914071738j:plain

そのため、分かりやすいように、ignoreモード時はロケーションバーの色を変えた。

状態 ロケーションバー
通常時 f:id:tonkuma:20160914072151j:plain
ignore時 f:id:tonkuma:20160914072211j:plain
#main-window[vimfx-mode="ignore"] #urlbar {
    background: yellow !important;
}

正直、最初から色変わるようにしててくれ、と思った。

ロケーションバーではIMEをOFFにする

VimperatorのコマンドラインIME OFFするようなもの。地味に役立つ。

#urlbar {
  ime-mode: inactive;
}

/押すと出てくる検索boxも同じようにしたいけど、上手く動かん。

カスタムコマンド

色々調べつつ、追加した。Wikiが参考になる。
Custom Commands · akhodakivskiy/VimFx Wiki · GitHub

主にVimperatorで使ってた機能を追加。やはりVimperator、及び、プラギン作者は神。

URLをmarkdown形式でコピー

copy.js にはいつもお世話になってました。
VimFxでも同じ機能が欲しい…欲しくない?

  vimfx.addCommand({
    name: 'copy_markdown',
    description: 'c_"[title](URL)"でURLコピー',
    category: 'location',
  }, ({vim}) => {
    let url = vim.window.gBrowser.selectedBrowser.currentURI.spec
    let title = vim.window.gBrowser.selectedBrowser.contentTitle
    let fmt = "["+title+"]("+url+")"
    gClipboardHelper.copyString(fmt)
    vim.notify("Copied String: "+ fmt)
  })

fmt = xxx の箇所変更して複数フォーマットでコピー出来るようにしてる。
gClipboardHelperについては以下参考。
Using the clipboard - Mozilla | MDN

URLインクリメント

もっといい書き方があると思うけど動いてるからもうこれでいいです(諦め

vimfx.addCommand({
  name: 'url_increment',
  description: 'c_URLインクリメント',
  category: 'misc',
}, ({vim}) => {
  let url = vim.window.gBrowser.selectedBrowser.currentURI.spec;
  if (url.match(/(\d+)(\D*)$/)) {
    var alter = String( Number(RegExp.$1) +1);
    var blank = "";
    for (i=0; i < RegExp.$1.length-alter.length; i++) {
      blank += "0";
    }
    var next = RegExp.leftContext + blank + alter + RegExp.$2;
    vim.window.gBrowser.loadURI(next);
  }
})

デクリメントも同じ要領で,xに割り当ててる。

URL置き換え

引数取得させて、任意指定出来るようになると便利なんだけど。今は固定値。

vimfx.addCommand({
  name: 'toggle_japanese',
  description: 'c_"-all-"を"-japanese-"に変更して再読込',
  category: 'misc',
}, ({vim}) => {
  let url = vim.window.gBrowser.selectedBrowser.currentURI.spec
    if ( url.includes('-all-') ) {
      url = url.replace(/-all-/, '-japanese-');
      vim.window.gBrowser.loadURI(url);
    }
})

ズームイン

CTRL + +CTRL + -で操作出来るけど、Vimperatorと同じ操作にしたかった。

vimfx.addCommand({
  name: 'zoom_in',
  description: 'c_ズームイン',
}, ({vim}) => {
  vim.window.FullZoom.enlarge();
})

enlarge()で拡大。reduce()で縮小。reset()で元に戻す。

ツールバーボタンをクリック

eを使えばいい?e押した後にヒント文字を入力しなきゃいけないじゃないですかヤダー
というわけで、これは必要です。

vimfx.addCommand({
  name: 'click_toolbar_feedly',
  description: 'Feedly_notifierをクリック',
}, ({vim}) => {
  vim.window.document.getElementById('toggle-button--jid1-bojn8b0im7kh2wjetpack-main-button').click();
})

ツールバーのIDをDOM Inspectorとかで調べて、必要な分だけ作ろう。

Stylishの編集画面を開く

CSS編集時に使う。
idは環境によって変わる。

vimfx.addCommand({
  name: 'stylish_edit',
  description: 'c_VimFxのcssを編集',
}, ({vim}) => {
  vim.window.switchToTabHavingURI('about:stylish-edit?id=2', true);
})

選択文字列をGoogle翻訳

  • 今まで
    caretで選択→yでコピー→t<C-t>で新しいタブ開いてgt <C-v><Enter>
  • 現在
    caretで選択→t

とても楽になった。

config.js:

vimfx.addCommand({
  name: 'search_selected_translate',
  description: 'c_選択文字列をGoogle翻訳',
  mode: 'caret',
}, ({vim}) => {
  vimfx.send(vim, 'getSelection', null, selection => {
    vim.window.switchToTabHavingURI('http://translate.google.co.jp/?source=osdd#auto|auto|'+selection, true)
  })
})

frame.js:

vimfx.listen('getSelection', (data, callback) => {
  let selection = content.getSelection().toString()
  callback(selection)
})

ARCでも検索出来るようにしてるので、単語もサクサク調べられる。


終わり。少しずつ便利になってる。
後は、フレーム操作、タブグループ操作、 文字入力時のマッピング*2 とか欲しいかな。

*1:Vimperatorのe10s対応不可とか、WebExtension対応不可とか

*2:非公式なら、海外のユーザが設定例公開してるけど、公式で欲しい

VimFx メモ

[:SKK] [:vim] [:Firefox] vimfx

長い間FirefoxとVimperatorの組み合わせにお世話になってきた。けど。
Vimperatorはe10sにまだ対応出来ておらず、fx48では以前Nightlyで試した通り動かなかったので、他のVim拡張試してる。

VimFx :: Add-ons for Firefox

e10sにも対応済みな模様(install.rdfのmultiprocessCompatibleタグ参照)。
Nightly + e10s環境でもう一ヶ月近く使ってるけど、今のところ大きな問題は起きていない。

というわけで、メモまとめ。画像多いので、目次以降は続きにする。

  • 概要
  • 導入
  • 基本的な操作
  • 機能
    • 設定画面から色々変更可能
    • ヒントに関する操作
    • 画面上要素にフォーカス
    • ツールバーのクリック
    • 要素を右クリック
    • GCLIとかいうのが使える
    • 設定ファイル
    • カスタムコマンド
    • サイト毎の設定
    • スタイル変更
  • 不満点
    • URLのインクリメント/デクリメントが出来ない。(解決済み)
    • フレームに関するコマンドが無い。
    • 画像だけを開けない(解決済み)
    • タブ/ブックマーク検索の機能がない(解決済み)
    • Insert Modeが無い
  • 設定例
  • まとめ
続きを読む

feedly使ってニコニコ動画のRSSを購読する

[:SKK] [:Firefox] [:Feedly] [:niconico] RSS

視聴してる投稿者の最新動画を追う時、ニコレボを使っているけど、以下が気になる。

  • 登録件数少ない
    • ユーザだと400人。一般会員は50人。
    • マイリストだと50個。一般会員だと20個。
  • ニコニコ動画開いてないと通知来ない。

わざわざニコニコ動画開いてないと通知来ないのはなぁ…と思ったので、以前から存在は知っていたけど使ってなかったRSS使ってみたら、結構良さげだったのでめも。

続きを読む