Aquí hay (parte de) una tabla que uso en alguna documentación:
+---------------+------------------------+---------------------------------------+
| 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 |
+---------------+------------------------+---------------------------------------+
El problema es que es muy difícil de editar; si cambio una cosa, necesito (manualmente) realinear todo, que es un PITA
¿Hay formas más fáciles de manejar esto? No me importa el diseño exacto anterior como tal, pero me gustaría mantener la envoltura de la tercera columna ...
wrapping
word-processing
alignment
ascii-art
Martin Tournoij
fuente
fuente
list-table
(recientemente convertí muchas tablas a esto, porque las tablas ascii son difíciles de mantener yRespuestas:
Soy el autor del complemento vim-table-mode . He pasado bastante tiempo construyendo y mejorando esto, especialmente con los comentarios de la comunidad y satisface exactamente este caso de uso.
Un breve inicio rápido: ingresa al 'modo de tabla' con el
:TableModeEnable
comando, luego puede simplemente escribir:Y vim-table-mode se encargará automáticamente de la alineación sobre la marcha, para que se vea como:
Cuando edite la tabla más tarde, vim-table-mode también se encargará de la alineación por usted.
Puede salir del 'modo tabla' con
:TableModeDisable
.Su núcleo se trata de crear fácilmente tablas que se formatearán automáticamente a medida que escribe. También ofrece muchas asignaciones para moverse y manipular tablas (una particularmente útil es
<Leader>tdc
eliminar una columna completa). Todo lo que tiene que hacer es habilitar el modo de tabla y estos se activarán y podrá simplemente escribir sin preocuparse por el formateo.Tiene muchas más funciones que las que se muestran aquí, como la capacidad de alinear a la derecha las columnas con una pequeña pista en el encabezado. También tiene un motor de fórmulas de hoja de cálculo ordenado que le permite a uno definir fórmulas y realizar cálculos como lo haría una hoja de cálculo normal.
Está diseñado para ser extremadamente flexible y configurable para que pueda cambiar varios aspectos de las tablas y bordes que se crean.
También he creado algunos screencasts tratando de mostrar sus poderes. Este screencast es el más reciente , pero tenga en cuenta que ha habido muchas mejoras desde entonces.
fuente
Si puede usar
sed
ycolumn
, una solución de línea de comandos que se acerque sería:Puede combinar esto con selección visual y /
'<,'>
o con números de línea.Contras:
sed
ycolumn
. Vim es incidental. Lossed
comandos probablemente se pueden cambiar a:substitute
comandos vim , perocolumn
es crucial.---...-
) se rellenan, pero tengo sospechas sobre su fiabilidad.$'\x01'
es.Fuentes:
column -t
ese mantiene separadores en la salidafuente
Si no desea instalar ningún complemento y desea editar tablas manteniendo la alineación:
- use el modo VREPLACE incorporado , activado por
gR
.(Asegúrese de tener la última versión de vim y compruebe si está compilada con la
+vreplace
función, escribiendovim --version
en el terminal)(mi línea de estado está configurada para mostrar REPLACE para los modos REPLACE y VREPLACE)
Si usted quiere saber más acerca de los REPLACE y VREPLACE modos, compruebe este artículo .
fuente
He creado la herramienta de línea de comandos tablign para este propósito; funciona desde dentro de vim también. Simplemente instale con
marque la tabla en vim y llame
(vim completa los primeros caracteres si marcó la tabla).
Todavía no puede hacer anchos de columna fijos, pero podría agregarse si fuera necesario.
fuente