2011-01-31 14 views
6

Próbuję wyszukać część linii, która jest szarpana w trybie wizualnym.wzór wyszukiwania vim dla fragmentu linii tekstowej wyszarpany w trybie wizualnym

Jaki jest najszybszy sposób to zrobić w VIM? Dla exmaple,

Hello, #{1} world. 

pędzę v wejść w tryb wizualny i wybierz llo, #{1} wor na linii 1. Potem pociągnął zaznaczony tekst wciskając y, a następnie staram się szukać zaznaczonego tekstu przez naciśnięcie klawisza /. To prowadzi do następujących pytań:

A: Jak przeszedłem szarpnięty tekst, gdy jestem w trybie wyszukiwania?

B: Jak uniknąć działania znaków ucieczkowych w poszukiwaniu wzorca wyszukiwania?

+0

Poprawiono tytuł do * wizualny * tryb (był * wirtualny * przed) – eckes

Odpowiedz

3

Mam nadpisane the star command for the visual mode (NB:. Wymaga jednego plik z lh-vim-lib). To odpowiedzi na swoje potrzeby:

  1. wybierz w Visual tryb
  2. naciśnij */#
  3. kontynuować wyszukiwanie z n/N
+0

Dzięki. Skopiowałem funkcję lh # visual # selection do v_star.vim. To działa jak urok! – SunLiWei

6

Kiedy szarpać jakiś tekst (a nie określać rejestr szarpać go w), to idzie się zarejestrować 0. Tak więc, jeśli chcesz, aby szukać tego yanked tekstu, naciśnij ESC aby dostać się do trybu normalnego, a następnie

/CTRL-r0 

(tj naciśnij /, następnie CTRL + r, następnie) wyciągnąć zawartość rejestru 0 do wzorca wyszukiwania.

Kilka uwag:

  • Aby szukać innych wzorców przechowywanych w innych rejestrach, można wpisać :reg i oglądać zawartość rejestru przed podjęciem decyzji, który zarejestrować zawartość używać do wyszukiwania.
  • Aby wkleić inny rejestr niż 0 (na przykład 2), można wpisać "2y (:he v_y).
  • Aby wyszukać zaznaczony tekst bezpośrednio, można użyć odwzorowania opisanego pod adresem here, które umożliwia proste naciśnięcie X (wielka litera X) w trybie wizualnym w celu wyszukania tego tekstu.
  • Dla wyszukiwania w ogólności, this vimcast daje wprowadzenie do bardzo potężnego okna wiersza poleceń z historią wyszukiwań (odkrył go dwa tygodnie temu i absolutnie go kocham!).
+0

Dzięki za jasne wyjaśnienie. – Kalyan

12

A:

Ctrl-R .

B:

Oprócz Ctrl-R podstęp, istnieje również Ctrl-R=, który pozwala wpisać w wyrażeniu być oceniane i rozszerza się na wynik .

/ (obecnie szybka wygląda /)
Ctrl-R= (obecnie szybka wygląda =)
escape(@0, '\^$*.~[')Enter (obecnie szybka wygląda /llo, #{1} wor)
Wpisz

Należy pamiętać, że @reg oznacza "zawartość rejestru reg", a rejestr 0 jest ostatnim szarpnięciem lub usunięciem. myślę że ucieka wszystkie znaki, które są specjalne w wyrażeniach regularnych vi ... w każdym razie, prawdopodobnie wolą dokonać mapowania niż wpisywać że wszystko w

+0

Jeśli szarpię całą linię, muszę usunąć '^ M' lub'^@ 'od końca przed wyszukiwaniem. –

Powiązane problemy