Выполнение vi в каталоге не отображает файлы

6

Это похоже на новую ошибку (особенность?), которая ползут в Ubuntu 13.10. Когда я выполняю vi в каталоге, он не перечисляет файлы, к которым я могу перейти с помощью клавиш со стрелками; он просто показывает пустой экран с сообщением «Недопустимое имя файла».

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

Это происходит, когда я перехожу к vi tmp и т. д. и даже в свой домашний каталог, для которого у меня есть разрешение на запись.

    
задан Parag Magunia 26.11.2013 в 07:42
источник

3 ответа

5

Поведение, которое вы описываете, вызвано ошибкой в ​​ netrw , который является плагином, обрабатывающим просмотр файлов.

Обновление до последней версии плагина устраняет это поведение.

Для этого просто загрузите последнюю версию netrw , откройте ее в vim и исправить его. Это приведет к извлечению плагина в ваш каталог ~/.vim , где он будет загружен перед ошибкой в ​​системе.

Загрузите файл:

wget http://www.drchip.org/astronaut/vim/vbafiles/netrw.vba.gz

Откройте его в vim :

vim netrw.vba.gz

В vim, введите его:

:so %

Затем, закройте vim. Затем снова просмотрите каталоги каталогов.

Обновить . В одном окне это дало мне ошибку в том, что я не могу закрыть последнее окно . Не повлияло на плагин, который работал безупречно после этого.

2nd Update . Эта версия netrw ожидает версию vim с возможностью буфера обмена .

Вы можете проверить, имеет ли ваша версия его, запустив vim --version . На выходе, вероятно, будет -clipboard , что означает, что функция не включена.

Чтобы получить версию, скомпилированную с поддержкой буфера обмена, установите любую версию vim с графическим интерфейсом, которая также заменит ваш обычный vim версией с поддержкой clipboard . Я использовал vim-gtk в качестве тестового примера.     

ответ дан drc 26.11.2013 в 08:58
2

Я попытался выполнить шаги, описанные drc, но получил странные ошибки (возможно, из-за отсутствия поддержки буфера обмена).

Следующее работало для меня в ubuntu 13.10 docker image, только с стандартной версией Vim без поддержки буфера обмена:

vim /etc   # blank screen

wget http://www.vim.org/scripts/download_script.php?src_id=21427 -O netrw.vba.gz

# install the vimball
# may throw error E444, but this can seemingly can be ignored
vim netrw.vba.gz +"so %" +q  

vim /etc  # works fine

Обратите внимание, что единственное, что я делал иначе, чем drc, привлекло меня, используя немного более старую версию плагина netrw, а именно тот, который был загружен на vim.org в 2014-02-04.

    
ответ дан Dergachev 18.04.2014 в 17:02
-1

Чтобы использовать vi для файла, введите vi <file name> или vi -r <file name> , чтобы восстановить файл, который вы редактировали в случае сбоя системы.

Если файл существует, будет отображаться файл; если файл не существует, создается пустой файл и экран, в который вы можете ввести текст.     

ответ дан Mitch 26.11.2013 в 08:25