4

我有这个映射:

nnoremap <silent> <leader><space> :Files<CR>

这工作正常,但是当我已经打开一个更改的文件时,当我切换到一个新文件时会出现错误。

是否可以在启动 fzf 之前保存文件?我尝试过这样的事情,但如果我没有打开文件,这将不起作用。(无文件启动 vi 并启动 fzf)

nnoremap <silent> <leader><space> :w<CR>:Files<CR>
4

1 回答 1

4

首先,使用:update代替:write. 仅当确实存在未持久的更改时才会写入。

您可以使用 来检查空缓冲区empty(bufname('')),但由于还有其他极端情况,我宁愿让错误静音:

nnoremap <silent> <leader><space> :execute 'silent! update'<Bar>Files<CR>

选择

或者,您可以查看该'hidden'选项,如@romainl 所述。有了这个,如果一个没有保存更改的缓冲区不再显示在窗口中,Vim 不会抱怨,只会在退出 Vim 时遇到你。很多超级用户都有:set hidden

于 2017-07-27T13:56:31.213 回答