「regex」を含む日記 RSS

はてなキーワード: regexとは

2008-08-03

ニコニコ動画を快適化するvimperator設定まとめ

.

8/27追記

本記事末尾のローカルkey mappingを実現するコードを改良してプラグインにしました。

Vimperatorローカルkey mappingを実現するプラグイン local_mappings.js を書いた。

http://anond.hatelabo.jp/20080826124641




まずnicontroller.jsを入れる。

2008-07-14 - やぬすさんとこの日記

http://d.hatena.ne.jp/janus_wel/20080714

→n秒後/前に移動するkey mappingも忘れずに!


vimperatorrcにこれを書く。

Re: autocmd が分からない - hogehoge

http://d.hatena.ne.jp/teramako/20080731/p1

コードをいじった。

" --- autocmd ---

" nicovideo
" cでコメント入力、Cでコマンド入力、sでシーク、lでボリューム調整、
" pで停止/再生、mでミュートのon/off、vでコメの表示トグル、zでズームjavascript <<EOM
liberator.plugins.nicomap = function(){
  // no args
  var list=[
    ["p","nicopause"],
    ["m","nicomute"],
    ["v","nicomementvisible"],
    ["z","nicosize"],
    ["s","nicoseek"],
  ];
  // has args
  var list2=[
    ["c","nicomment"],
    ["C","nicommand"],
    ["l","nicovolume"],
    ["s","nicoseek"],
  ];
  if(buffer.URL.indexOf("http://www.nicovideo.jp/watch") == 0){
    for (var j=0; j<list.length; j++){
      let i = j;
      liberator.mappings.addUserMap([1],[list[i][0]],list[i][1],
        function(){
          liberator.execute(list[i][1]);
        },{
          rhs:":"+list[i][1]+"<CR>"
        }
      );
    }
    for (var j=0; j<list2.length; j++){
      let i = j;
      liberator.mappings.addUserMap([1],[list2[i][0]],list2[i][1],
        function(){
	  liberator.execute('normal :'+list2[i][1]+'<Space>');
	},{
	  rhs:":"+list2[i][1]+"<Space>"
	}
      );
    }
  } else {
    for (var i=0; i<list.length; i++){
      liberator.mappings.remove(1,list[i][0]);
    }
    for (var i=0; i<list2.length; i++){
      liberator.mappings.remove(1,list2[i][0]);
    }
  }
};
liberator.autocommands.add('LocationChange','.*','js liberator.plugins.nicomap()');
EOM

フォーカスプレーヤーに奪われないようにするグリモン

2008-08-02 - 地獄の猫日記

http://d.hatena.ne.jp/nokturnalmortum/20080802#1217633913


→→これで超快適すぎるニコライフの幕開け!

.



補足

現在マウスカーソル位置でクリックイベント発生するkey mappingを設定できればより快適なんだが・・・。

(「コメントする」ボタンDOMノードが取得できれば、dispatchEventでいけそうだけど)



追記: ちょっと改良してみた。
" ************* local key mappings ****************
javascript <<EOM
 (function(){
function setlocalmap(obj){
    var list = obj.list;
    var list2 = obj.list2;
    var exp = obj.exp;
    if(list.constructor != Array || list2.constructor != Array){
      echr("invalid argument: array argument required");return;
    }
    if(exp.constructor != RegExp){
      echr("invalid argument: regex argument required");return;
    }
    if(exp.test(liberator.buffer.URL)){
      for (var j=0; j<list.length; j++){
        let i = j;
        liberator.mappings.addUserMap([1],[list[i][0]],list[i][1],
          function(){
            liberator.execute(list[i][1]);
          },{
            rhs:":"+list[i][1]+"<CR>"
          }
        );
      }
      for (var j=0; j<list2.length; j++){
        let i = j;
        liberator.mappings.addUserMap([1],[list2[i][0]],list2[i][1],
          function(){
  	  liberator.execute('normal :'+list2[i][1]+'<Space>');
  	},{
  	  rhs:":"+list2[i][1]+"<Space>"
  	}
        );
      }
    } else {
      for (var i=0; i<list.length; i++){
        liberator.mappings.remove(1,list[i][0]);
      }
      for (var i=0; i<list2.length; i++){
        liberator.mappings.remove(1,list2[i][0]);
      }
    }
}
/** 
 * Add Key Mappings to Specific Web Pages
 * @param obj : has following properties
 *  list : commands that take no args
 *  list2 : commands that take args
 *  exp : target page's URL (regex)
 * @see Re: autocmd が分からない - hogehoge
 * http://d.hatena.ne.jp/teramako/20080731/p1
 */
liberator.plugins.addLocalUserMap = function(obj){
  liberator.plugins[obj.name + "MapSetter"] = function(){
    setlocalmap(obj);
  }
  liberator.autocommands.add(
  	'LocationChange', '.*', 'js liberator.plugins.' + obj.name + 'MapSetter()'
  );
};

// nicovideo
// cでコメント入力、Cでコマンド入力、sでシーク、lでボリューム調整、
// pで停止/再生、mでミュートのon/off、vでコメの表示トグル、zでズーム。
var nicovideo = {
	name : 'nico',
	exp : /^http:\/\/www.nicovideo.jp\/watch/,
	list : [
	    ["p","nicopause"],
	    ["m","nicomute"],
	    ["v","nicomementvisible"],
	    ["z","nicosize"],
	    ["s","nicoseek"],

	],
	list2 : [
	    ["c","nicomment"],
	    ["C","nicommand"],
	    ["l","nicovolume"],
	    ["s","nicoseek"],
	],
};
liberator.plugins.addLocalUserMap(nicovideo);
})();
EOM

