O(logN)のカーソル移動方法

  • 1,542 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,542
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. O(logN)のカーソル移動方法 2011年 元旦 竹辺靖昭
  • 2. • あけましておめでとうございます。本年もよろ しくお願いいたします。• 私の昨年の一大ニュース: なんと、「情報処理」3月号にHaskellのイベント の記事を書いてしまいました(^_^;)。 記事を書いてはみたものの、仕事ではHaskell は全く使っていなかったので、その後、社内で も普及させるよう試みています。• ところで、今年はますますスピードが求められ る世の中になりそうですが、皆さんはどのよう にテキストエディタのカーソルを移動している でしょう?
  • 3. • 問題: 画面上の目的の行にカーソルを速く移 動するにはどのような方法が考えられるか?• AからBに移動したい A B
  • 4. • 方法1: 1行ずつ移動する• 問題点: 時間がかかってしまう A Ctrl-n Ctrl-f B
  • 5. • 方法2: 検索機能を使う• Emacsの場合 Ctrl-s => (^_^;) と入力 A B
  • 6. • 検索機能を使った移動を推奨する人もいる• 10 Specific Ways to Improve Your Productivity With Emacs (Steve Yegge氏) http://sites.google.com/site/steveyegge2/effective-emacs Item 4: Use incremental search for Navigation ... Whenever you need to jump the cursor backward or forward more than about 5 lines, and you can see the target location, you should be using i-search. ... 訳: 5行以上移動するときにはインクリメンタ ルサーチを使うべきである。
  • 7. • 検索機能を使う方法の問題点 他の場所にも同じ文字列があると引っかかっ てしまう A 「charset」を検 索してもこれら に引っかかる B
  • 8. • 改良案 移動する前に各行にユニークな文字列を挿 入しておく 問題点: 画面が狭くなってしまう
  • 9. • さらに改良案 検索でマッチしている文字列の次の文字だけ 表示する ここで「f」を検索… A B
  • 10. • さらに改良案 検索でマッチしている文字列の次の文字だけ 表示する 「f」を検索中の状態 A B
  • 11. • さらに改良案 検索でマッチしている文字列の次の文字だけ 表示する 「ff」を検索中の状態 A B
  • 12. • わざわざ検索を使わなくてもバイナリサーチ のように動けばよいのではないか?• ということで作ってみました
  • 13. • 移動したいところが現在位置より上であれば Alt+↑ 下であればAlt+↓を押す (画面は初期状態) A B
  • 14. • 上または下の領域が2色に塗り分けられる• この場合はAから下が2色になる (1回Alt+↓を押した状態) A B
  • 15. • 移動先が黄色ならばAlt+↑ 緑色ならばAlt+↓ を押す(2回Alt+↓を押した状態)• 2回のキー入力ですでに目的の行に到着 A B
  • 16. • Alt+↑/↓を押すたびに範囲が半分になるの で任意の場所に移動できます (3回Alt+↓を押した後の状態) A B
  • 17. • 結論: 64行までの表示であれば6回押せば目 的の行に到達できるので5行以上移動すると きには便利です(^_^)/• https://github.com/beketa/binmove Emacsユーザの方はこちらからbinmove.elを ダウンロードすればお使いになれます