Línea de modo 's %p
muestra el porcentaje de la visión actual de la memoria intermedia:
% p El porcentaje del texto del búfer sobre la parte superior de la ventana, o 'Superior', 'Inferior' o 'Todo'. Tenga en cuenta que la construcción de línea del modo predeterminado trunca esto a tres caracteres.
No me gusta Top / Bottom / All y me gustaría mostrar siempre el porcentaje. ¿Hay una manera de lograr esto?
Top
significa 0%.Bottom
significa 100%All
significa 100% y la parte superior también es visible. Puedes hacer casi todo lo que quieras con la línea de modo, pero en este caso sería un fastidio molestar con esto. Tenga en cuenta que puede invertir fácilmente la dirección del porcentaje: consulte%P
(en lugar de%p
).point-min
ywindow-start
, ywindow-end
, ypoint-max
, y, si se desea, el tamaño del búfer visible podría ser tenidos en cuenta - es decir, los puntos entre loswindow-start
quewindow-end
- los los cálculos se pueden hacer en un abrir y cerrar de ojos y no afectarían el rendimiento porque el punto no se mueve. Esos cálculos del tamaño del búfer podrían convertirse en porcentajes. Creo que esta es una respuesta, pero dejaré que alguien más la escriba porque hoy tengo otros proyectos en mente.Respuestas:
Aquí hay un ejemplo de cómo puedes hacer algo como esto. Sin embargo, tenga en cuenta que muestra exactamente lo que solicitó (porcentaje de texto sobre la ventana), que probablemente no sea lo que realmente desea. Por ejemplo, nunca se muestra
100%
, ya que siempre habrá algo de texto dentro de la ventana.También podría usar
window-end
, que tiene la desventaja opuesta (casi nunca muestra 0).Es posible que desee rodear estas cadenas con espacios o algún otro relleno.
fuente
La incorporada en el código de
%p
miradas sólo enwindow-start
ypoint-max
y calcula el porcentaje de esa manera. Puede encontrar esto usandoC-h f format-mode-line
y luego siguiendo el enlace a las fuentes de Emacs C (suponiendo que las tenga en alguna parte).Entonces, puede hacer lo mismo usando un
:eval
formulario enmode-line-format
.fuente