Vim netrw完成文件复制后如何取消已设置的目标目录
Vim netrw 取消已设置复制/移动目标目录的方法
netrw 标记文件操作的默认逻辑是:mf标记文件、mt指定目标路径、mc执行复制/mm执行移动,设置过的目标路径会被缓存到缓冲区变量中,不会随复制操作完成自动清除,所以顶部栏会一直显示Copy/Move Tgt: 路径的提示,后续操作如果不重新选目标就会默认往这个路径写文件。
手动即时清除
在netrw窗口下任选一种方式即可:
- 最稳妥的方式:直接执行Ex命令
:unlet b:netrw_copyfiletgt回车,顶部的目标提示会立刻消失,下次触发复制/移动操作时,netrw会主动提示你重新选择目标路径。 - 按键重置方式:将光标定位到任意目录条目上,按一次
mt将该目录临时设为目标,紧接着再按mt时直接按<Esc>退出目标选择,也能清空原有缓存,不过这种方式容易误设新目标,不如直接执行命令可靠。
注意:按mF只能清除所有mf打上的文件标记,不会影响已设置的目标路径,操作完顶部的Tgt提示依然会保留,达不到清空目标的效果。
操作完成自动清空配置
如果不想每次手动清理,可以把下面这段配置加到你的.vimrc里,重载Vim后生效:
augroup NetrwAutoClearTarget autocmd! autocmd FileType netrw nnoremap <buffer> mc :mc<bar>unlet b:netrw_copyfiletgt<cr> autocmd FileType netrw nnoremap <buffer> mm :mm<bar>unlet b:netrw_copyfiletgt<cr> augroup END
配置生效后,每次在netrw里执行完复制、移动标记文件的操作,都会自动清空缓存的目标路径,下次操作会重新要求选择目标,不会残留之前的路径导致误操作。
内容的提问来源于stack exchange,提问作者user1742189
相关产品推荐
相关产品推荐

