mac commands comandos emacs

commands - emacs ubuntu



Emacs: ayúdame a entender la administración de archivos/buffer (6)

He estado usando emacs para todas mis necesidades de edición de texto durante los últimos tres años. Cuando estoy en un solo archivo, trabajando en código o lo que sea, soy bastante eficiente. Con dos archivos, puedo "Cx b RET" entre ellos y lo hago bien. Sin embargo, cada vez que necesito trabajar en más de dos archivos a la vez, tiendo a perderme.

Estos son algunos de los problemas en los que me gustaría trabajar:

  1. Olvidé cómo se llaman algunos de mis buffers, pero no entiendo por qué Cx Cb divide mi ventana en dos buffers y sale del mini buffer. Claro que puedo cambiar los búferes y elegir un búfer para visitar, pero esto no es intuitivo y me deja con dos búferes abiertos.

  2. Cuando visito un directorio en lugar de un archivo, tengo una lista conveniente de todos los archivos y directorios. Por lo general, quiero hacer una de estas dos cosas con esto: 1) Abrir un solo archivo y nunca volver a ver este búfer O 2) Abrir un grupo de archivos y nunca volver a ver este búfer. Realmente no sé cómo hacer esto, ya que mover el punto a un archivo y presionar return no hace ninguna de estas cosas.

  3. Sé que mis buffers no son como pestañas, pero tengo una inclinación a querer desplazarme por ellos para encontrar lo que quiero. No sé de ninguna vinculación de teclas para esto, pero me gustaría que fuera Mn / Mp o similar. Por otra parte, esta puede ser una manera terriblemente ineficiente de cambiar los buffers.

  4. Cuando abro ayuda interactiva de cualquier tipo (por ejemplo, en ESS), tengo la costumbre de volver al búfer en el que estaba trabajando y usar Cx 1 para volver a un solo búfer. Sin embargo, cuando hago esto, el búfer de ayuda se cuelga en mi lista de búferes, lo que me confunde aún más. Sé que puedo cambiar a ese búfer, matarlo, volver atrás y luego volver a un único búfer, pero esto parece estar mal.

La forma en que he lidiado con esto hasta el momento implica el uso de un administrador de ventanas de mosaico y algunas ventanas de emacs en diferentes espacios de trabajo, en lugar de aprender realmente la mejor manera de administrar una cantidad de archivos en emacs. No necesariamente quiero cambiar emacs para que se ajuste mejor a mis necesidades (aunque estoy abierto a eso si encaja con lo que voy a decir), en cambio, me gustaría asimilar el proceso de pensamiento detrás de manejar archivos / almacena el modo en que lo hace emacs, y cómo puedo ser más eficiente con él.

Cualquier respuesta que me ayude a entender la forma correcta, o una forma más eficiente de administrar mis búferes o archivos sería muy apreciada.


  1. Enlazar Cx Cb a ibuffer . Esta es una función mejor para el listado de búfer con muchas características avanzadas, y su comportamiento predeterminado es reemplazar el búfer actual con el listado de búfer, y luego enterrar el listado cuando selecciona un búfer (dejándolo con el búfer recién seleccionado en lugar de el original).

    Puede simplemente usar Cx b para ingresar su selección en el mini-buffer, por supuesto; sin embargo, la finalización de la pestaña (que es necesaria para hacer de esta una opción viable, OMI) abre una nueva ventana temporalmente, momento en el que creo que también podría familiarizarse con algo con más funciones.

  2. Use a lugar de RET cuando seleccione desde dired. Esto mata el búfer dired en lugar de dejarlo atrás. Ch m en cualquier búfer le mostrará la ayuda para su modo mayor (seguido de la ayuda para los modos menores), y puede leer acerca de todos los enlaces de teclas disponibles.

  3. http://www.emacswiki.org/cgi-bin/wiki/TabBarMode ? (Edición: prefiero la respuesta de Rémi para esta, pero TabBarMode te daría el elemento de la pestaña visual si estuvieras particularmente interesado en eso).

  4. q está vinculado a una función de ''salir'' en muchos modos principales. En general, entierra el búfer en lugar de matarlo, pero ciertamente me parece bien.

