EDIT: Đề xuất ánh xạ đối xứng độc đáo cho trường hợp phân chia dọc, vì Vim theo mặc định có hai ánh xạ cho trường hợp phân chia ngang.
Có một số cách để chỉnh sửa "tệp theo con trỏ" và trong khi bạn chắc chắn có thể gfánh xạ lại để chỉnh sửa trong một trang mới như @ alexander-myshov đề cập, điều đó có nghĩa là bạn có hai cách để chỉnh sửa nó trong một trang mới, nhưng không có cách nào để chỉnh sửa nó trong cửa sổ hiện tại, đôi khi bạn cũng có thể muốn làm. Không khó để sử dụng ánh xạ chuẩn, nhưng nếu bạn muốn ánh xạ lại một trong số chúng gf, tôi khuyên bạn nên chuyển đổi ánh xạ để bạn không bị mất một trong số chúng.
Một số cách để chỉnh sửa tên tệp theo con trỏ là
- gf - Chỉnh sửa tập tin hiện có dưới con trỏ trong cùng một cửa sổ
- C-Wf - Chỉnh sửa tập tin hiện có dưới con trỏ trong cửa sổ chia
- C-WC-F - Chỉnh sửa tập tin hiện có dưới con trỏ trong cửa sổ chia
- C-Wgf - Chỉnh sửa tập tin hiện có dưới con trỏ trong trang tab mới
Không có ánh xạ chuẩn để chỉnh sửa tệp hiện có theo con trỏ theo phân chia dọc, nhưng bạn có thể đạt được nó bằng cách trước tiên chia cửa sổ theo chiều dọc và sau đó chỉnh sửa tệp theo con trỏ trong cửa sổ hiện tại.
- C-Wv+ gf- Chỉnh sửa tệp hiện có dưới con trỏ trong cửa sổ chia theo chiều dọc
Như bạn có thể thấy ở trên, có hai ánh xạ mặc định để chỉnh sửa tệp theo con trỏ theo cách chia ngang. Do đó, bạn có thể sắp xếp lại một trong số chúng cho chuỗi khóa ở trên, mở rộng nhóm bản đồ để bao gồm cả trường hợp phân chia dọc. Bạn có thể ràng buộc bất cứ điều gì, tất nhiên, nhưng điều này dường như hoàn thành đối xứng độc đáo : nnoremap <C-W><C-F> <C-W>vgf
. Bây giờ bạn có
- gf - Chỉnh sửa tập tin hiện có dưới con trỏ trong cùng một cửa sổ
- C-Wf - Chỉnh sửa tập tin hiện có dưới con trỏ trong cửa sổ chia
- C-WC-F - Chỉnh sửa tập tin hiện có dưới con trỏ trong cửa sổ chia theo chiều dọc
- C-Wgf - Chỉnh sửa tập tin hiện có dưới con trỏ trong trang tab mới
Bạn cũng có thể đi đến một dòng cụ thể trong tệp, nếu tên tệp dưới con trỏ được theo sau bởi một số dòng. Nếu bạn có
filename:10
bạn có thể chỉnh sửa tệp và di chuyển con trỏ đến dòng 10 với gF. Điều tương đương là đúng cho C-WFmột phân chia và C-WgFcho một trang. Hoàn thành tính đối xứng cho phân chia dọc không đơn giản như ở đây, nhưng tôi sẽ đề xuất rằng C-WC-S-Fbản đồ thu được nnoremap <C-W><C-S-F> <C-W>vgF
, bắt chước Fhoặc Shift+ ftừ các bản đồ mặc định là một ứng cử viên.
Đây :
là một ví dụ, bạn có thể sử dụng bất kỳ ký tự nào không phải là ký tự tên tệp (xem :h 'isfname'
).
Tất cả các lệnh này đi kèm với nước sốt táo, chẳng hạn như
- mở rộng hoang dã
- tìm ở nhiều nơi hơn thư mục hiện tại, tùy theo
'path'
lựa chọn của bạn
- thêm phần mở rộng tập tin vào tên tệp, theo
'suffixesadd'
tùy chọn của bạn
- mặt khác sửa đổi tên tệp đã cho để tìm một kết quả khớp, theo
'includeexpr'
tùy chọn của bạn
Đọc thêm tại :help gf
và các chủ đề trợ giúp cho các tùy chọn khác nhau này.
Nếu tên tệp dưới con trỏ đặt tên tệp không tồn tại, bạn có thể sử dụng các lệnh chỉnh sửa tiêu chuẩn với <cfile>
, như
:edit <cfile> // edit non-existent file under cursor in current window
:split <cfile> // edit non-existent file under cursor in split window
:vsplit <cfile> // edit non-existent file under cursor in vertical split window
:tabe <cfile> // edit non-existent file under cursor in new tabpage
và với những điều này tất nhiên bạn có thể sử dụng những thứ như :spl+10 filename
để di chuyển con trỏ đến một dòng cụ thể hoặc :tabe+/cologne filename
để di chuyển con trỏ đến lần xuất hiện đầu tiên của một mẫu.
'hidden'
tùy chọn (set hidden
) cho phép bạn điều hướng khỏi bộ đệm chưa được lưu. Đối với tôi, đây là một công cụ tăng năng suất khổng lồ và rất quan trọng để ngừng phụ thuộc vào các phần tách và tab rất nhiều.