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 backupdir
tù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 :w
mộ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 backupdir
bằ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ù backupdir
có 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ế?
set
chuyển đổi giá trị quá. Ví dụ:echo expand("~/.vim/backup")
: trả về:/home/zeroknight/.vim/backup
và: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!