Ответ 1
Похоже, что это может быть ошибка в плагине netrw. Я тестировал несколько версий netrw с двумя сборками Vim 7.3 (MacPorts vim
7.3-353 и MacPorts MacVim
"snapshot64" 7.3-390):
- v140 (входит в MacPorts
vim
: 7.3-353)
Протестировано только с помощью сборки VMP MacPorts. - v141 (из
vim.org/scripts
netrw page) - v142 (с страницы
vim.org/scripts
netrw) - v143 (входит в MacPorts
MacVim
: 7.3-390)
Протестировано только с MacPorts MacVim build. - v144b (предварительная версия netrw authors Vim page)
Вы можете проверить свою активную версию netrw с помощью :let g:loaded_netrwPlugin
.
от v140 до v142 все имели разумное поведение при воспроизведении вашего сценария:
- Только буфер netrw (от
sp .
, правая сторона, верхнее окно) доступен только для чтения.
БуферfileA.cpp
в левом окне остается нечитаемым.
С v143 и v144b я смог воспроизвести ваше поведение:
- Оба буфера netrw (правая сторона, верхнее окно) и буфер
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