Emacs - Múltiples columnas un búfer
Estoy tratando de editar algún código ensamblador que tiende a ser formateado en listados largos pero delgados. Me gustaría poder usar algunos de los acres de espacio horizontal que tengo y ver más código en pantalla a la vez. ¿Hay un método para que Emacs (o de hecho otro editor) me muestre varias columnas todas apuntando al mismo búfer?
C - x 3 (emacs) y: vsplit (vim) son excelentes para múltiples vistas separadas en el código, pero me gustaría que fluyera de una columna a otra (como texto en un periódico).
7 answers
Véase modo de seguimiento. Extracto:
El modo de seguimiento es un modo menor que hace que dos ventanas, ambas mostrando el mismo búfer, se desplacen como una sola ventana virtual "alta"."Para usar el modo de seguimiento, vaya a un marco con una sola ventana, divídalo en dos ventanas lado a lado usando C-x 3, y luego escriba M-x follow-mode. A partir de entonces, puede editar el búfer en cualquiera de las dos ventanas, o desplazarse por una; la otra ventana lo sigue. En el modo de seguimiento, si mueve el punto fuera de la parte visible en una ventana y en la parte visible en la otra ventana, que selecciona la otra ventana-de nuevo, el tratamiento de los dos como si fueran partes de una ventana grande.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-09 15:07:09
Utilizo esta función para invocar follow-mode
, aunque necesitaría personalización para un tamaño de pantalla diferente:
;;; I want a key to open the current buffer all over the screen.
(defun all-over-the-screen ()
(interactive)
(delete-other-windows)
(split-window-horizontally)
(split-window-horizontally)
(balance-windows)
(follow-mode t))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-24 18:33:46
El plugin "Multipager" para Vim puede hacer esto con VIM splits para las personas que desean obtener este comportamiento en Vim.
Obtenlo de la página del Dr. Chip: http://mysite.verizon.net/astronaut/vim/index.html#MPAGE
Docs: http://mysite.verizon.net/astronaut/vim/doc/mpage.txt.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-23 22:22:29
Vim puede hacer esto usando :vsplit
- y puede tener el mismo búfer abierto en varias "ventanas" (que en realidad son secciones dentro de una sola "ventana").
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-09 14:16:23
Un vistazo rápido a la wiki de emacs no muestra un modo como usted describe. Sin embargo, no debería ser demasiado difícil escribir uno... Solo necesita dividir la ventana con C-x 3 y mover el texto en la otra ventana hacia abajo, y cada vez que mueva el texto, haga lo mismo en la otra ventana...
Los problemas pueden ocurrir cuando llegas a la parte inferior del búfer, ¿quieres que el cursor vaya inmediatamente a la otra ventana en la parte superior?
Hmm, tal vez no es tan fácil. Pero todavía debería ser factible...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-09 14:59:56
Este es el comportamiento predeterminado de emacs al dividir la ventana (C-x 3 para dividir vertical) obtienes dos columnas que tienen el búfer actual abierto
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-09 14:12:54
Use vertical-split con C-x 3. Esto dividirá el búfer actual en dos columnas que puede cambiar con C-x o.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-09 14:17:32