2012-09-01 11 views
5

Estoy buscando una manera conveniente de corregir comentarios donde las longitudes de línea exceden una cierta cantidad de caracteres en Vim. Estoy de acuerdo con hacerlo manualmente con el código, sobre todo porque no es tan frecuente, además de refactorizar las líneas largas es a menudo el lenguaje, o incluso el código de estilo que depende, pero con los comentarios, esto es pura penuria.Reparando líneas de comentarios demasiado largas en Vim

Lo que sucede es que a menudo veo algún problema en un comentario, retoco una o dos palabras y la línea se derrama del límite de, digamos, 80 caracteres. Muevo la última palabra a la siguiente línea y luego la siguiente línea se derrama, y ​​así sucesivamente. ¿Alguien sabe una manera de hacer esto automáticamente en Vim?

+7

Creo que se acaba de establecer textwidth = 80, luego gq para reformatear. –

+0

¡Oh, no puedo creer que sea así de simple, gracias! –

+0

@DeepYellow pero parece que solo * devuelve el carro * cuando escribe al final de la línea, ¿no es así? Si agrega texto al principio, no se mueve excediendo el texto a la siguiente línea. ¿O lo estoy haciendo mal? –

Respuesta

3

Yo recomendaría poner lo siguiente en su vimrc si esto es un problema habitual:

nnoremap <leader>f gqip 

Esto mapea el acceso directo líder de f (f está para "formato") para formatear el comentario (considerado un párrafo después configuración de algunos indicadores formatoption) con gq que formatea el comentario para que sea el ancho de la opción textwidth o tw configurada actualmente. Debe establecer el ancho de texto en su .vimrc con textwidth=80.

Formatoptions es otra cosa con la que debe jugar, específicamente en su caso agregando las banderas acq con formatoptions+=acq. Tenga cuidado de eliminar la bandera t con formatoptions-=t, ya que eso automáticamente envolverá todo su código, no solo los comentarios reconocidos. Después de hacer todo esto, debe poder presionar f y formatear dentro del comentario, independientemente de si está rodeado de líneas en blanco.

Aquí está la información relevante sobre formatoptions para que pueda tomar sus propias decisiones.

t  Auto-wrap text using textwidth 

c  Auto-wrap comments using textwidth, inserting the current comment 
    leader automatically. 

r  Automatically insert the current comment leader after hitting 
    <Enter> in Insert mode. 

o  Automatically insert the current comment leader after hitting 'o' or 
    'O' in Normal mode. 

q  Allow formatting of comments with "gq". 
    Note that formatting will not change blank lines or lines containing 
    only the comment leader. A new paragraph starts after such a line, 
    or when the comment leader changes. 

w  Trailing white space indicates a paragraph continues in the next line. 
    A line that ends in a non-white character ends a paragraph. 

a  Automatic formatting of paragraphs. Every time text is inserted or 
    deleted the paragraph will be reformatted. See |auto-format|. 
    When the 'c' flag is present this only happens for recognized 
    comments. 
Cuestiones relacionadas