¿Puede el cursor volver a la posición anterior?

24

¿Puedo hacer que mi cursor en un búfer vuelva a su última posición? (preferiblemente sin tener que marcar la posición anterior)

Por ejemplo, Ca salta al comienzo de la línea actual, ¿puedo volver a donde estaba antes?

Por ejemplo, cuando Cx Cf abre un archivo en un directorio diferente, quiero volver a la posición anterior en el nombre de la ruta.

Gracias.

Tim
fuente
¿ Qué C-x xcorre lo exchange-point-and-markhará? Emacs no almacena todos los movimientos del cursor, solo aquellos que específicamente le dijo. Agregar y reventar marcas es una forma de almacenar el historial de movimiento del cursor. emacswiki.org/emacs/MarkCommands - aquí hay una buena discusión sobre el tema.
wvxvw
1
C-x xes indefinido M-x exchange-point-and-mark: ninguna marca establecida en este búfer.
Tim
@Tim lo es C-x C-x. También debe establecer una marca primero para que eso funcione. Para establecer una marca explícitamente, lo haces C-SPC. Para volver a la marca anterior, lo haces C-u C-SPC.
Kaushal Modi
Sí, claro, lo siento, lo fue C-x C-x. C-x xEs mi propio enlace.
wvxvw
1
No estoy seguro si esto es un duplicado, pero emacs.stackexchange.com/q/3421/454 podría ser útil.
phils

Respuestas:

30

Aquí hay algunos enlaces relacionados con marcas que pueden ayudarlo:

  • C-SPC- establecer marca y activar región (vinculado a set-mark-command)
  • C-SPC C-SPC - establecer marca (activa y luego desactiva la región)
  • C-x C-x - obligado a exchange-point-and-mark
  • C-u C-SPC - pasar a la marca anterior

Consulte la documentación de Mark para comprender mejor este tema.

Kaushal Modi
fuente
99
Tenga en cuenta que los comandos que pueden mover el cursor a una distancia arbitraria (pero potencialmente grande) de donde estaba (normalmente) presionarán automáticamente la marca primero. Por lo tanto, con frecuencia puede volver a donde estaba antes con un solo C-u C-SPC.
phils
Con counsel-mark-ringello también es posible enumerar todas las marcas y navegar por ellos con los cursores, obtener una vista previa en tiempo real en la memoria intermedia.
Arialdo Martini
1

Puede usar 'Registros'.

Desde el archivo de información de emacs

13.1 Guardar posiciones en registros

C-x r <SPC> R' Record the position of point and the current buffer in register R (punto de registro ').

C-x r j R' Jump to the position and buffer saved in register R (saltar para registrarse ').

Escribir C-x r <SPC>' (punto a registro '), seguido de un carácter' R ', guarda la posición del punto y el búfer actual en el registro R. El registro retiene esta información hasta que almacene algo más en él.

El comando 'Cx rj R' cambia al búfer registrado en el registro R y mueve el punto a la posición grabada. El contenido del registro no cambia, por lo que puede saltar a la posición guardada varias veces.

Si usa C-x r j' to go to a saved position, but the buffer it was saved from has been killed,Cx, rj 'intenta crear el búfer nuevamente visitando el mismo archivo. Por supuesto, esto solo funciona para los buffers que estaban visitando archivos.

joe
fuente