2010-02-02 13 views

Respuesta

3

inspirada en los comentarios ya dados (la respuesta Charles no funciona como yo quiero), he añadido una nueva función para el mapa del modo isearch/isearch-expresión regular que pone únicamente la cadena coincidente en el histórico de recortes (mientras que la propuesta de Charles mata desde el punto actual hasta el final de emparejar la secuencia):

(defun hack-isearch-kill() 
    "Push current matching string into kill ring." 
    (interactive) 
    (kill-new (buffer-substring (point) isearch-other-end)) 
    (isearch-done)) 

(define-key isearch-mode-map (kbd "M-w") 'hack-isearch-kill) 

lo bueno de la/enfoque isearch isearch-expresión regular (que se puede activar con C-s y C-M-s respectivamente) es que puede ver crecer su cadena de búsqueda y puede copiar con M-w tan pronto como esté satisfecho (y regrese a donde ha estado antes con C-u C-Space).

Esto funciona para mí con Emacs 23.1. No sé si funcionará en todas las situaciones. De todos modos espero que les sea útil :)

ACTUALIZACIÓN: pasar por el EmacsWiki Tropecé con KillISearchMatch lo que sugiere más o menos las mismas (más algunos consejos más ...).

Saludos, Daniel

+0

Gracias, es justo lo que quería, pero no pude hacer ya que apestaba en LISP. –

1

No estoy seguro de si hay una función de este tipo ya, pero lo que puedo hacerlo con una macro de teclado:

  1. comenzar a grabar un macro kbd: C-x (
  2. Busque su expresión regular con search-forward-regexp
  3. Mueva al principio de su coincidencia (el texto que desea eliminar) con los diversos comandos de navegación de emacs, por ejemplo search o backward-word etc.
  4. Marca: C-spc
  5. Mover al final de su partido
  6. Mata al texto: C-w

Luego, puede nombrar la macro de teclado con M-x name-last-kbd-macro para que pueda ejecutar el macro con un nombre en lugar de C-x e.

Si desea guardar la macro para sesiones futuras, puede abrir su .emacs e insertar la macro en el búfer con M-x insert-kbd-macro. Después de lo que puede vincular una clave a la macro tal como lo hace con las teclas de las funciones normales de emacs, p. (global-set-key "\C-c m" 'funky-macro-macro).

More about emacs keyboard macros

0

Isearch+ hace esto ya. Opcionalmente establece la región alrededor del objetivo de búsqueda. Puede usar C-SPC en cualquier momento durante Isearch para alternar esto.

Cuestiones relacionadas