Sử dụng expand-region
Tôi sẽ khuyên bạn nên cài đặt expand-regiongói (cũng có sẵn trên Melpa). Nó sẽ hữu ích cho việc chỉnh sửa các tình huống được đề cập trong ví dụ của bạn và nhiều hơn nữa.
expand-regionthông minh. Dựa trên chế độ chính, nó sẽ cố gắng tìm ra những gì bạn đang cố gắng chọn. Tôi không biết từ ngôn ngữ nào bạn có đoạn mã ví dụ nên tôi sẽ sử dụng đoạn mã ví dụ của bạn và sửa đổi một chút cho Python (remove;). Vì vậy, lời giải thích dưới đây của tôi là với đoạn mã dưới đây trong một python-modebộ đệm.
ref = open('specific-file-name')
Nếu điểm nằm cạnh một trích dẫn
Các hình chữ nhật dọc màu đen bên dưới cho biết con trỏ sẽ trông như thế nào.
# point on left of left quote, the cursor is hiding the quote under it
ref = open(▮specific-file-name')
# point on left of right parenthesis, the cursor is hiding the parenthesis under it
ref = open('specific-file-name'▮
Trong cả hai trường hợp, khi bạn làm M-x er/expand-region, 'specific-file-name'sẽ được chọn và sau đó bạn có thể nhấn DEL(hoặc xóa lùi) để xóa lựa chọn.
Nếu bạn đã delete-selection-modebật (tôi muốn bật cá nhân đó), bạn có thể bắt đầu nhập sau khi thực hiện lựa chọn và điều đó sẽ ghi đè lên lựa chọn.
Tất nhiên, nếu bạn sử dụng er/expand-regionnhiều, bạn sẽ liên kết nó với một ràng buộc khóa ngắn. Tôi thích ràng buộc nó với C-\. Vì vậy, với điểm bên cạnh một trích dẫn duy nhất: C-\fnamesẽ cho tôiref = open(fname);

Nếu điểm là một nơi nào đó bên trong dấu ngoặc kép
Sử dụng expand-region, điểm không cần phải ở gần dấu ngoặc kép. Nhưng trong trường hợp này, bạn sẽ chỉ cần thêm một vài (thường là một hoặc hai) phím nữa.
Giả sử vị trí con trỏ như bây giờ:
# cursor shown below is hiding the i character under it
ref = open('specif▮c-file-name')
Sử dụng cùng một ràng buộc như tôi đã sử dụng ở trên:
- Lần đầu tiên tôi nhấn
C-\sẽ chọn specific.
Bây giờ tôi chỉ cần nhấn \để mở rộng vùng chọn ( expand-regiontính năng). Điều đó sẽ chọn specific-file-name.
Nếu bạn đã bị ràng buộc er/expand-regionđể C-=, đánh =một lần nữa sẽ làm việc mở rộng gia tăng. Đọc tài liệu của nó về cách ràng buộc các khóa để mở rộng / thu hẹp lựa chọn.
- Đánh
\một lần nữa sẽ chọn 'specific-file-name'.
- Bây giờ bạn tiến hành nhấn
DELđể xóa lựa chọn và sau đó gõ fname. Nếu delete-selection-modeđược kích hoạt, bạn có thể bỏ qua DELđột quỵ.
Tóm lại, với delete-selection-modekích hoạt, các nét chính trông như : C-\\\fname.

Sử dụng change-inner
Tôi cũng đã xem qua change-innergói bởi các expand-regiontác giả magnars (trong đó sử dụng expand-regionnhư back-end) để thực hiện chính xác những gì Vim cikhông (và cũng có thể thay đổi bên ngoài ).
Từ gói README:
change-innercung cấp cho bạn cilệnh của vim , xây dựng trên expand-region. Nó được giải thích dễ dàng nhất bằng ví dụ:
function test() {
return "semantic kill";
}
Với điểm sau từ ngữ nghĩa
change-inner "sẽ giết nội dung của chuỗi
change-outer "sẽ giết toàn bộ chuỗi
change-inner {sẽ giết câu lệnh return
change-outer {sẽ giết toàn bộ khối
ref = open(|'specific-file-name');,C-M-ksẽ đưa raref = open(|);. Báo giá cũng được cân bằng giới tính .