Я недавно переключился с Emacs на Vim, так что, может быть, я совершенно не понимаю, как работает Vim.
Я открыл файл в Vim и внес некоторые изменения, но не сохраняю их. Затем я использую :e otherfile
, чтобы открыть второй файл и внести в него некоторые изменения. Опять же, не сохраняя изменения, я бы хотел вернуться к первому буферу. Я использую :bn
для этого, но когда я получаю E37: No write since last change ...
. Если я сделаю :bn!
, то смогу вернуться к первому буферу. Из первого буфера я могу перейти обратно ко второму буферу с прямым :bn
, но мне нужно сделать :bn!
, чтобы каждый раз переходить из второго буфера в первый.
У меня есть set bufhidden=hide
в моем vimrc, но если я запускаю :set bufhidden?
в Vim, я получаю bufhidden=
. Возможно, это проблема?
Редактировать: Я немного сузил проблему. В первом файле :set bufhidden?
возвращает bufhidden=hide
, но во втором файле возвращает bufhidden=
. Что с этим? Я что-то упускаю из фундаментальных буферов Vim?
Edit2: Хорошо, похоже, set bufhidden=hide
относится только к первому открытому буферу. Это должно быть явно вызвано в последующих буферах. Я, должно быть, здесь полностью упускаю смысл, потому что это не кажется полезным.
Хорошо, я просто был идиотом. Я не хотел set bufhidden=hide
в моем vimrc - это только для одного буфера. Теперь, когда я изменил его на set hidden
, все работает так, как я чувствовал, должно.