Sublime Text 2'de, düzensiz bir kenarda birden fazla imleci olan düz bir sütuna nasıl girebilirim?


33

Farz edelim ki birkaç satır boyunca birden fazla imleç var, bunun gibi:

foo|
barr|
foobar|
baz|

Her satırın sonundaki boşlukları otomatik olarak düz bir kenara nasıl iterim?

foo    |
barr   |
foobar |
baz    |

(Bu örneklerde, |imlecimin olması gerekiyordu.)

Siz sadece Tabya Spaceda ilk düzenlemeden, bunu alırsınız:

foo    |
barr    |
foobar    |
baz    |

Bu yararlı, ama aradığım şey değil. Düzensiz bir çok imlecin düz bir sütuna girmesini istememe izin verecek bir tür klavye kısayolu arıyorum.


Basitçe bir sekme veya iki işi eklemek mi?
Darth Android

Hayır, ama anlamada başarısız olabilirim. Sorumu açıklığa kavuşturmak için düzenleme yaptım.
GladstoneToplam

Düzenlemeniz, Space'in ne yaptığını ve bir dereceye kadar Sekme satırlarınızın büyük miktarda değişip değişmediğini, ancak hepsi oldukça yakınsa iki sekmeden sonra imleciniz tablonun üstünde olmalıdır. Hepsini aynı sekme panelinde almak için biraz ayarlama yapmanız gerekebilir, ancak boşluk ayarlamaya çalışmaktan daha az olacaktır.
Darth Android

Bu garip. TabHer satırın sonuna doğru basmak , düzensiz çoklu imlecin düz bir sütuna girmesini sağlar, ancak aynı efekti regex kullanarak elde etmek mümkün değildir. İzleyen boşlukları aradım: \s*$ve onları sekme karakteriyle değiştirdim: \t- fakat elle \tbasmakla aynı efekti elde edemiyorum Tab.
amiregelz

1
Bilginize, bunu Sublime Text 2 istek panosuna bir özellik isteği olarak gönderdim .
GladstoneBeep

Yanıtlar:


10

Wbond's Sublime Alignment kullanabilirsiniz

