2009-11-12 9 views
13

Cualquier persona conoce un modo o función emacs que formateará un búfer que contiene un archivo delimitado de modo que cada delimitador (por ejemplo, tabulador) defina una "columna" con el ancho de cada columna establecido en la entrada más larga ?Visualización de columnas delimitadas en emacs

Puedo restablecer la variable de ancho de pestaña, pero eso hace que todas las columnas tengan el mismo ancho. Prefiero las columnas de ancho variable, si es posible (por ejemplo, cómo un programa de hoja de cálculo como Excel mostraría un archivo así después de cambiar el tamaño de las columnas).

+0

Para referencias cruzadas, la siguiente pregunta demuestra otras dos soluciones a esta pregunta, utilizando (a) la biblioteca table.el de Emacs y (b) SES (hoja de cálculo simple de Emacs), que proporciona una aplicación de hoja de cálculo adecuada: http : //stackoverflow.com/questions/6273647/add-remove-column-spreadsheet-features-in-emacs – phils

Respuesta

13
+0

http://orgmode.org/manual/Built_002din-table-editor.html –

+0

Tuve problemas para conectarme a http://orgmode.org/. También se puede encontrar una copia antigua del manual aquí: http://www.gnu.org/software/emacs/manual/html_node/org/Built_002din-table-editor.html –

+0

org-mode es muy bueno, pero muy lento en archivos grandes: http://lists.gnu.org/archive/html/emacs-orgmode/2013-08/msg00132.html Por lo tanto, si su archivo tiene más de unos pocos cientos de líneas, no se ejecuta muy bien. –

3

Supongamos que su delimitador es TAB. Marcar el búfer entero, entonces:

C-u M-x align-regexp \(\s-*\)TAB RET RET RET y 

Dónde TAB allí es una pestaña de carbón real. Véase mi respuesta similar aquí:

how to align arguments to functions in emacs?

+0

Parece que usted quiso decir: Cu Mx align-regexp RET \ (\ s - * \) TAB RET RET RET y Eso funciona en emacs 23, pero parece dar un error "no suficientes argumentos para la cadena de formato" en emacs 21 (que todavía está presente en algunos sistemas que uso). Para ser realmente quisquilloso, también expande todas las columnas por una tabulación, pero supongo que un reemplazo global se encargaría de eso. –

4

Org-mode como lo sugiere huaiyuan hizo justo lo que yo quería.

Para dar un ejemplo a los demás, después de instalar org-mode encontré que lo siguiente funcionaba bien.

Abra un nuevo archivo en modo orgánico C-x C-f table.org y luego M-x org-table-import para importar el archivo delimitado, y listo.

El comando C-| no me funcionó para convertir contenidos de búferes preexistentes en una tabla, simplemente insertó una nueva tabla, pero aún no conozco el modo orgánico.

+1

'C- |' funciona si la región está * activa *, lo que (para mí) significa resaltar la región con el mouse y luego escribir 'C- |'. –

+2

@Trey: creo que quieres decir 'C-c |'? –

Cuestiones relacionadas