При выполнении vi в каталоге файлы не отображаются

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

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

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

7
задан 26 November 2013 в 13:25

3 ответа

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

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

0
ответ дан 26 November 2013 в 13:25

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

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

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

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

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

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

vim netrw.vba.gz

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

:so %

После этого закройте vim. Затем снова наслаждайтесь просмотром каталогов.

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

2-е обновление : В этой версии netrw ожидается версия vim с возможностью буфера обмена .

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

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

0
ответ дан 26 November 2013 в 13:25

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

Следующее работало для меня в образе докера ubuntu 13.10, только со стандартной версией 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.

0
ответ дан 26 November 2013 в 13:25

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

Похожие вопросы: