Here is (part of) a table I use in some documentation:+---------------+------------------------+---------------------------------------+| 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           |+---------------+------------------------+---------------------------------------+The problem is this is very awkward to edit; if I change one thing, I need to(manually) re-align everything, which is a PITAAre there easier ways to manage this? I don't care about the exact above layoutas such, but would like to keep the wrapping of the 3rd column...
How can I easily create and maintain tables?
wrapping;word processing;alignment;ascii art
I am the author of the pluginvim-table-mode.I've spent quite a lot of time building & improving this, especially withcommunity feedback and it caters exactly to this use case.A short quickstart: You enter 'table mode' with the :TableModeEnable command,you can then simply type:||| MOVIE | QUOTE|||| Blade Runner | Like tears in the rain || Monty Python's quest for the holy grail | Are you suggesting that coconuts migrate? |||And vim-table-mode will automatically take care of the alignment for youon-the-fly, so that it will look as:|-----------------------------------------+-------------------------------------------|| MOVIE                                   | QUOTE                                     ||-----------------------------------------+-------------------------------------------|| Blade Runner                            | Like tears in the rain                    || Monty Python's quest for the holy grail | Are you suggesting that coconuts migrate? ||-----------------------------------------+-------------------------------------------|When editing the table later, vim-table-mode will also take care of thealignment for you.You can leave 'table mode' with :TableModeDisable.Its core is about easily creating tables which will be auto formatted as youtype. It offers a lot of mappings to move around and manipulate tables as well(a particularly useful one is <Leader>tdc to remove an entire column).  Allyou have to do is enable table mode and these will kick in and you can just typeaway without worrying about formatting.It has many more features than displayed here, such as the ability to rightalign columns with a little hint on the header. It also has a neat spreadsheetformula engine that allows one to define formulas & perform computations like aregular spreadsheet would.  It's built to be extremely flexible & configurable so you can change severalaspects of the tables & borders that are created.I have also created a few screencasts trying to showcase its powers.This screencast is the most recent one, but please note that there have been many improvements since.