Làm cách nào để thực hiện chặn tìm kiếm và thay thế bằng Vim?


8

Tôi có văn bản trong Vim

  1. nhấn Ctrl+Vđể đặt VIm ở chế độ khối
  2. làm nổi bật văn bản tôi muốn
  3. :cái này đưa ra lời nhắc này:'<,'>
  4. Tôi thêm vào dấu nhắc regex của tôi s/ /*/g. Điều này để lại cho tôi :'<,'>s/ /*/gvà văn bản được tô sáng
  5. Tôi nhấn enter

Thật không may, nó hoạt động trên toàn bộ dòng cho khối, không chỉ khối. Có cách nào để thực hiện tìm kiếm khối và thay thế?

Câu trả lời:


12

Khi sử dụng các lệnh ex trong chế độ khối trực quan :, chúng luôn hoạt động trên toàn bộ dòng. Có hai cách xung quanh điều này:

  1. Nguyên \%Vtử sẽ chỉ phù hợp bên trong khu vực thị giác. Thử

    :'<,'>s/\%V /*/g
    

    Xem :help %V

  2. Có các phiên bản trực quan đặc biệt của một số lệnh, v_s hoặc v_r trực tiếp. Xem:help visual-operators

Tôi không thể tìm ra cách để làm việc này
Evan Carroll

nguyên tử \% V sẽ hạn chế một mẫu sao cho nó chỉ khớp với bên trong lựa chọn trực quan. Hãy thử:'<,'>s/\%V /*/g
DaveParillo

1
Trang này có một bài viết tốt về những gì bạn đang cố gắng làm. vim.wikia.com/wiki/Search_and_Vplace_in_a_visual_selection
DaveParillo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.