Ошибка Vim E138: не удается написать файл viminfo $ HOME / .viminfo!

Боюсь, я столкнулся с чем-то довольно странным. Когда я обычно открываю файл, vim README.txt , все в порядке. Но на sudo vim README.txt файл отображается пустым и дает мне E138: Can't write viminfo file $HOME/.viminfo! ошибка при попытке выхода.

Я подозревал, что файл .viminfo поврежден, поэтому я удалил его. Эта проблема остается. Может ли кто-нибудь помочь?

7 Solutions collect form web for “Ошибка Vim E138: не удается написать файл viminfo $ HOME / .viminfo!”

Когда вы запускаете sudo vim вы запускаете vim как root. Это означает, что это файл viminfo в / root, который является проблемой. Вы должны сделать rm /root/.viminf* .

Чтобы убедиться в этом, запустите sudo vim и выполните следующую команду :!echo $HOME . Это покажет вам, что ваш домашний каталог / root.

Я бы порекомендовал вам не запускать vim как root, а использовать sudoedit . Это более безопасное решение, так как редактор не работает как root. Вы никогда не знаете, что может сделать плагин. Кроме того, он позволяет использовать ваши собственные настройки и плагины в vim, а не в корнях vimrc. sudoedit – это то же самое, что и sudo -e . sudoedit работает, создавая временную копию файла, принадлежащего вызывающему пользователю (вам). Когда вы закончите редактирование, изменения записываются в фактический файл, а временный файл удаляется.

Как общее правило: не запускайте вещи как root, если это не обязательно.

Надеюсь, это поможет вам!

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

 E138: Can't write viminfo file /Users/henrik/.viminfo! 

Удаление ~/.viminfo не ~/.viminfo ошибку.

Оказывается, у меня была куча файлов temp viminfo, и удаление этих исправлено:

  ls ~/.viminf* # If you want to see the files. rm -rf ~/.viminf* # Remove them. 

Нашли это решение здесь .

Я получил ту же ошибку при попытке :wq файл на диске, который был полностью заполнен. Если вы получите это сообщение, вы можете проверить доступное дисковое пространство.

Гораздо более простой способ создать домашний каталог – использовать скелет, который Linux предоставляет для вас, например.

 sudo cp -a /etc/skel /home/usernmae && sudo chown -R usernmae:usernmae /home/usernmae 

Скорее всего, это происходит из-за нехватки места на диске, и любая новая операция vim не может записываться в файл .viminfo.

У меня была такая же проблема при обновлении содержимого Makefile. Мне нужна локальная переменная и я решил назвать ее HOME , поэтому я ввел строку HOME=2.154 . Это приводит к тому, что параметр vim-HOME заменяется несуществующим каталогом. Не используйте переменную HOME для другого использования.

Для меня проблема заключалась в том, что я изменил свой домашний каталог на место внутри монстра NFS. По какой-то причине это привело к тому, что владельцем каталога стал «никто». Добавление разрешений на запись для «другого» решило проблему, поскольку я явно не являлся владельцем файла.

 chmod o+w ~/.viminfo 
  • Как я могу выборочно изменять строки в файле, где изменения зависят от анализа строк выбора в целом, а не по отдельности
  • Сравнение двух файлов в Vim
  • Использовать Netrw или Nerdtree в Zsh / Bash для выбора файла BY BROWSING?
  • Невозможно включить поддержку TrueColor в tmux через overriding terminfo
  • Разрешено только одно имя файла
  • ViM и Python говорят, что кодировка ANSI_X3.4-1968
  • vi / vim - дополнительные отступы при вставке текста?
  • Форма курсора в vim в konsole в kde с tmux
  • vim заменить текст поиска, используя текст поиска
  • Почему vim создает файлы с окончанием строки DOS?
  • Как изменить команду ci в vim
  • Linux и Unix - лучшая ОС в мире.