2011-02-04 12 views
9

Si estoy escribiendo un comentario en gVim como esto¿Cómo impido que Vim cree comentarios automáticamente al presionar INTRO?

// this is a comment

y pulsa enter, se iniciará automáticamente la próxima línea con //, por lo que se parece a esto:

// this is a comment 
// 

Pero generalmente no quiero escribir más comentarios cuando uso este estilo de comentarios. ¿Puedo evitar que gVim lo haga de forma automática, sin perder el autocompletado del estilo de comentarios/* .. * /?

Respuesta

3

Otra respuesta de la mía ya que no desea tener esto activado para /* ... */ comentarios.

Uso:

inoremap <expr> <enter> getline('.') =~ '^\s*//' ? '<enter><esc>S' : '<enter>' 

Para o y O:

nnoremap <expr> O getline('.') =~ '^\s*//' ? 'O<esc>S' : 'O' 
nnoremap <expr> o getline('.') =~ '^\s*//' ? 'o<esc>S' : 'o' 
+0

tal vez 'imap' en lugar de' inoremap' conservará algún comportamiento de S. – Benoit

+0

¡Eso es perfecto! ¿Puedes hacer que esto funcione para golpear O en una línea de comentarios también? – Merijn

+0

@Merijn: editado para satisfacerlo. – Benoit

24

para desactivarlo, mientras que golpear ENTER en el modo de inserción, haga :set formatoptions-=r

para desactivarlo, mientras que golpear O o S en el modo normal, hacer :set formatoptions-=o

Ver :help 'formatoptions' y :help fo-table.

Como alternativa, puede presionar CTRL-U en el modo de inserción si desea eliminar caracteres desde el inicio de la línea hasta el cursor.

+0

Gracias, pero esto también desactiva el autocompletado al presionar ENTER después de hacer un comentario de estilo '/ *'. Me gustaría mantener esa opción, pero deshabilitar el comportamiento similar al presionar ENTER después de hacer un comentario de estilo '//'. es posible? – Merijn

+1

Me gusta esta solución. Tengo la siguiente línea en mi .vim.rc: 'autocmd BufRead, BufNewFile * set formatoptions- = o' De manera predeterminada, todavía puedo usar el retorno de carro para crear comentarios de varias líneas. Cuando termine de comentar, escribo 'o'. – adampasz

1

tenerlo desactivado cada vez que utilice vim, abrir su archivo .vimrc y añadir la siguiente línea:

autocmd BufNewFile,BufRead * setlocal formatoptions-=r 
0

Agregando:

set fo-=ro 

en ~/.vimrc era suficiente,

para desactivar R eturn y o/O llaves en modo normal desde autocommenting.

fo es una abreviatura de formatoptions, y -= es restar ciertas teclas conservando el resto del valor original.

El valor de fo se puede mostrar usando set fo? en el modo de comando (ex).

Número help fo para leer más sobre la opción en las páginas de manual internas de vim.

Cuestiones relacionadas