2008-06-10

http://anond.hatelabo.jp/20080610233538

> Boost::regex正規表現を書く時などもうたまらない

そこはboost::xpressiveだろ、常考

諸君、私はC++が好きだ

諸君、私はC++が好きだ

諸君、私はC++が好きだ

諸君、私はC++が大好きだ

演算子オーバーロードが好きだ

テンプレートが好きだ

STLが好きだ

Boostが好きだ

FC++が好きだ

Windows

Mac

Linux

BSD

Solaris

この地上でコンパイルされるありとあらゆるC++が大好きだ

演算子を多重定義できるC++が好きだ

演算子意味が変わり、直感的なコードが書き下せる時など心がおどる

テンプレートが使えるC++が好きだ

動的言語の優位性を語っている奴等にそれを見せた時など胸がすくような気持ちだった

Boostが好きだ

Boost::lambdaを使って(_1 + _2)と二つの引数を足算した結果を返す無名関数を定義した時など感動すらおぼえる

Boost::regex正規表現を書く時などもうたまらない

Boost::shared_pointerでオブジェクト自動的に解放されるのは最高だ

納期に追われて急いで書かなければならないパーサを

Boost::spiritBNF記述して書いた時など絶頂すら覚える

マルチパラダイムC++が好きだ

そんなC++が複雑だと思われているのはとてもとても悲しいものだ

テンプレートが好きだ

エラーメッセージ意味不明だと言われるのは屈辱の極みだ

諸君 私はC++を 変態の様なC++を望んでいる

諸君 私に付き従うC++好きの諸君 君たちは一体何を望んでいる?

更なるC++を望むか 

糞の様なC++を望むか?

BoostFC++によってさらに変態的になっていくC++を望むか?


C++!! C++!! C++!!


よろしい ならばC++

だが、LL全盛の時代の陰でもはや組み込みHPCぐらいでしか使われないという中傷に耐え続けて来た我々には

ただのC++ではもはや足りない!!

C++を!! 一心不乱の大C++を!!

我々はわずかに小数

PerlPHPPythonRubyJavaScriptに比べれば物の数ではない

だが諸君は一騎当千のBinarianだと私は信じている

ならば我らは諸君と私で総兵力100万と1人のコンピュータサイエンティスト集団となる

我らを忘却の彼方へと追いやり、インタプリタしか知らない連中を叩きのめそう

髪の毛をつかんで引きずり下ろし 眼(まなこ)をあけて思い出させよう

連中コンパイラの偉大さを思い出させてやる

連中インタプリタでは実用的なプログラムが書けないということを思い出させてやる

C++には奴らの哲学では思いもよらない書き方がある事を思い出させてやる

1000人のBinarianの集団で 世界変態的なコードで埋め尽くしてやる

目標 世界のありとあらゆるプログラム

一億総合コンパイル作戦 状況を開始せよ

逝くぞ 諸君




http://wids.net/lab/sukida.htmlで生成。

2007-11-18

http://anond.hatelabo.jp/20071118224937

初めてpipes体験したけど、超簡単で感動した!

fetch feedではてぶのフィードを取ってきて、filterでitem.linkをMatches regex正規表現マッチした奴をblockするだけ。チョー簡単。

- 転職ならen
- 派遣ならen
 
1ページ中1ページ目を表示(合計:4件)