LoginSignup
6
6

More than 5 years have passed since last update.

smalls つくった

Last updated at Posted at 2015-07-05

2017.2.17 追記 ここから
このパッケージはもうメンテしてません。
2017.2.17 追記 ここまで

smalls

gif

素早く、カーソルを望みのポジション移動する。探索(search) and ジャンプ.

自作の Vim プラグイン vim-smalls の Atom 版.
Vim の smalls は自分ではあまり使っていなかった。
Atom のやつはどうなるか分からないが、Pane を超えてジャンプできるので、便利さは vim-smalls より上。

機能

  • 見えている Pane 全てから検索してジャンプ
  • カーソル位置を着地時にハイライト(デフォルトで有効)
  • 入力文字が、設定した長さを超えると自動的にラベルを表示
  • easymotion スタイルのラベルジャンプ
  • 自作の vim-smalls の移植
  • ラベルの表示位置を、start, end のどちらか選ぶことができる。
  • ラベルに使う文字を設定できる。
  • 大文字でラベルを表示し(小文字より見分けやすいので)、ラベルジャンプは小文字入力で可能。

使い方

  1. smalls:start でスタート
  2. 飛びたい文字を入力し、Enter(core:confirm) or smalls:jump.
  3. ラベルが表示されるので、選んでジャンプ

コマンド

  • smalls:start: スタート
  • smalls:jump: ラベルジャンプを開始。smalls 用のミニエディタ上でのみ有効なコマンド

キーマップ

デフォルトは無し。

e.g.

'atom-text-editor:not([mini])':
  'ctrl-;': 'smalls:start'

# オプション
# 指をあまり動かさずに、ラベルジャンプに入ることが出来る。
# そのかわり、`;` 自体が検索できなくなるので注意
'atom-text-editor.smalls.search':
  ';': 'smalls:jump'
  • 私の設定( vim-mode ユーザー) ;vim-mode:repeat-find に割り当てられているが、他のキーに割り当てて ; を使っている。
# `vim-mode:repeat-find` を潰しているので注意。
'atom-text-editor.vim-mode.command-mode':
  ';': 'smalls:start'

ラベルのスタイルのカスタマイズ

style.less
atom-text-editor::shadow .smalls-label {
  background-color: @background-color-error;
}

同種(?)パッケージ

Atom

Vim

Emacs

IntelliJ

TODO

  • Use panel to read input from user
  • Customizable label style
  • Refactoring especially Input view.
  • Better labeling algorithm to support more than 2 level nested label.
  • Unlock scroll cursor with hotkey?
  • Narrowing based on grammar scope?

先輩ありがとうございます!

smalls は以下の先人の仕事の上に成り立っています。ありがとう!

smalls を作るまでのステップ

vim-small を作るときは、vim-easymosion を folk して書き換えながら動作を理解した。
その土台を元に vim-smalls をつくった。
今回も同じアプローチをとった。

  1. 似たような Package である jumpy を folk して書き換える。
  2. atom-smalls をつくった。

jumpy の書き換えを通して、大方の土台が出来た。
あまりにも変えたので、PR を送るつもりは無かったが、作者が送ってくれというので、
送った。

https://github.com/DavidLGoldberg/jumpy/issues/65
https://github.com/DavidLGoldberg/jumpy/pull/66

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6