Aqui está (parte de) uma tabela que eu uso em alguma documentação:
+---------------+------------------------+---------------------------------------+
| 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 |
+---------------+------------------------+---------------------------------------+
O problema é que isso é muito complicado de editar; se eu mudar uma coisa, preciso (manualmente) realinhar tudo, que é uma PITA
Existem maneiras mais fáceis de gerenciar isso? Não me importo com o layout exato acima, mas gostaria de manter o empacotamento da terceira coluna ...
wrapping
word-processing
alignment
ascii-art
Martin Tournoij
fonte
fonte
list-table
(recentemente eu convertido muitas mesas para isso, porque as tabelas ASCII são difíceis de manter e diff mal)Respostas:
Eu sou o autor do plugin vim-table-mode . Passei muito tempo criando e aprimorando isso, especialmente com o feedback da comunidade e ele atende exatamente a esse caso de uso.
Um breve início rápido: você entra no 'modo de tabela' com o
:TableModeEnable
comando e pode simplesmente digitar:E o vim-table-mode cuidará automaticamente do alinhamento imediatamente, para que fique com:
Ao editar a tabela posteriormente, o modo vim-table também cuidará do alinhamento para você.
Você pode sair do 'modo mesa' com
:TableModeDisable
.Seu principal é criar facilmente tabelas que serão formatadas automaticamente conforme você digita. Ele oferece muitos mapeamentos para mover e manipular tabelas também (um particularmente útil é
<Leader>tdc
remover uma coluna inteira). Tudo o que você precisa fazer é ativar o modo de tabela, que será ativado e você poderá digitar sem se preocupar com a formatação.Possui muito mais recursos do que os exibidos aqui, como a capacidade de alinhar colunas à direita com uma pequena dica no cabeçalho. Ele também possui um mecanismo de fórmula de planilha simples que permite definir fórmulas e executar cálculos como faria uma planilha regular.
Ele foi desenvolvido para ser extremamente flexível e configurável, para que você possa alterar vários aspectos das tabelas e bordas criadas.
Eu também criei alguns screencasts tentando mostrar seus poderes. Este screencast é o mais recente , mas observe que houve muitas melhorias desde então.
fonte
Se você pode usar
sed
ecolumn
, uma solução de linha de comando que se aproxima seria:Você pode combinar isso com a seleção visual e /
'<,'>
ou com os números das linhas.Contras:
sed
ecolumn
. Vim é incidental. Ossed
comandos provavelmente podem ser alterados para:substitute
comandos do vim , mascolumn
são cruciais.---...-
) são preenchidos, mas tenho suspeitas sobre sua confiabilidade.$'\x01'
é.Fontes:
column -t
mantém os separadores na saídafonte
Se você não deseja instalar nenhum plug-in e deseja editar tabelas mantendo o alinhamento:
- use o modo VREPLACE integrado , ativado por
gR
.(Verifique se você possui a versão mais recente do vim e verifique se ele foi compilado com o
+vreplace
recurso, digitandovim --version
no terminal)(minha linha de status está configurada para mostrar REPLACE nos modos REPLACE e VREPLACE)
Se você quiser saber mais sobre os modos REPLACE e VREPLACE , consulte este artigo .
fonte
Eu criei a tablign da ferramenta de linha de comando para esse fim; também funciona a partir do vim. Basta instalar com
marque a tabela no vim e ligue
(o vim preenche os primeiros caracteres para você, se você marcou a tabela.)
Ainda não pode fazer larguras fixas de colunas, mas isso pode ser adicionado se necessário.
fonte