2011-01-31 11 views
6

Sto provando a cercare una parte di una linea che viene strattonata in modalità visiva.modello di ricerca vim per una riga di testo strattonata in modalità visiva

Qual è il modo più rapido per farlo in VIM? Per exmaple,

Hello, #{1} world. 

ho premere v accedere alla modalità visuale e selezionare llo, #{1} wor alla linea 1. Poi mi strattonò il testo selezionato premendo y, e poi, sto provando a cercare il testo selezionato premendo /. Ciò porta alle seguenti domande:

A: Come superare un testo strappato quando sono in modalità di ricerca?

B: Come evitare il lavoro di caratteri di escape per un pattern di ricerca?

+0

Corretto il titolo di * visiva * modalità (era * virtuale * prima) – eckes

risposta

3

ho sovrascritto the star command for the visual mode (NB:. Richiede una file da lh-vim-lib). Risponde il vostro bisogno:

  1. selezionare in Visual modalità
  2. stampa */#
  3. continuare la ricerca con n/N
+0

Grazie. Ho copiato la funzione lh # visual # selection in v_star.vim. Esso funziona magicamente! – SunLiWei

6

Quando si yank del testo (e si specifica alcun registro per tirare in), si va a registrare 0. Quindi, se si vuole cercare quel testo recuperato, premere ESC per entrare in modalità normale e poi

/CTRL-r0 

(cioè stampa /, quindi CTRL +r, quindi) per tirare il contenuto del registro 0 nel modello di ricerca.

Alcune note:

  • Per cercare altri motivi memorizzati su altri registri, è possibile digitare :reg e guardare il contenuto del registro prima di decidere quale registrare contenuti da utilizzare per la ricerca.
  • Per eseguire lo yank in un registro diverso da 0 (ad esempio 2), è possibile digitare "2y (:he v_y).
  • Per cercare direttamente il testo selezionato, è possibile utilizzare la mappatura descritta here che consente di premere semplicemente X (carattere maiuscolo X) in modalità visiva per cercare quel testo.
  • Per la ricerca in generale, this vimcast offre un'introduzione alla finestra della riga di comando molto potente con la cronologia delle ricerche (l'ho scoperto due settimane fa e lo adoro!).
+0

Grazie per la chiara spiegazione. – Kalyan

12

A:

Ctrl-r .

B:

Oltre al Ctrl-r trucco, c'è anche Ctrl-R=, che consente di digitare in un'espressione da valutare e si espande al risultato .

/ (ora il prompt sembra /)
Ctrl-R= (ora il prompt sembra =)
escape(@0, '\^$*.~[')Enter (ora il prompt sembra /llo, #{1} wor)
Inserire

Notare che @reg significa "il contenuto del registro reg" e registrare 0 è l'ultimo tentativo di cancellazione o eliminazione. Io penso che sfugge tutti i personaggi che sono speciali in Vi espressioni regolari ... in ogni caso, si sarebbe probabilmente preferisce fare una mappatura che a digitare che tutti in

+0

Se strappo l'intera riga, devo cancellare '^ M' o'^@ 'dalla fine prima di cercare. –

Problemi correlati