我想知道是否有可能在我修改一个已经打开的缓冲区时,将其刷新到指向新路径。
示例:
- 在 vim 中打开
./dest1/foo
- 将
foo
移动到./dest2/foo
- 更新打开的缓冲区,使其反映新路径
./dest2/foo
而不是读/写旧路径
我想知道是否有可能在我修改一个已经打开的缓冲区时,将其刷新到指向新路径。
示例:
./dest1/foo
foo
移动到 ./dest2/foo
./dest2/foo
而不是读/写旧路径是的,这是可能的,但不会没有一点点的干扰。
现在你可能会得到一个消息,“File "foo" is no longer available. Press ENTER or type command to continue”. 按下ENTER键。Vim 现在从新位置重新打开了该文件。
function Saveas(newfile)
let oldfile=expand("%:p")
silent! exe 'saveas!' fnameescape(a:newfile)
bd #
exe 'cd ' . expand('%:h')
call delete(oldfile)
endfunction
command! -nargs=1 -complete=dir -complete=file Saveas call Saveas('<args>')
./foo
,则可以执行:Saveas ./dest1/foo
(假设dest1
目录存在)。现在,当前缓冲区将是./dest/foo
,而foo
将从缓冲列表中删除。此外,当前目录(pwd
)将更新为./dest
。foo
将被删除。一个含有foo
内容的新文件./dest1/foo
将被创建。
:pwd
,路径仍将是旧文件的路径,但应该更新。 - builder-7000