Vim - chọn / yank / xóa nội dung giữa các dấu ngoặc bao gồm dấu ngoặc


31

Trong vim, có thể chọn nội dung giữa các dấu ngoặc bao gồm các dấu ngoặc tương tự như

yi{ yi(

Nhưng tôi muốn bao gồm các dấu ngoặc.

Câu trả lời:


0

Bạn có thể di chuyển con trỏ qua một dấu ngoặc và thực hiện vf{hoặc vf(đưa bạn vào chế độ trực quan và sau đó chọn mọi thứ cho đến khi (và bao gồm) dấu ngoặc.


5
Trên thực tế, điều này cuối cùng sẽ chỉ chọn niềng răng mở. Nếu bạn đang ở trên đỉnh của niềng răng mở đầu, f{sẽ đưa bạn đến niềng răng mở gần nhất, mà bạn đã sử dụng. Những gì bạn có thể muốn là v%sẽ đưa bạn đến niềng răng phù hợp và có thể được sử dụng ở hai bên.
Michael Mior

Đây không phải là câu trả lời chính xác. Xem câu trả lời của @ garyjohn dưới đây.
Michael Sandman

75

Vâng. Sử dụng athay vì i, như

ya{
ya(

Xem

:help a{
:help a(

và nói chung hơn,

:help text-objects
:help 04.8

1
Đây phải là câu trả lời được chấp nhận!
Tiếtuy52

3

f{v%hay f(v%làm những gì bạn muốn? Nó di chuyển con trỏ của bạn sang {hoặc (tiếp theo, đưa bạn vào chế độ trực quan và sau đó di chuyển con trỏ của bạn đến lần đóng tương ứng} hoặc). Nếu bạn đã vượt quá phạm vi bạn muốn chọn, bạn có thể sử dụng vốn F. Cũng hoạt động tốt để nhảy đến đóng} hoặc) trước tiên - f}v%.

Khi bạn có những gì bạn muốn chọn, bạn có thể y, d, x, vv nó. Các %lệnh làm việc nhiều đường, quá, vì vậy bạn có thể sử dụng kỹ thuật này vào khối lượng lớn các mã nếu bạn muốn (mặc dù fFkhông, vì vậy bạn phải bắt đầu ở hai dòng đầu tiên hoặc cuối cùng).

EDIT: Câu trả lời tốt hơn, dường như chính xác là những gì bạn đang tìm kiếm:

ya(

Việc thay thế ilệnh ban đầu của bạn bằng achính xác điều tương tự, ngoại trừ việc nó bao gồm ký tự '('. Đây là "yanking a block", trong khi đó yi(là "yanking i iner block".

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.