Сохраните файл в vim перед поиском с помощью FZF

У меня есть это отображение:

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

Это работает нормально, но когда у меня уже открыт измененный файл, я получаю сообщение об ошибке при переключении на новый файл.

Можно ли сохранить файл перед запуском fzf? Я пробовал что-то вроде этого, но это не работает, если у меня нет открытого файла. (запустить vi без файла и запустить fzf)

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

1 ответ

Решение

Во-первых, используйте :update вместо :write, Это будет только писать, если есть действительно без изменений.

Вы можете проверить наличие пустого буфера с помощью empty(bufname('')), но, как и в других случаях, я бы предпочел просто замолчать ошибку:

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

альтернатива

Кроме того, вы можете посмотреть в 'hidden' вариант, как упоминал @romainl. При этом Vim не будет жаловаться, если буфер с несохраненными изменениями больше не будет отображаться в окне, а только будет против вас при выходе из Vim. Многие опытные пользователи имеют :set hidden,

Другие вопросы по тегам