Câu trả lời:
ciw
(thay đổi từ bên trong) sẽ thay đổi toàn bộ từ dưới con trỏ. So sánh với
cw
sẽ chỉ thay đổi từ từ vị trí con trỏ hiện tại . Để biết thêm thông tin xem câu hỏi / câu trả lời SO này .
Tôi thường thấy mình muốn thay thế một từ bằng một từ khác mà tôi đã kéo từ nơi khác đến. Vấn đề với các giải pháp khác là nếu bạn cố gắng thay đổi một từ, thì lần dán tiếp theo của bạn sẽ là từ mà bạn đã xóa bằngcw
.
Hãy thử như sau:
1 "This first word should overwrite the second"
yiw yank inner word (copy word under cursor, say "first").
... Move the cursor to another word (say "second").
viwp select "second", then replace it with "first".
Hy vọng đó là những gì bạn đang tìm kiếm.
once
. Nếu tôi phải thay thế vài từ đầu second' by
tiên (trong ví dụ của bạn), từ được sao chép sẽ trở thành second
sau lần thay thế đầu tiên.
ciw
c change
iw inner word
Thao tác này sẽ xóa từ dưới con trỏ (ngay cả khi con trỏ ở đâu đó ở giữa từ) và vào chế độ chèn.
Xem thêm tài liệu của Vim để tham khảo:
:help c
:help text-objects
Nếu bạn muốn thay đổi một từ bằng một từ đã được đánh dấu trước đó, có một giải pháp khác viwp
(một khi bạn đã lấy được từ đầu tiên).
ciw
xóa từ trước đó và đưa bạn vào chế độ chèn. Nhưng sau đó bạn có thể sử dụngctrl+r, 0
để chèn nội dung của thanh ghi 0 (có chứa từ được đánh dấu trước đó).
Vì thế:
yiw
[move to next word]
ciw
ctrl+r
0
Điều này hoạt động tốt hơn viwp
bởi vì sau lần sử dụng đầu tiên, bạn có thể liên tục thực hiện thay thế bằng .
. Nó cũng không chuyển sang chế độ trực quan và làm nổi bật ngắn gọn.
viwp
) có thể được thực hiện nhiều lần chỉ với một lần kéo. Cảm ơn!
viwp
- thậm chí .
không sao chép nó.
.
với điều này là tuyệt vời!
Hãy thử cw
- như trong 'thay đổi từ'.
Sử dụng http://linuxmoz.com/vi-commands-cheat-sheet/ hoặc bất kỳ bảng cheat nào khác làm tài liệu tham khảo.
/usr/bin/bash
hoặc1222.333
)? Có vẻ như phiên dịch vim/
và ở.
cuối từ và sẽ không chọn toàn bộ chuỗi.