Mặc dù expand('%')
thường hoạt động, có rare occasions nơi nó không. Nhưng bạn có thể buộc Vim để luôn luôn trình bày các đường dẫn tương đối bằng cách gọi fnamemodify
:
:echo fnamemodify(expand("%"), ":~:.")
Từ hướng dẫn:
:. Reduce file name to be relative to current directory, if
possible. File name is unmodified if it is not below the
current directory.
For maximum shortness, use ":~:.".
Các :~
là không bắt buộc. Nó sẽ làm giảm đường dẫn tương đối so với thư mục chính của bạn nếu có thể (~/...
). (Rất tiếc, chỉ hoạt động trên nhà của bạn; nó sẽ không biến /home/joey
thành ~joey
.)
Nếu bạn được giới hạn về không gian, và có thể quản lý với thông tin "mờ" về nơi các tập tin có vị trí, sau đó kiểm tra pathshorten()
mà nén tên thư mục xuống một ký tự:
:echo pathshorten('~/.vim/autoload/myfile.vim')
~/.v/a/myfile.vim
tham khảo: :h fnamem<Tab>
và :h pathsh<Tab>
Tuyệt vời! Nó cũng làm việc cho tôi. – Rafid
Bạn cũng có thể sử dụng '%' trong chế độ chèn để chèn tên tệp hiện tại. –
Điều này không phải lúc nào cũng hoạt động và phụ thuộc vào cách bạn mở tệp ban đầu. Xem câu trả lời của @joeytwiddle cho câu hỏi này để có giải pháp hoàn chỉnh hơn. – senbrow