Para elaborar un poco sobre el # 1, ibuffer tiene muchas características interesantes, y Mx customize-group ibuffer RET le dará una idea de cómo puede personalizarlo a su gusto.

Además, puede filtrar la lista de búferes por muchos criterios (nuevamente, use Ch m para ver su página de ayuda) y luego generar una definición de ''grupo'' a partir de los filtros actuales, y guardar sus filtros y grupos personalizados para uso futuro.

Por ejemplo:

  • / f ^/var/www/ RET : lista de búferes de filtro para mostrar solo los nombres de archivo que comienzan con /var/www/ .
  • / s Web filters RET : nombre y guarde el filtro activo establecido en su archivo init.
  • / g Web development RET : crea un grupo nombrado a partir de los filtros activos.
  • / S My groups RET : nombre y guarde las definiciones de grupo en su archivo init.
  • / r Web filters RET : invoca los filtros "filtros web".
  • / R My groups RET : invoca los grupos "Mis grupos".
  • RET en un nombre de grupo para contraer o expandirlo.
  • Ck y Cy para matar y tirar de grupos, para reorganizarlos.
  • Ch m para más información ...

De esta manera, puede tener una sola instancia de Emacs en ejecución, crear filtros y grupos para diferentes tipos de tareas y cambiar fácilmente entre ellos.


Como siempre, hay muchas maneras de ayudarte con esto; Depende un poco de las preferencias personales, lo que funciona mejor, aquí hay algunos enlaces con explicaciones:

  • ibuffer que es un menú de búfer actualizado (Cx Cb)
  • ido , que te permite tener un autocompletado más poderoso para cambiar a través de buffers. Es una especie de ''mejor iswitchb''.

Estos dos son suficientes para mí; pero también te puede interesar el ido , que te da pestañas rudimentarias (como Firefox las tiene).


Creo que la extensión número uno más útil para hojear buffers es Anything . Te permite comenzar a escribir parte de un nombre de buffer (o archivo!) Y descubrirá lo que deseas. He recuperado Cx b para cualquier cosa para buffers. Hace la vida mucho mejor.


Creo que realmente disfrutarás de Ido al tratar con varios buffers cuyos nombres no puedes recordar exactamente. Cuando escribe Cx b se muestra una lista de buffers abiertos en el orden más utilizado. A medida que escribe algunos de los caracteres en un nombre de búfer, la lista se filtra. Los caracteres que escriba no tienen que estar al principio del nombre o contiguos. El uso de las teclas de flecha Cf , Cb o izquierda / derecha recorre las opciones del búfer.

También vea Smex para Ido como funcionalidad para Mx

El cierre de ventanas se realiza con Cx 0 . La división intencional de la ventana se realiza con Cx 2 para horizontal, Cx 3 para vertical. Me encanta esta función, ya que me permite tener el código de prueba y producción visible al mismo tiempo. Cx o me lleva a la otra ventana.


También puede probar el modo Iswitchb, que proporciona la finalización automática de los nombres de búfer cuando cambia de búferes a través de Cx b .

Activar:

M-x iswitchb-mode

O agregue a su archivo .emacs:

(iswitchb-mode)

Es similar al modo Ido para el cambio de buffer pero un poco más ligero.

Además, si desea una lista más personalizable de sus buffers, use Mx bs-show como alternativa a Cx Cb . En ese tipo de búfer ? para obtener una lista de acciones que puede realizar.


Utilizo Cx right (o Cx C-right ) y Cx left (o Cx C-right ) para ir al búfer anterior y al siguiente. Ya no me importa el poco búfer que hay en Emacs, pero puedes usar k en la lista de búferes para eliminar el búfer que ya no usas.