Cách dễ nhất để xóa 2 khoảng trắng đầu tiên cho mỗi dòng bằng VIM là gì? Về cơ bản, nó lặp lại "2x" cho mỗi dòng.
Làm rõ: ở đây giả định là 2 ký tự đầu tiên là khoảng trắng. Vì vậy, câu hỏi là về việc thực hiện thụt lề cho nhiều dòng với nhau.
Cách dễ nhất để xóa 2 khoảng trắng đầu tiên cho mỗi dòng bằng VIM là gì? Về cơ bản, nó lặp lại "2x" cho mỗi dòng.
Làm rõ: ở đây giả định là 2 ký tự đầu tiên là khoảng trắng. Vì vậy, câu hỏi là về việc thực hiện thụt lề cho nhiều dòng với nhau.
Câu trả lời:
Một số tùy chọn khác. Bạn có thể quyết định đâu là "cách dễ nhất".
Xóa 2 ký tự đầu tiên của mỗi dòng:
:%normal 2x
Loại bỏ 2 ký tự đầu tiên của mỗi dòng, chỉ khi chúng là khoảng trắng:
:%s/^ /
Lưu ý rằng dấu gạch chéo cuối cùng là tùy chọn và chỉ ở đây để bạn có thể nhìn thấy hai khoảng trắng. Không có dấu gạch chéo, nó chỉ có 7 ký tự, bao gồm cả :.
Di chuyển thụt lề sang trái cho mọi dòng:
:%normal <<
%dấu chỉ có nghĩa là "thực hiện lệnh này cho mỗi dòng trong tài liệu, không chỉ cho dòng hiện tại". Tôi nghĩ. Không thể tìm thấy nhiều tài liệu về nó.
Ctrl-V(hoặc Ctrl-Qnếu bạn sử dụng Ctrl-Vđể dán);dđể xóa vùng đã chọn.EscBạn cũng có thể sử dụng tìm kiếm và thay thế (trong trình chỉnh sửa cũ, được truy cập thông qua :ký tự):
Xóa hai ký tự đầu tiên bất kể điều gì:
%s/^.\{2}//
Xóa hai ký tự khoảng trắng đầu tiên (phải ở đầu và cả hai phải là khoảng trắng ... bất kỳ dòng nào không phù hợp với tiêu chí đó sẽ bị bỏ qua):
%s/^\s\{2}//
Giả sử a shiftwidth=2, sau đó sử dụng shift với phạm vi%
:%<
Hai dấu cách, hay hai ký tự? ( 2xsau này không.)
:[range]s/^ //
xóa hai ô trống ở đầu mỗi dòng; sử dụng %(tương đương với 1,$) như [range]làm đối với điều này cho toàn bộ tệp.
:[range]s/^..//
xóa hai ký tự đầu tiên của mỗi dòng, bất kể chúng là gì. (Lưu ý rằng nó xóa hai ký tự , không nhất thiết phải là hai cột ; một ký tự tab được tính là một ký tự).
Nếu những gì bạn thực sự đang làm là thay đổi thụt lề, bạn có thể sử dụng <lệnh để giảm nó hoặc >lệnh để tăng nó. Đặt shiftwidthđể kiểm soát mức độ dịch chuyển của nó, ví dụ:
:set shiftwidth=2
Tôi sẽ thử một trong hai cách tiếp cận:
Ctrl+V(thường được ánh xạ tới Ctrl+Q).q1(hoặc bất kỳ số / chữ cái nào khác mà bạn muốn biểu thị thanh ghi ghi), sau đó phát lại macro đó nhiều lần bằng cách sử dụng @1(để sử dụng ví dụ trước của tôi. Tốt hơn nữa, hãy sử dụng một số đứng trước để cho biết nó có bao nhiêu số lần chạy - 10@1ví dụ: để chạy macro đó 10 lần. Tuy nhiên, nó phụ thuộc vào những gì bạn đã ghi lại - hãy đảm bảo tua lại con trỏ 0hoặc thả một dòng j, nếu điều đó có liên quan.Tôi cũng muốn nói thêm: tìm hiểu cách định cấu hình thụt lề cho vim. Sau đó, một đơn giản gg=Gsẽ làm thủ thuật.