chúng ta đều biết những gì ci"
ci'
ci(
ci[
.... Rất tiện dụng trong chỉnh sửa hàng ngày. Tôi tìm thấy điều gì đó lạ và kiểm tra trợ giúp, đã không ' t tìm hiểu tại saoTại sao ci "và ci (, ci {.... hành xử khác nhau?
nói, tôi có một tập tin:.
foo "target"
foo 'target'
foo (target)
foo {target}
foo [target]
foo <target>
nếu con trỏ của tôi tại bắt đầu của mỗi dòng, (trên 'f
'), sau đó tôi gõ ci", ci ', ci (...
cix
chỉ hoạt động với dấu ngoặc kép (đơn hoặc đôi), không hoạt động cho dấu ngoặc vuông. tại sao họ cư xử khác nhau?
(dix
, vix
giống nhau)
thử nghiệm với --noplugin, vim 7.3
cảm ơn bạn.
Cập nhật
nhờ @romainl cho câu trả lời. Tôi vẫn nghi ngờ về việc "xử lý cặp trong vim"
kiểm tra ví dụ này:
foo "targ\"eti\" some\"thing else "
nếu tôi có một dòng như trên, tôi gõ ci"
, không có con trỏ vấn đề là ngay từ đầu hoặc giữa dấu ngoặc kép, nó hoạt động hoàn hảo, có vẻ như vim không có ý tưởng về "cặp"?
và điều này có thể là ý của bạn về ghép nối?
foo "target x some"thing else "
foo (target x some(thing else)
tôi đã ở trên hai dòng, if (con trỏ tại x
) Tôi gõ ci"
và ci(
, không có gì xảy ra với dòng thứ 2, nhưng dòng đầu tiên thay đổi thành:
foo "I"thing else " (I is cursor)
Vim không ghép nối dấu ngoặc kép. Các heuristic nó sử dụng thực sự là rất đơn giản: Quét trái để tìm một '' 'hoặc' '' Lặp lại ngay nếu không có hit. Sau đó lặp lại ngay lập tức một lần nữa để tìm báo giá đóng cửa. không bao giờ được tính đến. – glts
Xem thêm [câu trả lời của tôi] (http://stackoverflow.com/a/7804666/254635) cho câu hỏi "[Chọn văn bản bên trong dấu ngoặc đơn từ bên ngoài dấu ngoặc đơn trong Vim] (http://stackoverflow.com/q/7803905/254635) ". –
@ib. và glts, thx cho các ý kiến. upvote! – Kent