2011-11-30 15 views
13

No puedo entender lo que está pasando aquí. He hecho una búsqueda y reemplazo a través de un directorio entero, usando: RETEmacs buscar y reemplazar expresiones regulares en varios archivos (find-name-dired + Q), ¿no guarda mis búferes?

  1. Mx find-nombre-dired
  2. Seleccione la raíz de mi proyecto
  3. introduzca * .rb como los nombres de archivo para que coincida con
  4. selección de "t" para seleccionar todos los archivos encontrados
  5. Prensa "Q" (desplazamiento Q) para iniciar la búsqueda/reemplazo
  6. Enter "transacción", como la consulta, a continuación, introduzca "factura" como el reemplazo

Ahora he hecho un ciclo a través de todos los buffers que abre para mí, presione selectivamente "y" o "n" dependiendo de la sustitución. Cuando terminó, simplemente me dejó en el último buffer que había cambiado.

Por lo tanto, al presionar C-z al fondo de la ventana de emacs y comprobar qué ha cambiado, se muestra que ninguno de los archivos está guardado, lo que esperaba.

Entonces hice M-x save-some-buffers RET, lo que me dice que no hay archivos para guardar. Así que empiezo a rotar a través de mis buffers con C-xb y verifico que, sí, de hecho, los buffers tienen tienen cambios en comparación con lo que está en el disco.

Así que repito el proceso, esta vez con un proceso de emacs completamente nuevo (sin búferes abiertos cuando comienzo el proceso). Al final tengo un montón de búferes abiertos, con cambios (que puedo ver), una vez más, emacs dice que no hay nada que guardar.

Así que traté de usar C-x C-b para abrir IBuffer. Marcó todos los archivos que quería guardar, luego presioné "S" para guardarlos, en ese punto se muestra "Operación finalizada; guardados 27 almacenamientos intermedios". Impresionante ... excepto que git sigue diciéndome que emacs de hecho no ha salvado nada.

¿Qué estoy haciendo mal? Quiero reemplazar "transacción" por "factura" en todo mi proyecto, aunque debo hacerlo de manera interactiva, ya que hay algunos lugares donde no se debe hacer ese reemplazo.

Emacs 23.

+0

Incluso si voy a un búfer individual de estos 27 búferes modificados, luego presiono C-x C-s, dice que no hay nada que guardar, pero de hecho lo hay. Si presiono la barra espaciadora, borro nuevamente el carácter espacio y cit C-x C-s, * ahora * guarda (git muestra los cambios). WTF? – d11wtq

+0

¿Hay alguna manera de decirle a emacs que considere a la fuerza que todos los buffers están sucios? Si cree que el buffer está sucio, lo guardará felizmente, pero tengo que escribir en el teclado en cada buffer para que eso ocurra. – d11wtq

+2

C-u M- ~ marcará el búfer en uso como modificado. – Teddy

Respuesta

5

he reproed el comportamiento que usted describe. Claro que huele como un error para mí. Por favor repórtalo en [email protected]

Los colaboradores de Emacs son muy receptivos.

P.S. Me encantan los detalles que pones en tu pregunta.

+0

Informó, y comprobó emacs de git, construyó el HEAD actual y parece estar funcionando bien ahora. Debe haber sido un problema en 23.3.1 estable, supongo. – d11wtq

Cuestiones relacionadas