Sử dụng expand-region
Tôi sẽ khuyên bạn nên cài đặt expand-region
gó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-region
thô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-mode
bộ đệ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-mode
bậ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-region
nhiề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-\fname
sẽ 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-region
tí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-mode
kí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-inner
gói bởi các expand-region
tác giả magnars (trong đó sử dụng expand-region
như back-end) để thực hiện chính xác những gì Vim ci
không (và cũng có thể thay đổi bên ngoài ).
Từ gói README:
change-inner
cung cấp cho bạn ci
lệ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-k
sẽ đưa raref = open(|);
. Báo giá cũng được cân bằng giới tính .