サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
CES 2025
caisui.hatenadiary.org
更新内容は inline style 禁止 対策 面積のないElementが 欠ける件、実質問題なさげなレベルまで改善 ラベル再配置(ラベルが重ならないようにする機能) 高速化(10倍くらいになった) ラベルの移動処理変更 細々と微調整 です。 vimperator/hints-ext.js at master · caisui/vimperator · GitHub inline style 禁止 基本 CSP による inline style禁止 対策です。 また、コンテンツのcssの影響を受けなくなったので、!importが多様されているページでも崩れてしまうことがなくなりました。 CSPによって、ヒントの配置に失敗の図 改善後 ちなみに、test で使った簡便なCSPを吐く http server はこんなです。 https://gist.github.com/caisui/795
vimperator3.6で e4x を除去 し Template String で 代替するパッチがマージされました。 結果、pluginが影響を受けますので思い付くままに記載したいと思います。 vimperator 3.5で困ってないかたは、 バグの洗い出しや、pluginの 対応が終るまで移行しないほうが良いと思います。 (javascript.options.xml.chrome=true でも軽微ですが、副作用があります) Template Stringの 正しい仕様は、http://wiki.ecmascript.org/doku.php?id=harmony:quasisを参照下さい。 現段階において、Firefox にTemplate Stringは実装されいません。 vimperator side で 現行javascriptで動くように変換して実行しています。 5行で書
muttator の 雑感 と独自の マップ一覧 と mode の 状態遷移をまとめました。 雑感 NORMAL mode j/k :[選択 messege の移動] +/- or / :[preview panel の ページスクロール] n : Thunder Bird 標準ショートカットですが、未読ジャンプ * spam folder 無視 d : メール削除 s : メールの移動 ! : spam mark r,f,c : メッセージ作成(返信、転送、新規) あたりを押さえておけば使えると思います。 preview panel を もっと細かく制御したいなら、 で MESSAGE mode に入ると、vimperator の NORMAL mode に近い操作ができます。 ただし、で 遷移する先は、 MESSAGE mode でなく NORMAL mode のため 注意が必要です。
Vimperator Advent Calendar 2012 9日目担当 caisui です。 ローカルパッチで 作成していた if コマンドを pluginに移植してみました。 改変部位が io.source のため 一工夫入れないと使えませんがご了承願います。 https://gist.github.com/4239753#file_cmd_if.js 特徴として 評価するのは、javascript heredoc サポート(最後の行を評価結果として判定) elseif に 変数を引き継ぎする 無いよりまし程度だけど、commandlineでも 動作 vim の if と違い 実行しないブロックのコマンドもパースする(heredocの関係で同等にすることは断念しました) 細かい仕様は、 https://gist.github.com/4239753#file_test.vimp から
ページ上の単語を completer に 出したいなと思って書きました。 現状、単語の区切り方がよろしくない(特に日本語)せいか、微妙です。 COMMAND_LINE,INSERT から の 補完 vimperatorrc に :js <<EOF userContext.word_completer_maps = [ [[modes.COMMAND_LINE, modes.INSERT], ["<C-Space>"], {screen: true}], ]; EOF のように 設定します。 の 状態から (割り当てた map) を 実行すると 単語補完に遷移します。 ここでは、hintMatcher を 利用して 絞ることができます。 (= migemo hint matcher を 利用していれば、migemo で 絞れます) 単語を指定後、を押せば、 commandline や inp
ES.next を vimperator で 動かせるようにしてみた。 正しくない点が多々あると思います。 特に、「<|」はさっぱりです。 http://github.com/caisui/vimperator/blob/master/plugin/es.next.js 使用するには、 id:Constellation さん の es.next.jsが必要です。 ~/vimperator 直下に配置 あるいは let es_next_js="path" と指定すれば、読込みます。 実行は :es [option] expression です。 --ast AST を echo します --echo 結果をecho します --test javascript への変換結果を echo します(不恰好です。デバッグ用) --bare globalObject を userContext にしま
Highlightに問題があったので修正しました。 hints-ext.js更新しました。 標準のHint っぽく text を表示 で HintNumber を 戻す use_hintchars_ex=2を追加 highlight "Hint>.x" を 追加 highlight "HintExt::before" を 追加 hint.addModeEx を追加 use_hints_ext_caret,use_hints_ext_visual を追加 use_hintchars_ex=2を追加 let use_hintchars_ex=2 ヒント選択時のキータイプ数を揃えます。 が となります。 要は、押すパターンが無くなります。 Hint>.x 修正に伴い更新 HintExt::before入力 HintNumber の style です。 標準では、何も設定しておりません。 hi H
CoffeeScript が どんなものか使ってみたくなったので、組み込んでみた。 vimperator/coffee-script.js at master · caisui/vimperator · GitHub :coffee で CoffeeScript 実行(heredoc 対応) :source コマンド を CoffeeScript 読込に対応 plugin に 対応 使用するには、GitHub - jashkenas/coffeescript: Unfancy JavaScriptの extra/coffee-script.jsを~/vimperator/直下に置く必要があります。 (let coffeescript=path で任意の位置に変更できます。) :coffee c="oneline";Array.forEach content.document.querySe
Scratchpad の orion を vimperatorから 扱えるようにしてみた。 (たぶん、Firefox 9で 且つset!devtools.editor.component=orionで 設定されている必要あります) plugin はhttps://github.com/caisui/vimperator/blob/master/plugin/scratchpad.jsです。 オプション -c Browser(Chrome Window Scope)で open(ついでに"let"もキーワードにします) -ft mode の 指定(javascript, java, html, css, xml) -r read only で 開く -w 既に開いている Scratchpad で 開く サブコマンド javascript javascript の 実行結果を開く file 指
ヒントを 書き直してみた。 vimperator/hints-ext.js at master · caisui/vimperator · GitHub 変更点は ヒントの高速化(できてたらいいなぁ) ヒントが重なって見えないよ! 番号キー(hintchars) を押した後のの遷移 キーバインドの追加(1キースロークもの のみ) です。 1.の恩恵は、tags に クエリーセレクタを利用する必要があります。 (xpath や array like な ものでも動作はします) let use_hints_ext_hinttags=1 let use_hints_ext_extendedhinttags=1 で option の hinttags, extendedhinttags を クエリセレクター版に上書きできます。 対象Node の 画面内外判定が原因で遅い状況は改善するはずです。 当
ヒントを自力実装して行単位分割しました。 pre,code そして text/plain も いけます。 ただし、ヒントのの実装は放棄してます。 文字による絞り込みも無いよりはいいかなって程度の微妙な実装になってます。 (TextNode に対して行なっているので、text/plain だったりすると 絞り込めません) 一切 map 等を振っていないので js mappings.addUserMap([modes.NORMAL], [""], "", function () plugins.hintsCaret.showCaret()); と map を 適当に振る必要があります。 無理して hint に 組込むなら hints.addMode("c", "", null, function() {commandline.close(); window.setTimeout(functio
liberator-overlay-ext を 更新しました。 https://github.com/caisui/vimperator/blob/master/plugin/liberator-overlay-ext.js 更新内容 アニメーションの改良 背面を確認する関数「toggleShowBackground」を追加 です。 前者は、 :set overlayanimation _vimperatorrc では、 :autocmd VimperatorEnter ".*" set overlayanimation (plugin なので option に 難があります) で 試していただけたらと思います。 続いて、後者についてです。 重ねて表示するので、コンテンツの見たい部位見えないことがあります。 (画像は、ほぼ全面覆ってしまっていますが…) それを こんな感じに 透過するための
windows 限定 です。Firefox 4 推奨ですが、3.6でも そこそこ動いてます。 (動作確認を取ったのは、 Firefox 3.6.15(32bit) vimperator 2.4pre (created: 2010/09/22 19:04:22) Firefox 4.0b13pre(32bit) vimperator 3.0 各 windows XP 32bit / 64bit) 仕組みは微妙ですが、 200msec 毎に Esc キーが 押されていないか監視するとこによって実現してます。 従って、実際には、Esc 長押しで 抜けることになります。 vimperator/embed-esc.js at master · caisui/vimperator · GitHub 監視キーコードや監視間隔は 任意に変更できます。 (指定方法は、Help に 記載しています。) 以下問
vimperator 3 の 新しい機能(過去の回帰) として hintchars オプションがあります。 hintchars の 設定を 変更することによって、hint のラベル を 任意に変更することが可能です。 この機能は、N 進記数法 を 定義したと見做して実装されています。 (記数法については位取り記数法 - Wikipedia等を参考にしてください) そして、hitchars の 最初の一文字目は、普段使っている 10進数(以降 10進と略します) における 「0」に相当するようになってます。 したがって、hintchars=abc のとき 自然数(N>=1) としては 「b」 から 始まり、 「c」の 次は、 「aa」ではなく 「ba」となります。(10進では、 「9 」の 次は 「00」 ではなく 「10」ですよね?) そういうわけで、hintchars の 最初の一文字目
querySelector[All] の補完 を 作ってみた。 https://github.com/caisui/vimperator/blob/master/plugin/complete-queryselector.js ns や 疑似セレクタ の "()"内の 補完 は 未対応です。(ns に 至っては知りませんでしたし…) plugins.completeQueryselector.complete(context, obj) で、Commandのcompleter として 利用できると思います。 obj は、適当な Element や document です。 一応 動作している所を gif にしてみましたが、大きいし、色が変わちゃいました… 2011/02/07 00:43 追加 value の 補完が '" スタートだと 中間一致ができません( completion.quo
unite.vim の ようなものを 目指してます。 こんな感じなことができます。 :piyo tab で tab 一覧 が 出ます。 i で 絞り込み入力です。 「caisui」と 入力すると 以下のように 補完のようにハイライトされいます。 or で 絞り込み入力から 抜けることができます。 h j で selector を 移動でき、 等で マークを付与します。 : で commandline に 入ってコマンドを入力して実行します。 長いですね… 上記 手順の結果 選択された tab が 閉じられます。 このようなことを実現するための ui です。 この子だけでは、何もできません。 同一ディレクトリの piyo/*.piyo で 拡張する必要があります。 (sample.piyo を 入れてもらえば、test 用に 書いたものですが、そこそこ 動くと思います) 拡張募集です。 ht
2010/12/09 記事訂正 css だけで 実現できたので、この script は 必要ありません。 id:tsukkee さん ありがとうございました。 vimperator 3 の tab number のように css で いけるようにしてみた。 https://github.com/caisui/vimperator/blob/master/plugin/tab-number.js 以下の stylesheetで こんな感じになります。
Firefox4 推奨 で liberator-overlay-ext を 書き直しました。 改善点は panel の 利用 廃止により、環境依存の focus 周りの不安定感の解消(DOMを 弄っていないので起きないはずです) -moz-transition を 利用して 伸縮を アニメーション です。 以前より悪くなった点は、 Penta への 対応 を やっていない 片方のみ オーバーレイ を 廃止 両方を同時表示させたとき、オリジナルと表示が異なる(=重なってでてしまう) 兎にも角にも iframe を 透過できるようになったことが嬉しいです。 コードとてもシンプルになりました。 また、「-moz-transition 」は簡単に アニメーションが付けられて素敵ですね。 また、 一応 「:so」で 再読込みできるようにしていますが、 collapsed を unwatch する部位
体調がよくない日が続いているので、 Firefox 4 が リリースされるまで 休眠の予定でしたが気になったので触ってみた。 拙作 plugin の うち MOWと補完リストのオーバーレイ表示 と grep が エラーがでなくなる程度に修正しました。(Fx4 6b に hg4285 (created: 2010/09/23 01:15:09)) http://github.com/caisui/vimperator/blob/master/plugin/_hints-generate-ext.js http://github.com/caisui/vimperator/blob/master/plugin/grep.js 修正対象は id の vimp-xxxx は dactyl-xxxx に なっている(単純置換ですまないものもあり) liberator.eval が liberator
対応括弧をハイライトが欲しくなったので作ってみた。 http://github.com/caisui/vimperator/blob/master/plugin/bracket-pair.js おまけ で対応括弧へジャンプします。(vimの%のイメージです) show_cursor_bracket = true で 括弧の両方がハイライトされます(カーソルが見えなくなるので微妙) 先頭が js, javascript, echo の場合のみ働きます。(もっと良い方法ないかなぁ) また、removeAllRangesをやっているので選択範囲の SELECTION_FIND と SELECTION_SPELLCHECK を利用するものと競合します。 これで括弧が多いワンライナーで混乱しなくなるかな? 以下スクリーンショット 括弧のハイライト 文字列 括弧不釣り合いの場合
久しぶりに 補完とMOW の 拡張を 更新しました。 修正点は、 ミドルクリックに対応 echo のアンカーを マウスクリック等でechoにコンテンツを読み込む問題改修 ヒントモード動作確認 ドキュメントの追加 高さの調整タイミング変更 です。 この修正で、通常の 補完 や MOW と同等になったと思います。 参考 :bmarks fi ;oで 選択すると 以前は、MOWに ロードされてしまいましたが、 今回の修正でアクティブタブで開くようになりました。 (また、マウスでミドルクリックすれば新しいタブで開けます) ソース http://github.com/caisui/vimperator/blob/master/plugin/liberator-overlay-ext.js
以前作ったことあるのですが、完全に作りなおしです。 主な変更は forceReload部位を自力実装です。 結果 タイムアウトを実装 リトライを実装 ステータスコード等を取得 中止()に対応 が できています。 再読込は :riで nmap :ri あたりに 割り当てると便利かなぁと思います。 :ri stで 状態を echo します。 ドキュメントは :h reload-image-pluginで確認できます。 テストを行うのにちょうど良いサイトがなかったので、 あまりテストができていません。 ソース vimperator/reload-image.js at master · caisui/vimperator · GitHub
まだ、利用に難有ですが、 複数選択するヒントっぽい何かです。 ただし、絞り込みはできません。 また、charhint 系 は 考慮されていません。 (2.4系の hintchars オプションのみサポート) 2.3 でも 数字でなら動作します。 デフォルトは、xpath のみですが、 http://github.com/caisui/vimperator/blob/master/plugin/_hints-generate-ext.js を 組み込んでおくと、クエリーセレクタが利用できます。 のように 入力すると なヒントが出て、選択できます。 選択の文法は、スペース区切りで列挙です。 ただし「1-10」で 1から10、「-10」で10以下 「4-」で 4以上、「-」で全てとなります。 (-がホームポジションから遠いので「;」でも同等に処理するようにしています) デフォルト実装機能は、 :
Vimperator(hg head)でldrize_cooperation.jsが有効にならなくなった件 (訂正) - 切なさの刹那 を見てscopeの変更で直るのは、エンバグかもしれないので調べました。 http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/ldrize_cooperation.js?rev=36514へのパッチです。 の修正で多分問題なくなると思います。 (使ったことないので option しか 動かしていません) ここでは setter が 返り値を持っていなかったことが問題でした。 Option.setter は 中継処理 で 返り値は、globalValue に 格納されます。 例えとして良くないかもしれませんが、Object.prototype.__defineS
通販の入力をしてて select 要素が 煩わしかったので作ってみた。 こんな感じ XUL/Migemo が あれば migemo検索、 無ければ 通常の部分一致で絞れます。 一応、変更後 change eventを 発行していますので、 多段型の場合でも動作するはずです。 optgroup が ある場合は「グループラベル/オプションのText」と なります。 で すぐに completerが 開くようにしていますが、 autoShowComplete = 0 で off にできます。 また、入力状態無しで 一覧を見たかったので、先頭にわざと[" ",""]を挿入しています。 「" "」なのは、completer で "" は 想定されていないようで、ちょっと表示がおかしくなるからです。 (補完しようとしているのに、文字が無いわけですから、当然といえば当然なんですけどね…) 商品は買えなか
補完リストとマルチラインechoの 保守が 大変なこともあってまとめました。 あと、大分すっきりさせました。 tooltip モードを廃止 useDummyAction を 廃止(anekosさんからもっと良い方法を教えていただきました) useResize を 廃止 delayResize を 負の値で無効に変更 useWinGlass を 廃止(スタイルシートで変更して下さい) 表示方法を共通化 アンカーのクリックを暫定実装 standard(デフォルト0)を追加(後述) pMode(デフォルト BOTH)を追加(後述) standard nokturnalmortum さんから 指摘があったので、 0 で 両方 重なって表示 1 で 2.3 っぽく表示 となるように変更しました。 pMode PANEL_MODE.MULTILINE で マルチラインecho のみ 対象 PANEL_
レジスタ関連を移植してみた。 INSERT,COMMAND_LINE [0-9]内容を貼付 [^0-9]関数の返り値 か 内容を貼付 %urlを貼付 [*+]クリップボードを貼付 :最後のコマンドラインの内容を貼付 /最後の検索内容を貼付 選択範囲を貼付 =内容を実行した結果を貼付 completer経由で貼付 hhostを貼付 d日付を貼付 t時間を貼付 n日時を貼付 NORMAL,VISUAL "[a-z]関数が予約されていなければ内容を格納 "[A-Z]関数が予約されていなければ内容を追加 =は こんな感じです。 カーソルが消えていますが、tabopen _ test の「_」の位置にあります。 ここで = javascript を入力(completer動きます)し、 カーソル位置に結果が挿入されます。 は、現状の内容一覧をcompleterで確認しながら選択できます。 また、ここ
ある程度動くようになったので公開です。 補完リストをオーバーレイっぽく表示にしてみた。 windows 以外では 微妙もしくは動作しないようです こんな感じになります。 折角オーバレイなので透過させてます。 処理 vbox>iframe#liberator-completions を panel(tooltip)>vbox>iframe#liberator-completions に変更し、表示・非表示できるように関数を修正してます。 usePanel 0 で tooltip を利用 1 で panel を 利用 useDummyAction panel の 問題強引改修 0 無効 1 有効 useResize windowリサイズに自動幅調整 0 無効 1 有効 delayResize 補完リスト幅リサイズ遅延時間 あまり小さいと多分重いかなと… useWinGlass きっとvista
rev36536を利用していて気になる点があったのいじってみた。 2.3 で hintStringでも 絞り込みを行なうようになった点についてです。 が「J」で となってしまいます。 これは、標準のhintchars で Jは1に相当するので、 1(=J),10(=U),11(=I),12(=O),.. と絞り込まれているためです。 (このまま気にせず、「JJ」にすれば問題無く動作します) そこで に修正します。 Hints._showHints を弄ってます。 --- a.js 2010-01-26 11:36:07.000000000 +0900 +++ b.js 2010-04-12 22:21:21.073762400 +0900 @@ -71,6 +71,24 @@ //}}} (function () { + (function(){ + //override _showHin
次のページ
このページを最初にブックマークしてみませんか?
『caisui.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く