Tabloları nasıl kolayca oluşturabilir ve düzenleyebilirim?


28

Bazı belgelerde kullandığım bir tablo (bir kısmı):

+---------------+------------------------+---------------------------------------+
| TASK NAME     | WHEN                   | DESCRIPTION                           |
+---------------+------------------------+---------------------------------------+
| db:seed       | On every update        | Data required for the application to  |
|               |                        | run; you should always be able to     |
|               |                        | safely execute this multiple times    |
|               |                        | for an update.                        |
| db:truncate   | Manually (dangerous!)  | TRUNCATE all tables but postal_codes  |
| postal_codes  | Once                   | Load the postal_codes table           |
+---------------+------------------------+---------------------------------------+

Sorun şu ki, düzenlemek çok garip; eğer bir şeyi değiştirirsem, PITA olan her şeyi (el ile) yeniden hizalamam gerekir.

Bunu yönetmenin daha kolay yolları var mı? Bu şekilde yukarıdaki düzenin tam olarak umrumda değil, ancak 3. sütunun sarılmasını sağlamak istiyorum ...


1
Bir kenara, eğer bu reStructuredText ise, içine bakmayı düşünebilirsiniz list-table(yakın zamanda birçok tabloyu buna dönüştürdüm, çünkü ascii tablolarının bakımı zordur ve çok farklı))
ideasman42

Yanıtlar:


35

Ben eklenti vim-table-mode'un yazarıyım . Bunu geliştirmek ve geliştirmek için çok zaman harcadım, özellikle topluluk geri bildirimleriyle ve bu kullanım durumunun tam anlamıyla karşılığını veriyor.

Kısa hızlı bir başlangıç: Komutla 'tablo moduna' girersiniz :TableModeEnable, sonra şunu yazabilirsiniz:

||
| MOVIE | QUOTE|
||
| Blade Runner | Like tears in the rain |
| Monty Python's quest for the holy grail | Are you suggesting that coconuts migrate? |
||

Ve vim-table-mode, anında size göre hizalamayı otomatik olarak üstlenecektir, böylece şöyle görünecektir:

|-----------------------------------------+-------------------------------------------|
| MOVIE                                   | QUOTE                                     |
|-----------------------------------------+-------------------------------------------|
| Blade Runner                            | Like tears in the rain                    |
| Monty Python's quest for the holy grail | Are you suggesting that coconuts migrate? |
|-----------------------------------------+-------------------------------------------|

Tabloyu daha sonra düzenlerken, vim-table-mode ayrıca sizin için ayarlara da dikkat eder.

'Masa modunu' ile bırakabilirsiniz :TableModeDisable.


Çekirdeği, siz yazdıkça otomatik olarak biçimlendirilecek tablolar oluşturmakla ilgilidir. Tabloları da hareket ettirmek ve değiştirmek için pek çok harita sunar (özellikle <Leader>tdcbir sütunun tamamını kaldırmaktır). Tek yapmanız gereken masa modunu etkinleştirmek ve bunlar devreye girecek ve formatlama konusunda endişelenmeden yazabilirsiniz.

Sütunda başlık üzerinde küçük bir ipucu ile sağa hizalama yeteneği gibi burada görüntülenenden çok daha fazla özelliğe sahiptir. Ayrıca, formülleri tanımlamak ve normal bir elektronik tablo gibi hesaplamalar yapmak için izin veren düzgün bir elektronik tablo formül motoruna sahiptir.

Son derece esnek ve yapılandırılabilir olması için oluşturulmuştur, böylece oluşturulan tabloların ve kenarlıkların birkaç yönünü değiştirebilirsiniz.

Ayrıca güçlerini sergilemek için birkaç senaryo hazırladım. Bu senaryo en yenisidir , ancak o zamandan bu yana birçok gelişme olduğuna dikkat edin.


5
Teşekkürler; Bazı pratik kullanım bilgileri eklemek için cevabınızı biraz düzenlemişim (biraz önce reklam gibi okudum) Benim sorumdaki örnekte olduğu gibi ... Bu mümkün mü?
Martin Tournoij

@Carpetsmoker düzenleme için teşekkürler. Manuel olarak sarabilirsiniz, bunu otomatik olarak yapmanın bir yolu yok.
Dhruva Sagar

6

Eğer kullanabiliyorsa sedve columnyakın gelen bir komut satırı çözüm olacaktır:

!sed 's/[- ]*\([+|]\)/'$'\x01''\1/g' | column -ts $'\x01' | sed '/^[-+ ]*$/s/ /-/g'

Bunu görsel seçim ve '<,'>ya da satır numaralarıyla birleştirebilirsiniz.

Eksileri:

  • Kullanır sedve column. Vim tesadüfidir. sedKomutlar muhtemelen vim değiştirilebilir :substitutekomutlar, ama columnçok önemlidir.
  • Satır ayırıcılar ( ---...-) yastıklı olur, ancak güvenilirliği konusunda şüphelerim var.
  • Ne kadar taşınabilir $'\x01'olduğunu bilmiyorum .

Kaynaklar:


Küçük hatalar bir yana (muhtemelen sabitlenebilir), bu umut verici görünüyor ...
Yapamadığım

5

Herhangi bir eklenti kurmak istemiyorsanız ve hizalamayı koruyarak tabloları düzenlemek istiyorsanız:

- VREPLACE kipinde yerleşik olarak kullanın gR.

(Vim en son sürüme sahip olduğunuzdan emin olun ve uçbirim +vreplaceyazarak özelliğe sahip olup olmadığını kontrol edin vim --version)

görüntü tanımını buraya girin (durum çizgim, hem REPLACE hem de VREPLACE modları için REPLACE gösterecek şekilde ayarlanmış)

REPLACE ve VREPLACE modları hakkında daha fazla bilgi edinmek istiyorsanız , bu makaleyi inceleyin .


3

Bu amaç için tablign komut satırı aracını yarattım ; vim içinden de çalışır. Sadece yükleyin

[sudo -H] pip3 install tablign

tabloyu vim olarak işaretleyin ve arayın

:'<,'>:!tablign

(tabloyu işaretlediyseniz, vim sizin için ilk birkaç karakteri doldurur.)

Sabit sütun genişliklerini henüz yapamaz, ancak ihtiyaç duyulduğunda eklenebilir.

görüntü tanımını buraya girin

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.