Ini adalah (bagian dari) tabel yang saya gunakan dalam beberapa dokumentasi:
+---------------+------------------------+---------------------------------------+
| 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 |
+---------------+------------------------+---------------------------------------+
Masalahnya adalah ini sangat canggung untuk diedit; jika saya mengubah satu hal, saya perlu (secara manual) menyelaraskan kembali semuanya, yang merupakan PITA
Apakah ada cara yang lebih mudah untuk mengelola ini? Saya tidak peduli dengan tata letak yang tepat di atas, tetapi ingin tetap membungkus kolom ke-3 ...
wrapping
word-processing
alignment
ascii-art
Martin Tournoij
sumber
sumber
list-table
(baru-baru ini saya mengonversi banyak tabel menjadi ini, karena tabel ascii sulit untuk dipelihara dan berbeda dengan buruk)Jawaban:
Saya adalah penulis plugin vim-table-mode . Saya telah menghabiskan cukup banyak waktu untuk membangun & meningkatkan ini, terutama dengan umpan balik dari masyarakat dan tepat untuk kasus penggunaan ini.
Mulai cepat singkat: Anda memasukkan 'mode tabel' dengan
:TableModeEnable
perintah, Anda kemudian cukup mengetik:Dan vim-table-mode akan secara otomatis mengatur perataan untuk Anda saat bepergian, sehingga akan terlihat seperti:
Saat mengedit tabel nanti, vim-table-mode juga akan mengatur perataan untuk Anda.
Anda dapat meninggalkan 'mode tabel' dengan
:TableModeDisable
.Intinya adalah tentang membuat tabel dengan mudah yang akan diformat secara otomatis saat Anda mengetik. Ini menawarkan banyak pemetaan untuk bergerak dan memanipulasi tabel juga (yang sangat berguna adalah
<Leader>tdc
menghapus seluruh kolom). Yang harus Anda lakukan adalah mengaktifkan mode tabel dan ini akan muncul dan Anda bisa langsung mengetik tanpa khawatir tentang pemformatan.Ini memiliki lebih banyak fitur daripada yang ditampilkan di sini, seperti kemampuan untuk meluruskan kolom dengan sedikit petunjuk pada header. Ini juga memiliki mesin formula spreadsheet yang rapi yang memungkinkan seseorang untuk mendefinisikan formula & melakukan perhitungan seperti yang dilakukan spreadsheet biasa.
Ini dibangun agar sangat fleksibel & dapat dikonfigurasi sehingga Anda dapat mengubah beberapa aspek dari tabel & perbatasan yang dibuat.
Saya juga telah membuat beberapa screencast yang mencoba memamerkan kekuatannya. Screencast ini adalah yang terbaru , tetapi harap dicatat bahwa ada banyak perbaikan sejak itu.
sumber
Jika Anda dapat menggunakan
sed
dancolumn
, solusi baris perintah yang akan muncul adalah:Anda dapat menggabungkan ini dengan pemilihan visual dan
'<,'>
atau dengan nomor baris.Cons:
sed
dancolumn
. Vim bersifat insidental. Thesed
perintah mungkin dapat diubah untuk vim:substitute
perintah, tetapicolumn
sangat penting.---...-
) menjadi empuk, tapi saya curiga keandalannya.$'\x01'
itu.Sumber:
column -t
itu malah membuat separator tetap dalam outputsumber
Jika Anda tidak ingin menginstal plugin apa pun dan Anda ingin mengedit tabel yang menjaga perataan:
- Gunakan mode VREPLACE bawaan , diaktifkan oleh
gR
.(Pastikan Anda memiliki versi terbaru vim, dan periksa apakah itu dikompilasi dengan
+vreplace
fitur, ketikkanvim --version
pada terminal)(status saya diatur untuk menampilkan REPLACE untuk mode REPLACE dan VREPLACE)
Jika Anda ingin tahu lebih banyak tentang mode REPLACE dan VREPLACE , periksa artikel ini .
sumber
Saya telah membuat alat baris perintah tablign untuk tujuan ini; itu bekerja dari dalam vim juga. Cukup instal dengan
tandai tabel dalam vim dan panggilan
(vim mengisi beberapa karakter pertama untuk Anda jika Anda telah menandai tabel.)
Itu tidak dapat melakukan lebar kolom tetap, tapi itu bisa ditambahkan jika perlu.
sumber