Bunu ayarlar dosyanıza eklemenizi gerektirebilir (Tercihler> Paket Ayarları> Hizalama> Ayarlar-Kullanıcı:

// 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": ["=", "|"]

"|" Yerine hangi karakterle olursa olsun hizalamak istiyorsun.

Düzenleme: mtoast öğrendim, "\n""alignment_chars" ekleyerek istenen etkiyi verir. Yeni satır karakterini "alignment_space_chars" 'a eklemek muhtemelen gerekli değildir ve metni silebilir. Ancak sınırlı testlerimde bir fark görmedim.

controlHer satırın sonunda tutun ve tıklayın. Sonra hizalama kısayol tuşlarına basın (Linux için varsayılan ctrl+ alt+ ' dır a). İmleçlerin en uzak imleç pozisyonuyla sıralandığını göreceksiniz.

Düzen2:"alignment_space_chars" Bir metin bloğunu vurguladığınızda metni silmek için yeni satır eklemek ve Sublime Alignment satırda hizalanacak başka bir şey bulamaz (eşit işaret gibi).

Ayrıca, Sublime Alignment hizalamak için başka bir şey bulamazsa "alignment_chars", satırların sonunu vurgulanan en uzun çizgiyle eşleşecek şekilde boşluklarla (veya ayarlarınıza bağlı sekmelerle) dolduracak şekilde yeni satır eklemek .


1
Vay harika! Sublime Alignment paketini kurdum, "\n"(newline) ekledim "alignment_chars"ve istenen sonucu aldım. (Not: Eklemedim "alignment_space_chars", bu da satırların silinmesine neden oldu.) Cevabınıza bu öneriyi ( "n") eklerseniz kabul edeceğim.
GladstoneKeep

Güzel! Benim gibi mükemmeliyetçiler için çok yararlı bir paket :)
amiregelz 4:12

3
Benzer bir paket de var: Tabular'ı Hizala , biraz daha esnektir (birden fazla karakterle hizalayabilirsiniz).
d_rail

AlignTab d_rail tarafından yukarıda belirtilen, |tek bir \ \
kullanıcı tarafından

Bunun bir milyon kadar oyu olmadığına inanamıyorum.
Charles

44

Küçük bir hack kullanarak, sadece biraz daha fazla çaba harcayarak, harici bir paket olmadan da yapabilirsiniz. İşte nasıl:

| bu talimatlarda bir imleci temsil eder.

  1. Ctrl+ Tıklatmak veya bir metin bloğu seçip Ctrl+ Shift+ tuşlarına basarak istediğiniz tüm satırlarda imleçler oluşturun L. ( seçim belgeleri )

  2. Her imleç, her imleç sütununuzu istediğiniz noktaya gelene ya da bu noktadan geçene kadar ek boşluklar ekleyin (ne kadar geçmiş olduğu önemli değildir):

    foo     |
    barr     |
    foobar     |
    baz     |
    
  3. ( isteğe bağlı 1 ) Boşluk izleyen herhangi bir karakteri yazın; hadi kullanalım c:

    foo     c |
    barr     c |
    foobar     c |
    baz     c |
    
  4. Homeİmleçlerin satırların başına gitmesini sağlamak için basın :

    |foo     c
    |barr     c
    |foobar     c
    |baz     c
    
  5. → (right arrow) İmleçler sütununuzu istediğiniz yere gelene kadar basın :

    foo    | c
    barr   |  c
    foobar |    c
    baz    | c
    
  6. Aşağıdaki boşlukları seçmek için Ctrl+ Shift+ tuşlarına basın ve cardından Delete:

    foo    |
    barr   |
    foobar |
    baz    |
    
  7. ( isteğe bağlı 1 ) Deleteİsteğe bağlı adımda eklediğimiz fazladan boşluk karakterini temizlemek için tekrar basın .


1 Biz kullanmak cbiz saklamak istediğiniz hatlarda ek içerik sadece varsa ve ardından bir boşluk karakteri. O olmadan Ctrl+ Shift+ , satırlardaki ek içeriğin ilk kelimesini seçerek silme işini zorlaştırır.


2
Bu başlangıçta bükülmüş görünüyor ama düzgün bir kesmek. Düzgün hizalamalı sütunlar yapıştırmak için iyi. Bir sonraki sütun, metin pasta eklentisi kullanılarak yapıştırılabilir.
kullanıcı

1
Bu tekniği bir süredir kullanıyorum ancak dikkatli olun , ctrl+shift+righttüm karakterleri tutarlı bir şekilde ele almıyor , bu yüzden sadece beyaz alandan daha fazlasını seçebilir.
SpareBytes 12:15

1
Gerçekten temiz bir numara, katılıyorum. Ama sonunda bir karakter olmadan denedim, kullandım Shift-End Deleteve işe yaradı. Bazı durumlarda çalışıyor mu, diğerleri değil mi?
Septagram

Bu her zaman yaptığım şey :)
Domino

Bu, cbir satırda diğerinde kelimenin sonundan önce ise işe yaramaz . Şu anki sorunum bu. Bazı satırlar sağa kaydırmak için yeterli karakter içermiyor, bu nedenle bunu bir sonraki satıra sararak bu hack'ü bu şekilde bırakıyor. Bu bir kesmek, kullanışlı bir hepsini değil değiştirme.
leetNightshade

0

Dışındaki karakterler üzerinde girinti isteyenler için =ve |ben yüklemek başardı Hizalama dosyayı paketini ve değiştirmek Sublime Text > Preferences > Package Settings > Alignment > Settings - Useraşağıdaki gibi görünecek şekilde:

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

Sonra aşağıdaki kodu seçtim:

  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)}

ve Command + Ctrl + Ahizalamak için

  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)}

Her şey, {createhizalanmış halde iken metnin alabileceği en soldaki sütuna taşındı .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.