Tôi nhận được một hành vi bất thường khi tôi cố xóa từ cuối dòng bằng cách sử dụng lựa chọn khối trong vim.xóa từ cuối dòng sử dụng khối chọn trong vim
Vì vậy, chúng ta hãy nói rằng tôi có một văn bản như vậy:
delete this char:x
and this:x
also this:x
and then this:x
lastly this:x
Nếu tôi muốn thêm y
để mỗi dòng tôi có thể:
- đầu khối lựa chọn với Cv
- chọn tất cả các dòng có
4j
- chuyển đến cuối dòng với
$
- bắt đầu phụ thêm với
A
- loại văn bản mong muốn
y
để có được:
delete this char:xy
and this:xy
also this:xy
and then this:xy
lastly this:xy
nhưng nếu tôi cố gắng xóa x
trong bước cuối cùng thay vì phụ tôi sẽ mong đợi nhận được:
delete this char:
and this:
also this:
and then this:
lastly this:
mặc dù tôi kết thúc với:
delete this char:
and this:x:
also this:x:
and then this:x:
lastly this:x:
Theo như tôi hiểu nó gắn thêm các char cuối cùng trong dòng đầu tiên cho tất cả các dòng khác (trong trường hợp này :
) chứ không phải xóa những cái còn thiếu (trong trường hợp này x
) .
Tôi có thể làm điều này với macro hoặc thay thế nhưng tôi không hoàn toàn hiểu lý do đằng sau hành vi đó. Có cách nào tôi có thể làm điều này với lựa chọn khối?
Tôi không nhận được hành vi mà bạn mô tả. 'X' đầu tiên bị xóa nhưng không có gì được thêm vào. – romainl
@romainl bạn có sử dụng cùng ví dụ từ câu hỏi không? nếu bạn đang sử dụng một cái gì đó như 'xóa char này: x' và xóa' x', nó thêm dấu cách có thể dễ dàng bỏ lỡ .. – none
Không, tôi có thể thấy dấu cách tốt và không có gì. Trong ngữ cảnh này, ' {movement} $ A', việc xóa ký tự không được thực hiện trên mọi dòng trong vùng chọn. Chỉ thêm ký tự hoạt động. Đó là một chút thiển cận, nếu bạn muốn ý kiến của tôi, nhưng đó là cách nó được thiết kế. Việc xóa 'x' ở cuối một loạt các dòng thường được thực hiện với': '<,'> norm $ x' hoặc ':' <,'> s/x $ //'. –
romainl