Hatena::Groupvimperator

vimpがあればなんでもできるっ! RSSフィード

 | 

2009ねん02がつ05にち、

git pullしたままのmake xpiしていない素のvimperatorにバージョンとビルド日付を埋め込むシェルスクリプト

00:27 | git pullしたままのmake xpiしていない素のvimperatorにバージョンとビルド日付を埋め込むシェルスクリプト - vimpがあればなんでもできるっ! を含むブックマーク はてなブックマーク - git pullしたままのmake xpiしていない素のvimperatorにバージョンとビルド日付を埋め込むシェルスクリプト - vimpがあればなんでもできるっ!

いつも git pull してビルドしていない素の状態で使っているんだけど、いつ時点のものが動いているのか分からなくなってしまうので、liberator.jsの###VERSION###、###DATE### を置き換えるシェルを書いた。

make xpi すれば置き換えてくれるんだけど、めんどくさいので...

#!/bin/sh
BUILD_DATE=`date "+%Y/%m/%d %H:%M:%S"`
sed -i.bak -e "s,###VERSION###,2.0pre,g" -e "s,###DATE###,${BUILD_DATE},g" $1

ちなみにsed-iオプションなんてのがあって、ファイルの中身を上書きしてくれるというのは初めて知った。

そして:versionの結果。

http://gyazo.com/bdf94148542c4d598bcf55d6592d73e3.png

うん、いい感じになった♪

追記:2009.2.12

上記のようにliberator.jsを書き換えると、次回git pullしたときにコミットしていない変更があるのでマージできないっていわれるので、git pullする前に

git checkout liberator.js

ってやって変更をrevertしないといけないので注意。

普段でもj,kキーでLDRizeみたいにシュルシュルとスクロールするようにしたら気持ちよくなった♪

22:39 | 普段でもj,kキーでLDRizeみたいにシュルシュルとスクロールするようにしたら気持ちよくなった♪ - vimpがあればなんでもできるっ! を含むブックマーク はてなブックマーク - 普段でもj,kキーでLDRizeみたいにシュルシュルとスクロールするようにしたら気持ちよくなった♪ - vimpがあればなんでもできるっ!

vimperatorでブラウジングしていると、スペースバーでのスクロールは移動量が大きすぎて読んでいた箇所を追っかけるのがツライと感じる。

だけど、j,kキーだとキーストロークが多くなってめんどうだし、かといって移動量を大きくするとスペースバーと同じ問題が出てくる。

そこで、j,kキーでLDRizeのようにスムーススクロールするようにしました。

そしたらすこぶる快適♪ 以下のコードをRCファイルに貼り付けて使う。

js <<EOM
// j,kキーでスムーススクロールする
(function(){
  var scrollAmount = 400;
  // direction : positive (down) / negative (up)
  function smoothScroll(amount, direction) {
    var half = Math.floor(amount / 2);
    window.content.window.wrappedJSObject.scrollBy(0, half * direction);
    if (half >= 1) 
      setTimeout(function(){smoothScroll(half, direction)}, 10);
  }
  mappings.addUserMap([modes.NORMAL], ["j"], "", function(){ smoothScroll(scrollAmount,  1)},{rhs:"down"}); 
  mappings.addUserMap([modes.NORMAL], ["k"], "", function(){ smoothScroll(scrollAmount, -1)},{rhs:"up"}); 
})();
EOM

scrollAmountでスクロールの幅を調整できる。

これだと、移動量がある程度大きくても視線での追尾が楽ちん。

同じ悩みの方おためしください。

追記:2009.2.6

なんかスクロールの感触が違ってたので、setTimeout()入れてみた。

 |