Похоже, что это может быть ошибкой в плагине netrw.Я тестировал несколько версий netrw с двумя сборками Vim 7.3 (MacPorts vim
7.3-353 и MacPorts MacVim
«snapshot64» 7.3-390):
- v140 (входит в MacPorts
vim
: 7.3-353)
Проверено только с vim build MacPorts. - v141 (со страницы
vim.org/scripts
netrw ) - v142 (с
vim.org/scripts
netrw page) - v143 (входит в MacPorts
MacVim
: 7.3-390)
Протестировано только в сборке MacPorts MacVim. - v144b (предварительная версия из страница Vim автора netrw )
Вы можете проверить свою активную версию netrw с помощью :let g:loaded_netrwPlugin
.
v140 - v142, все имели разумное поведение при воспроизведении вашего сценария:
- Только буфер netrw (от
sp .
; правая сторона, верхнее окно) доступен только для чтения.
Буфер fileA.cpp
в окне слева остается недоступным только для чтения.
С v143 и v144b я смог воспроизвести ваше поведение:
- Оба буфера netrw (справа side, верхнее окно) и буфер
fileA.cpp
(левая сторона) становятся доступными только для чтения. - Кроме того (т.е. не сообщается OP, но, по-видимому, связанным), окно
fileA.cpp
на левой стороне становитсяактивное окно.
Обычно, правое, верхнее окно (то, что из sp .
) должно быть активным.
Окно fileA.cpp
изначально было окном netrw (с vsp .
).Я предполагаю, что что-то в v143 и v144b немного переусердствовало при перезагрузке старого окна по какой-то причине (вероятно, оно вообще не должно касаться этого окна).sp fileB.h
позволяет избежать проблемы, не вызывая netrw (то есть проблема не в разделении окон, а в том, что netrw делает при создании буфера списка каталогов).
Если ваша проблема исходит отnetrw (т. е. ваше поведение соответствует моему описанию, а ваши буферы списка каталогов имеют текст Netrw Directory Listing
и (например) (netrw v143)
во второй строке - при условии, что вы не отключили баннер netrw), тогда вы сможете исправить этопутем установки более старой (?) версии netrw (т. е. v142).
netrw упаковывается как «архив vimball».Плагин vimball поставляется с Vim 7.0 и более поздними версиями.Вы просто поставляете файл vimball, чтобы установить его в первый каталог вашего runtimepath
(обычно ~/.vim
).
:e /path/to/netrw.vba.gz
:so %
:q
Если вы используете pathogen для изоляции ваших плагинов Vim(настоятельно рекомендуется!), вместо этого вы можете установить его в каталог комплекта:
:e /path/to/netrw.vba.gz
:UseVimball ~/.vim/bundle/netrw
:q