Tengo el siguiente problema: cuando uso 'Cx rt' (cadena-rectángulo), se me solicita que ingrese alguna cadena para reemplazar el rectángulo seleccionado. Digamos que escribo ";;" (para comentar el rectángulo). Esto funciona bien, pero la próxima vez que llame a la misma función y quiera reemplazarla por nada (cadena vacía), no puedo hacer eso, porque hay una cadena "predeterminada" ;; " que utilicé anteriormente, y si presiono enter, el comando usará ese ";;" cadena en lugar de una vacía. ¿Cómo lo configuro para vaciar la cadena?
Problema similar que tuve con algunas funciones de búsqueda / reemplazo. Básicamente, cuando recuerda la última cadena que utilicé y la establece en predeterminada, ¿cómo puedo "ingresar" una cadena vacía?
EDITAR:
Kill-rectangle, mencionado por YoungFrog resuelve el problema específico, pero tenía otra cosa en mente: básicamente, en cualquier función, emacs recuerda el último valor que ingresó y lo usa como "predeterminado" cuando presiona enter, debería estar capaz de borrar ese "valor predeterminado" de lo que era el valor predeterminado real antes de utilizar la función por primera vez. Aquí hay otro ejemplo:
En modo directo, si 'Mx rgrep' le pide 3 entradas:
1) Qué buscar: lo que ingrese aquí, se usará como predeterminado la próxima vez que use rgrep. Como alguien señaló, no tiene sentido buscar una cadena vacía, por lo que no es necesario borrar este valor "predeterminado".
2) A continuación se le preguntará en qué archivos buscar. Su valor predeterminado real es "todos" los archivos. Si ingreso * .txt y busco, la próxima vez que use rgrep, * .txt se usará como "predeterminado". Ahora deseo borrar este "default" * .txt y volver a su valor predeterminado original, "all", tal como quería borrar ";;" "default" en la función string-rectangle a su valor predeterminado real, string vacío.
Por supuesto, este problema específico para todos los archivos probablemente podría resolverse escribiendo *? Pero este problema general persiste con otros comandos que recuerdan el último valor utilizado.
3) Luego pedirá el directorio Base, no hay problema aquí.
Entonces, tal como lo veo, cada vez que emacs intenta ayudarme recordando mi último valor usado en algún comando (que encuentro muy útil la mayor parte del tiempo) debería haber una forma de borrar ese valor usado como si nunca hubiera usado ese comando antes.
PD: Todavía soy nuevo en emacs, y tal vez la funcionalidad que requiero no es necesaria, ya que siempre hay alguna solución.
delete-rectangle
es una opción.clear rectangle
.comment-dwim
? También ingresar cadena "vacía" para la búsqueda no tendría sentido, pero puede ingresar una cadena vacía para la parte de reemplazo. Tengo curiosidad por ver más ejemplos en los que un usuario podría necesitar ingresar una cadena vacía.string-rectangle
. Siempre que una cadena vacía tenga sentido como una posible entrada, debe haber una forma de ingresarla, a diferencia de aceptar un valor predeterminado. Mire detenidamente el documento para el comando (y su código fuente, si se siente cómodo con eso), para ver si de hecho hay una falla de diseño aquí. Si le parece que, a continuación, por favor repórtelo:M-x report-emacs-bug
.2)
, literalmenteall
, puede ingresar , que es ligeramente diferente de*
: coincide.*
también.Respuestas:
No use
C-x r t
(string-rectangle
), useC-x r k
(kill-rectangle
) en su lugar.fuente
C-j
(en lugar deRET
) podría ayudar en algunos casos, por ejemplo, ido-mode.En el caso general, lo que quieres no se puede lograr. Esto se debe a que varias utilidades y modos en Emacs almacenan su historial de finalización de lectura en diferentes variables, no en una ubicación. Puede establecer manualmente esas variables del historial en
nil
(porC-x r t
ejemplo,(setq string-rectangle-history nil)
), pero no se escala. Tampoco es fácil descubrir los nombres de las variables del historial sin leer el código.fuente