web-dev-qa-db-ja.com

Sublime Text 2では、不規則なエッジに複数のカーソルがある直線の列をどのようにインデントすることができますか?

次のように、複数の行に沿って複数のカーソルがあるとします。

foo|
barr|
foobar|
baz|

次のように、各行の終わりにある空白をフラットエッジに自動的にプッシュするにはどうすればよいですか。

foo    |
barr   |
foobar |
baz    |

(これらの例では、|は私のカーソルであるはずです。)

あなたがちょうど Tab または Space 最初の配置から、これを得ます:

foo    |
barr    |
foobar    |
baz    |

それは便利ですが、私が探しているものではありません。ぼろぼろのマルチカーソルの挿入からまっすぐな列にインデントできるようなキーボードショートカットを探しています。

33
GladstoneKeep

Wbondの Sublime Alignment を使用できます

これを設定ファイルに追加する必要がある場合があります([設定]> [パッケージ設定]> [配置]> [設定-ユーザー:

// The mid-line characters to align in a multi-line selection, changing
// this to an empty array will disable mid-line alignment
"alignment_chars": ["=", "|"],
// If the following character is matched for alignment, insert a space
// before it in the final alignment
"alignment_space_chars": ["=", "|"]

「|」を置き換える整列したい文字で。

編集:mtoastが発見したように、「alignment_chars」に"\n"を追加すると、望ましい効果が得られます。 「alignment_space_chars」に改行文字を追加することはおそらく必要ではなく、テキストを削除する可能性があります。しかし、私の限られたテストでは違いはわかりませんでした。

ホールド control 各行の終わりをクリックします。次に、配置のホットキーを押します(Linuxの場合、デフォルトは ctrlalta)。カーソルが最も遠いカーソル位置に並んでいることがわかります。

Edit2:"alignment_space_chars"に改行を追加すると、テキストのブロックをハイライト表示し、Sublime Alignmentが他に整列するものを見つけられない場合、テキストが削除されます行(等号のような)。

また、Sublime Alignmentが他に位置合わせするものを見つけられない場合、"alignment_chars"に改行を追加すると、強調表示された最長の行に一致するように行の終わりにスペース(または設定によってはタブ)が埋め込まれます。

10
d_rail

わずかな労力で、マイナーなハックを使用して外部パッケージなしでそれを行うこともできます。方法は次のとおりです。

|は、これらの命令のカーソルを表します。

  1. を使用して、必要なすべての行にカーソルを作成します。 Ctrl+クリックするか、テキストのブロックを選択して押す Ctrl+Shift+L。 ( 選択ドキュメント

  2. すべてのカーソルが列を配置したいポイントまたはそれ以上になるまで、すべてのWordの末尾にスペースを追加します(どのくらい前でもかまいません)。

    foo     |
    barr     |
    foobar     |
    baz     |
    
  3. オプション1)スペースが続く任意の文字を入力します。 cを使用しましょう:

    foo     c |
    barr     c |
    foobar     c |
    baz     c |
    
  4. 押す Home カーソルを行の先頭に移動するには:

    |foo     c
    |barr     c
    |foobar     c
    |baz     c
    
  5. 押す → (right arrow) カーソルが列を配置する場所になるまで:

    foo    | c
    barr   |  c
    foobar |    c
    baz    | c
    
  6. 押す Ctrl+Shift+ 次のすべての空白とcを選択するには、を押します Delete

    foo    |
    barr   |
    foobar |
    baz    |
    
  7. オプション1)を押します Delete 再度、オプションのステップで追加した余分な空白文字をクリーンアップします。


1 保持したい行に追加のコンテンツがある場合にのみ、c文字とそれに続くスペースを使用します。それがなければ、 Ctrl+Shift+ 行の追加コンテンツの最初の単語が選択され、削除が難しくなります。

44
kogre

=|以外の文字をインデントしたい人のために、 Alignment パッケージをインストールし、Sublime Text > Preferences > Package Settings > Alignment > Settings - Userのファイルを次のように変更することができました以下:

{
  "alignment_chars": [
    "{create",
   ]
}

次に、次のコードを選択しました。

  let!(:admin_user) {create(:admin_user, :admin)}
  let!(:another_admin_user) {create(:admin_user, :admin)}
  let!(:superadmin_user1) {create(:admin_user, :superadmin)}
  let!(:superadmin_user2) {create(:admin_user, :superadmin)}
  let!(:nonadmin_user) {create(:admin_user)}

Command + Ctrl + Aを押して整列させました。

  let!(:admin_user)        {create(:admin_user, :admin)}
  let!(:another_admin_user){create(:admin_user, :admin)}
  let!(:superadmin_user1)  {create(:admin_user, :superadmin)}
  let!(:superadmin_user2)  {create(:admin_user, :superadmin)}
  let!(:nonadmin_user)     {create(:admin_user)}

{createテキストが配置されている間、すべてが左端の列に移動しました。

0
Matthew Hinea