P: ¿cómo puedo obtener un indicador visual que distinga entre el final del búfer y la parte inferior de la ventana?
Caso de uso: tengo un búfer con algunas líneas en blanco en la parte inferior. Sin embargo, la parte inferior de la ventana más allá de las líneas en blanco también está en blanco. Me gustaría poder decir, visualmente, dónde termina el búfer / se detienen las líneas en blanco.
Vim hace esto con caracteres que no son de texto en la parte inferior de una ventana (es decir, las tildes) para indicar que no hay nada en el búfer (como líneas en blanco) en ese espacio, como en la siguiente captura de pantalla:
¿Cómo se obtendría el análogo de esta función Vim en Emacs?
EDITAR: la respuesta de @ glucas parece correcta, pero me encantaría ver una respuesta que no use el margen, ya que configuré la mía en cero para ahorrar espacio en la pantalla de una pequeña computadora portátil.
empty-line
componente delfringe-indicator-list
para indicar dónde comienza el final del búfer? Por ejemplo,(setq fringe-indicator-alist '((empty-line . empty-line)))
agregue componentes adicionales a la lista según lo desee. Este método, sin embargo, requiere una franja para ser visible. Ver también: reddit.com/r/emacs/comments/2kdztw/…Respuestas:
Puede personalizar
indicate-empty-lines
para habilitar un marcador marginal en las líneas después del final del archivo, o llamartoggle-indicate-empty-lines
para activarlo y desactivarlo de forma interactiva.Hay un paquete en MELPA que reemplaza el indicador de franja predeterminado con un ~ para una apariencia más cercana a lo que obtienes con vi. Ver
vi-tilde-fringe
.Actualizado
Un enfoque alternativo sería utilizar el modo de espacios en blanco para hacer visibles los saltos de línea. Intenta
whitespace-newline-mode
, posiblemente retocando lawhitespace-newline
cara. Visualmente, este enfoque está más ocupado que lo que hace vi ya que está marcando todas las líneas en el búfer, excepto las líneas vacías después del contenido, pero logra un resultado similar. (También es posible configurar el modo de espacio en blanco o un modo derivado personalizado para resaltar solo las líneas vacías al final del contenido del búfer).fuente
He escrito un paquete, char-font-lock , que (entre otros) resalta las líneas vacías al final de un búfer.
También resalta la última línea (en caso de que no termine con una nueva línea), el espacio al final de las líneas, los caracteres de tabulación y los caracteres que no son ascii. Puede elegir cuál de las cosas le gustaría resaltar.
Por ejemplo:
fuente
Alguien escribió un paquete que gestiona una superposición que abarca el área después del final del archivo:
https://github.com/jmickelin/vim-empty-lines-mode
Sin embargo, tenga en cuenta que, si bien esta solución se comporta más correctamente y funciona también en terminales, necesariamente será menos eficiente y tendrá más errores que la indicadora de franjas.
fuente