Simule el virtualedit y nostartofline de Vim

7

En mi .vimrctengo set virtualedit=ally set nostartofline. Me gustaría tener estas características en Emacs. Se puede hacer?

virtualeditpermite colocar el cursor donde no hay caracteres, ni siquiera espacios en blanco. Le permite desplazarse horizontalmente más allá de cualquier texto. Si se desplaza verticalmente una fila a la vez, el cursor siempre sube una fila y no cambia la columna en la que se encuentra, independientemente del contenido de la fila. Si el cursor está más allá de los caracteres en una fila e inserta un carácter, los espacios se rellenan a la izquierda del carácter insertado.

Con nostartoflinetambién configurado, el cursor no va al comienzo de la línea si uso movimientos que saltan por varias filas, por ejemplo, saltando al inicio o al final de un archivo.

Con ambas opciones configuradas, puedo colocar el cursor, posiblemente más allá de cualquier texto en el archivo, y saltar verticalmente sin que cambie la columna del cursor. Un comando para mover el cursor al "final de la línea" saltará al último carácter. Entonces, si el cursor está lejos en el medio de la nada, en $realidad moverá el cursor hacia la izquierda en lugar de hacia la derecha.

Hay otra pregunta que menciona a Vim, virtualeditpero tiene que ver con hacer selecciones rectangulares. Esta pregunta se refiere al movimiento del cursor y al comportamiento de insertar espacios para alcanzar los caracteres insertados.

Praxeolítico
fuente
FYI, este es un duplicado de stackoverflow.com/questions/7019131/… (la respuesta de Stefan a eso parece ser la opción más probable, pero no sé si alguien realmente ha implementado esa idea).
phils
¿Usas evil?
PythonNut
@PythonNut Cuando hice la pregunta, no.
Praxeolítico

Respuestas:

2

Puede usarlo quarter-plane-modedesde el quarter-planepaquete en GNU ELPA. Su objetivo es proporcionar este tipo de funcionalidad.

Pero tenga en cuenta que lo hace básicamente reutilizando el código del modo de imagen, por lo que sufre el mismo problema: agregará espacios / líneas a su búfer cuando se mueva (y luego los eliminará cuando salga del modo), por lo que / puede hacer cambios en sus archivos y memorias intermedias, incluso si todo lo que hace es moverse por ellos sin realizar modificaciones reales.

Stefan
fuente
-1

Intenta usar el modo imagen. La solución aquí hace lo que quiere, creo: /programming/13036465/emacs-mode-for-free-cursor-positioning

kotakotakota
fuente
66
Bienvenido a Stack Exchange. Este es un sitio de preguntas y respuestas , no una colección de enlaces. Por favor, no publique una respuesta que solo diga buscar en otro lado. Incluya las partes esenciales de la solución en su publicación y proporcione el enlace como referencia. Vea ¿Cómo escribo una buena respuesta? para más información.
Gilles 'SO- deja de ser malvado'