■ 機能面について
			主にキーボードショートカットを使い読み進めていく使い方がメイン。
			ピンをたててタブブラウザなどで一気に気になった entry を開くことができる。
			feed 先読み機能がついており、現在表示中の feed の一つ先の feed を先読みすることにより、サクサク読み進めることが可能。また開いた feed の描画は最初 entry の一つを描画し、後にすべての entry 描画を行う方法を採っているためにユーザはほぼ wait 無しで読み進めることが可能となっている。
			左サイドバーのフィード絞り込みインクリメンタル検索では、ローマ字を入力すると簡易 migemo のような機能によりひらがな、カタカナもローマ字から検索することが可能になっている。
			インターフェイス周りの部分は主に最速の中の人が作っている。またサーバサイドとの通信は JSON で行われている。
		 
		
			
			
			
				-  shift + z
-  (shift + z) * 2
 記事の表示を逆順にする
			
				-  ▲をshift + クリック
-  shift + クリックで「新→古」「古→新」のトグル動作
コロン ":" 押下により、vi モード突入。中の人の吹き出しにコマンドを入力できる。また、greasemonkey スクリプトにより、容易にカスタムコマンドを登録可能(:qa! で全既読化するとか。とはいえ当然 vi っぽいコマンド名である必要はない)。この機能は、後述の PlaggerLDR においても、重要な役割を果たしていたりする。
			現在実装されているコマンドは以下の通り。
			
				- :q (中の人を消す)
- :[0-5] (レートを変更。たとえば ":5" で、いま展開されているフィードのレートを 5 にする)
カスタムコマンドを作成したら、下記のテンプレを用いて、共有しましょう。
			またこの Greasemonkey は http://lab.rails2u.com/misc/ldr_keyword_gm.user.js からインストールできるかもしれませんでした。
// ==UserScript==
// @name          LDR Vi Commands
// @namespace     http://d.hatena.ne.jp/keyword/livedoor%20Reader
// @include       http://reader.livedoor.com/reader/*
// ==/UserScript==
(function(){
    var w = unsafeWindow;
    with (w) {
			
        vi['qa!'] = function () {
             var api = new API('/api/subs?unread=1');
             api.post({}, function (subs) {
                 subs.forEach(function (i) {
                     touch_all(i.subscribe_id);
                 });
            });
        };
			
        vi.sub = function () {
          var i = 0;
          var q = new Queue;
          q.interval = 500;
          Array.from(arguments).forEach(function (url) {
            q.push(function () {
              (new API("/api/feed/discover")).post({ url: url }, function (list) {
                if (list.length) {
                  var item = list.sort_by("subscribers_count")[0];
                  if (!item.subscribe_id) {
                    var feedlink = item.feedlink;
                    (new API("/api/feed/subscribe")).post({ feedlink: feedlink },
                                                          function (res) {
                      feedlink2id[feedlink] = res.subscribe_id;
                      message(++i + '\u4ef6\u767b\u9332\u3057\u307e\u3057\u305f');
                    });
                  }
                }
              });
            });
          });
          q.push(function () {
            subs.update(true);
          });
          q.exec();
          message('\u767b\u9332\u4e2d...');
        };
			
        register_command("mt|moveto", function (folder) {
          if (State.now_reading)
            Control.move_to(folder);
        });
			
        register_command("mkdir", function (folder) {
          create_folder(folder);
        });
			
        register_command("irb|ruby", function() {
          var self = arguments.callee;
          if (!self.gen_param)
            self.gen_param = function (args) {
              var cmd, headers, onload;
              if (self.sess) {
                cmd = encodeURIComponent(w.Array.from(args).join(" "));
                headers = {
                  Cookie: ["_session_id", self.sess
                              ].map(encodeURIComponent).join("=")
                };
                onload = function(res) {
                  message(res.responseText);
                };
              }
              else {
                cmd = "!INIT!IRB!";
                onload = function(res) {
                  self.sess = res.responseText;
                  self.apply(null, args);
                };
              }
              return {
                method: "GET",
                url: "http://tryruby.hobix.com/irb?cmd=" + cmd,
                headers: headers,
                onload: onload
              };
            };
          message("..");
          GM_xmlhttpRequest(self.gen_param(arguments));
        });
			 // ↑ここにコマンドを追加(この行は削除しないでください)
    }
})();
// == end == ←削除しないで下さい。
			新しくコマンドを追加する場合は、編集画面内のtextareaから以下のテンプレをコピーしてコードを入力した後、上にペーストしてください。
			
コマンドの実装
		 
		
			
			 register_command
			vi コマンドを追加。
			文法:
register_command(command_name, function)
			command_name は "|" 区切りで複数指定可能。
			例:
register_command("h!|help!", message.curry("Don't panic!"));
			 LDR_addStyle
			スタイルシートに新しいルールを追加。
			文法:
LDR_addStyle(selector, style)
			style は文字列または配列
			例:
LDR_addStyle("div.body", "word-break: normal!important;"); // 英語ブログを読みやすく