Trong .vimrc của tôi , tôi có biến sau được định nghĩa:
let $VIMFILES = "~/.vim"
Hơn nữa trong .vimrc của tôi , tôi cố gắng đặt backupdirtùy chọn như vậy:
set backupdir=$VIMFILES/backup
" `set backupdir?` will return: backupdir=~/.vim/backup
Tuy nhiên, nó không hoạt động. Cố gắng vào :wmột tệp sẽ thất bại và trả lại như sau:
"foo" E510: Can't make backup file (add ! to override)
Thật kỳ lạ, cài đặt backupdirbằng phương pháp sau chỉ hoạt động tốt ...
exec "set backupdir=" . $VIMFILES . "/backup"
" Like the first method, `set backupdir?` will
" also return: backupdir=~/.vim/backup
Bất cứ ai cũng có thể làm sáng tỏ lý do tại sao phương pháp đầu tiên thất bại và phương pháp thứ hai hoạt động, mặc dù backupdircó giá trị mong muốn trong cả hai trường hợp? Tôi có đang sử dụng bất kỳ kỹ thuật không phù hợp nào không, và nếu vậy, tôi nên sử dụng cái gì thay thế?
setchuyển đổi giá trị quá. Ví dụ:echo expand("~/.vim/backup"): trả về:/home/zeroknight/.vim/backupvà:set backupdir?trả về :~/.vim/backup. Cảm ơn bạn một lần nữa cho giải pháp và cái nhìn sâu sắc!