Nếu bạn không ngại nhấn một kết hợp khác hơn cw
, thì tôi tin rằng bạn có thể có được những gì bạn muốn một cách dễ dàng, bằng cách xác định một phím tắt. Những gì bạn có thể làm là đặt sau đây
nmap <leader>a "1yiw:let @/=@1^Mciw
trong .vimrc
tập tin của bạn Lưu ý rằng đó ^M
là một phím chụp trở lại, và không phải là các ký tự ^
và M
. Bạn nhận được nó bằng cách nhấn Ctrl+ Vtrong chế độ chèn theo sau Enter. Bây giờ, với định nghĩa này, nhấn <leader>a
sẽ thực hiện tương tự cw
, nhưng bây giờ từ (trước khi thay đổi) sẽ nằm trong "đăng ký tìm kiếm cuối cùng" của bạn (nghĩa là /
đăng ký), vì vậy hãy nhấn nsau khi bạn đã thực hiện thay đổi và trả lại đến chế độ bình thường sẽ đưa bạn đến lần xuất hiện tiếp theo. Tương tự như vậy, nhấn Nsẽ đưa bạn đến lần xuất hiện trước.
Phím tắt Tất nhiên bạn có thể chọn một phím tắt khác <leader>a
, nhưng tôi chỉ thấy rằng đây là một phím tắt rất dễ tiếp cận. Cá nhân tôi đã cài đặt <leader>
để ,
tôi chỉ cần nhấn ,theo sau a, nhưng điều này là do tôi không sử dụng bàn phím kiểu Mỹ, do đó tôi \bị ẩn đi phần nào (tôi tin \là mặc định <leader>
).
Giải thích Ý tưởng thực sự đơn giản. Yank từ dưới con trỏ đến thanh ghi tìm kiếm /
và sau đó làm cw
. Vì vậy, đó nmap <leader>a "/yciw
là những gì tôi đã nhắm đến, nhưng thật không may, tôi không nghĩ rằng bạn có thể kéo thanh ghi tìm kiếm, vì vậy cách giải quyết là kéo từ dưới con trỏ đến thanh 1
ghi, sau đó đặt thanh /
ghi bằng với điều đó, rồi làm cw
. Vì vậy, "1yiw
là phần mà yanks từ bên trong dưới con trỏ đến thanh ghi 1
. Nếu bạn không biết về các từ bên trong, bạn có thể kiểm tra :help iw
. Sau đó, :let @/=@1
tiếp theo là một Enterbản ghi các nội dung của thanh 1
ghi vào /
. Tại thời điểm này nvàNhoạt động như lần xuất hiện tiếp theo và trước đó của từ bên dưới con trỏ, và sau đó a ciw
được thực hiện sao cho từ bên dưới con trỏ bị xóa và Vim được đưa vào chế độ chèn.
từ so với từ bên trong Tôi chỉ nhận ra rằng tôi giả định rằng bạn muốn toàn bộ từ bên dưới con trỏ, và không chỉ từ quan điểm của người nguyền rủa. Đây là lý do tại sao tôi sử dụng iw
thay vì w
ở khắp mọi nơi. Nếu đây không phải là trường hợp, thì bạn nên sử dụng
nmap <leader>a "1yw:let @/=@1^Mcw
thay thế. Nếu con trỏ nằm trên chữ cái đầu tiên của từ, không có sự khác biệt.
từ chối trách nhiệm giải pháp này có thể sẽ không hoạt động tốt nếu bạn cố gắng sử dụng nó trên một cái gì đó có chứa những thứ khác với chữ cái, ví dụ bằng cách đứng con trỏ trên \
hoặc bằng cách thay thế iw
bằng iW
, ib
, is
hoặc ip
hoặc một cái gì đó (mặc dù tôi không biết lý do tại sao bạn sẽ muốn tính năng này với toàn bộ câu)
*
tìm kiếm. Đặc biệt nó làm cho*
trực quan chọn từ hiện tại mà không di chuyển con trỏ của bạn. Khi nó được cài đặt, bạn có thể làm gì*ciw
để đưa từ cũ vào sổ đăng ký tìm kiếm và thay đổi từ đó. Sau đó, bạn có thể sử dụngn
và.
.