Это похоже на новую ошибку (особенность?), Которая появилась в Ubuntu 13.10. Когда я выполняю vi
для каталога, он не перечисляет файлы, к которым я могу перейти с помощью клавиш со стрелками; он просто показывает пустой экран с сообщением «Недопустимое имя файла».
Теперь это хлопотно, потому что сначала мне нужно ls
каталог, если я не знаю, какой файл я хочу отредактировать, а затем мне нужно ввести полное имя файла после каталога в аргументе команды.
Это происходит, когда я захожу на vi
tmp и т. Д., И даже в моем домашнем каталоге, для которого у меня есть разрешение на запись.
Чтобы использовать vi для файла, введите vi <file name>
или vi -r <file name>
, чтобы восстановить файл, который вы редактировали в случае сбоя системы.
Если файл существует, файл будет отображен; если файл не существует, то создается пустой файл и экран, в который вы можете ввести текст.
Поведение, которое вы описываете, вызвано ошибкой в 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 в качестве тестового примера.
Я попытался выполнить шаги, заданные 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.