Estoy un poco perplejo acerca de algunos valores predeterminados en Vim. En particular, para gq{motion}
, se dice que
[...]
If the 'textwidth' option is 0, the formatted line
length is the screen width (with a maximum width of
79).
Pensé que debería haber tenido más sentido si hubiera establecido el ancho máximo en su 80
lugar.
¿Puede alguien aclararme sobre esto? Supongo que me estoy perdiendo algo.
formatting
Atcold
fuente
fuente
80
para empezar es un "estándar" bastante arbitrario, así que ... ¿por qué no79
? Ahora, las líneas de ajuste79
en un80
terminal de ancho de columnas dan un poco más de espacio a la derecha y pueden mejorar la legibilidad. github.com/vim/vim/blob/…80
terminal de columnas, la última columna estaba reservada para el símbolo de ajuste? Aún así, si tiene números de línea, entonces definitivamente tomarán más de una columna. Entonces, todavía estoy perplejo. Además, desde el código que vinculó, ¿es79
el valor máximo que se puede usar? Quizás no entendí lo que leí.textwidth
y terminar.tw=79
en lugar detw=80
porque mostrar una línea de 80 caracteres de longitud en un terminal de 80 columnas imprime una nueva línea adicional.Respuestas:
No tengo ninguna evidencia de que esta sea la razón por la que se eligió originalmente 79, pero una buena razón para dejarlo en ese valor es porque si se usa
'list'
con un valor incluidoeol
en,'listchars'
entonces la visualización del listchar causará un carácter de 80 caracteres. longitud de línea para ajustarse a la siguiente línea en una terminal de 80 caracteres de ancho.Si la línea tiene solo 79 caracteres, la columna 80 está libre para que el final de la línea se
listchar
asiente.fuente
'list'
? ¿Qué se supone que haga?:help 'list'
o simplemente intenta correr:set list
para verlo en acción.:set list
no hace mucho Apuesto a que no tengo eleol
en ellistchars
. No estoy muy seguro de que esta sea la razón detrás de los79
personajes. Creo que @ sato-katsura tiene la mejor respuesta en el comentario.eol
está'listchars'
activado por defecto, pero por supuesto es posible que algo en su configuración lo haya eliminado. En mi respuesta, declaro específicamente que no tengo ninguna razón para creer que esta fue la razón histórica por la que se eligió originalmente 79. Solo estoy dando otra razón por la que sigue siendo un buen valor para usar, ahora.Es importante darse cuenta de que este "defecto" sólo se aplica a las
gq
ygw
los comandos y de auto-formato como se describe en esa sección. El valor predeterminadotextwidth
es 0. Además,:right
y:center
predeterminado es 80, no 79.En cuanto a por qué se eligió el 79, no puede ser un resabio directo desde vi ya
gq
,gw
y de auto-formato no existen en vi. Esto es principalmente especulación, pero creo que el 79 predeterminado para el formateo automático se eligió por coherencia con el autoenvoltura existente de vi. Que esto se aplicagq
ygw
es un efecto secundario; uno podría esperar que 80 hubieran sido elegidos de otra manera.En vi (y en vim if
textwidth=0
) el texto comienza a ajustarse automáticamente en el ancho de la ventana menoswrapmargin
. Sin embargo, siwrapmargin=0
no se realizará el autoenvolvimiento. Esto significa que si estaba usando un ADM-3A con un límite de 80 caractereswrapmargin=1
, el ancho máximo con autoenvoltura es 79. Una ventaja de este comportamiento es que hay un lugar para que el cursor viva mientras espera ver qué el siguiente personaje será antes de decidir dónde envolver. Por supuesto, vi y vim podrían colocar el cursor en la siguiente línea (como se observa al escribir una palabra muy larga), pero dejar una columna adicional es un poco mejor.fuente