2009-01-22 13 views
14

Estoy volviendo a estar en contacto con mi vim interno (g) debido a una matriz (placa) MacBook no programada de una fusión (mi caja de Linux de respaldo de emergencia no ejecutará TextMate). En total, estoy contento con la eficacia y el poder de vim, pero estoy avergonzado de lo difícil que es obtener el tipo de envoltura de palabras que hasta las estúpidas áreas de HTML logran sin esfuerzo aparente.¿Cómo se obtiene vim para mostrar líneas envueltas sin insertar líneas nuevas?

considerar el texto

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis nullam.

Por defecto, con una anchura de 80 caracteres muestra vim esto como

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis nu 
llam.

Esta envoltura no se preocupa por espacios en blanco, por lo que a veces simplemente rebanadas palabras en pedazos (nullam en este caso). Por supuesto, se puede encender el ajuste de línea, y obtener esto:

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis 
nullam.

El problema es que Vim inserta una nueva línea en el salto de línea, lo que me hago mayor énfasis no quieren. En otras palabras, quiero que el texto se muestre exactamente como vim lo muestra con el ajuste de palabras activado, pero sin insertar una nueva línea. (De esta manera se puede pegar en HTML textareas y programas de correo electrónico, entre otros lugares.)

Las búsquedas web no han dado resultado, a pesar del esfuerzo diligente; Espero que StackOverflow pueda tener éxito donde mi Google-fu falló.

+0

no sé que esto es posible, porque vim tiene que alinear las cosas de alguna manera ... Incluso si no pone la nueva línea en en sí mismo, es muy probable que la aplicación de tu consola lo haga. Gvim puede ... No sé. Si usas el modo gráfico de vim, de nuevo podría ser posible, no lo sé. –

Respuesta

17

Para activar el ajuste de texto:

:set wrap 
:set linebreak 

Para copiar & pegar el texto original y no cualquier obra de relleno para gvim. Para vim en un xterm, copia el relleno de espacio en EOL (aunque no en la línea nueva). pensé que esto debería funcionar pero no es así:

:set mouse=a 
3

Si vim es la adición de caracteres de nueva línea (no sólo envolver el texto), entonces probablemente han textwidth encendido ...

:set textwidth=0 
7

Encontré this muy útil, funciona como un encanto.

Básicamente me acaba de agregar estas líneas en mi vimrc

" not to break on words 
set formatoptions=1 
set linebreak 

" fixing up moving line by line in the paragraph 
nnoremap j gj 
nnoremap k gk 
vnoremap j gj 
vnoremap k gk 
+1

'set formatoptions = 1' o es' set formatoptions = l'? – Dilawar

Cuestiones relacionadas