2010-09-20 14 views
12

He usado la versión de Windows de Vim en el pasado, pero soy nuevo en MacVim. En MacVim, cuando cambio al modo visual, uso el movimiento $ (resaltando desde mi cursor hasta el final de la línea) y yank, cuando pego el contenido copiado, incluye el retorno de carro, topando todo después del pegar apunta a una nueva línea.

Este comportamiento me parecía desconocido (por no mencionar molesto). ¿Hay alguna manera de cambiar este comportamiento para que coincida con la versión de Windows, donde la nueva línea no está incluida en el tirón?

Respuesta

3

Descubrí que la opción que causaba el comportamiento que estoy acostumbrado a ver es behave mswin, que creo que está activada por defecto en GVim para Windows.

18

¿Solo está copiando el texto hasta el final de la línea? y$ simplemente copiará desde su cursor actual hasta el final de la línea, sin la nueva línea.

+0

Eso funcionaría, no había pensado en eso, ¡gracias! Tengo curiosidad, sin embargo, por qué las diferentes versiones de Vim se comportan de manera diferente. –

+0

Al no haber hecho mucho con vim en Windows, no podría decirte :) – zigdon

+0

En realidad, en mi instalación de Vim7.2 en WinXP, 'vy $' también tira de la nueva línea, por lo que el comportamiento de MacVim es correcto. –

4

Puede probar Du. De hecho, hace exactamente lo que quiere y es más amigable si tiene la intención de usarlo en la edición en bruto.

+0

¡Muy astuto! ¡Me gusta! – Juto

14

Hay un movimiento poco conocido que satisface esta necesidad independientemente de la configuración de los comportamientos de Windows y, en general, puede ser útil en otros contextos: g_. Quoth :help g_:

g_   To the last non-blank character of the line and 
      [count - 1] lines downward |inclusive|. {not in Vi} 

Personalmente no lo hacen tienden a utilizar esto para un tirón porque evito la pulsación modo visual extra y utilizar y$ (que no sea copia el salto de línea, como se sugirió @zigdon). O mejor aún, nnoremap Y y$ para que Y funcione de manera consistente con C y D.

Sin embargo, a menudo utilizo g_ con surround.vim, donde las asignaciones para agregar bordes son a menudo más difíciles de recordar para mí que usar una selección visual. Si desea seleccionar hasta el final de la línea y rodear con parens, por ejemplo, sería ys$), lo cual no está mal, pero tiendo a olvidar el mnemónico ys. v$S) parece natural, pero tiene el mismo problema que su pregunta: incluye la línea nueva, y eso es un desastre total al agregar bordes. vg_S) es exactamente lo que generalmente desea.

Una cosa buena de hacerlo visualmente es que se puede corregir Selección mediados: Todavía tiende a afectar a v$ por la memoria muscular mucho, pero si ves que has PESCASONDAS antes de actuar, aún puede golpear y g_ arregla la selección

Cuestiones relacionadas