Thực hiện lệnh bình thường trên phạm vi


7

Đối với một tập tin trông như thế này:

   2  AD,42.546245,1.601554,Andorra,376
   3  AE,23.424076,53.847818,United Arab Emirates,971
   4  AF,33.93911,67.709953,Afghanistan,93
   5  AG,17.060816,-61.796428,Antigua and Barbuda,1

Tôi đang cố gắng loại bỏ các khoảng trắng và số hàng đầu trong 10 dòng đầu tiên, vì vậy tôi kết thúc bằng

AD,42.546245,1.601554,Andorra,376
AE,23.424076,53.847818,United Arab Emirates,971
AF,33.93911,67.709953,Afghanistan,93
AG,17.060816,-61.796428,Antigua and Barbuda,1

Tại sao "loại bỏ hai từ" :d2whoạt động cho một dòng, nhưng không phải cho một phạm vi :1,10d2w?

GHI CHÚ:

Vấn đề được giải quyết do định dạng cố định, sử dụng :1,10s/.\{8\}//, vì vậy đây là cách hiểu về cách sử dụng phạm vi với:dNw


2
Ngoài ra: :1,10s/\v^(\s|\d)*/(xóa bất kỳ số khoảng trắng hoặc chữ số nào khi bắt đầu 10 dòng đầu tiên)
VanLaser

Câu trả lời:


16

Bạn có thể làm điều này với lệnh bình thường:

:1,10normal d2w

Điều này là do dtoán tử không chấp nhận một phạm vi, mà chỉ là một chuyển động:

:h d

["x]d{motion}           Delete text that {motion} moves over [into register x].

Ngoài ra, bạn có thể chọn văn bản của mình ở chế độ trực quan và bạn có thể làm:

:'<,'>normal d2w

xin lỗi vì đã hỏi rõ ràng: :normalsẽ cho phép thực thi lệnh như thể tôi sẽ nhập nó khi điều hướng bằng con trỏ?
Fiximan

1
:normalcho phép bạn thực thi một lệnh khi nó được nhập trong chế độ bình thường (khi bạn điều hướng con trỏ bằng hjkl). Xem::h :normal
nobe4

1
Các dấu hai chấm trước bình thường sau phạm vi là dư thừa.
FDinoff
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.