Vim — это текстовый редактор, используемый в операционных системах Linux, который помогает создавать и обновлять различные текстовые файлы с разными расширениями. Иногда, когда вы пытаетесь создать файлы с помощью утилиты Vim, вы получали ошибку: “Vim can’t open file for writing”. Причин этой ошибки может быть несколько.
На вашем компьютере должен быть установлен и настроен дистрибутив Linux. В нашем случае у нас есть дистрибутив Linux Ubuntu 20.04. С другой стороны, у вас должны быть права sudo для использования системы Linux и утилиты Vim.
В самом начале вы должны убедиться, что в вашем дистрибутиве Linux установлена утилита Vim. Для этого мы сначала проверим это в нашей системе. Следовательно, вы должны открыть терминал командной строки из панели действий на рабочем столе Linux. После этого выполните приведенную ниже команду Vim, чтобы получить информацию о Vim. Как показано на изображении, в нашей Ubuntu 20.04 не установлена утилита Vim. Он также предлагает некоторые инструкции по установке Vim в системе. Используйте один из них для установки Vim.
$ vim
Теперь наша очередь установить Vim в нашей системе Linux. Итак, для этого мы должны использовать команду sudo apt. Попробуйте выполнить команду ниже, чтобы установить его в вашей системе. Для инициализации процесса установки потребуется пароль вашей учетной записи root. Введите свой пароль sudo и нажмите кнопку «Enter», чтобы продолжить. Вы увидите, что он начнет установку и загрузку утилиты Vim вместе с другими пакетами.
$ sudo apt install vim
Во время установки он будет приостановлен, и появится вопрос. Система предложит вопрос для подтверждения действия по установке, в котором говорится: “Do you want to continue? [Y/n] “. Если вы хотите продолжить процесс установки Vim, вам нужно нажать «y» и нажать Enter, в противном случае нажмите «n» и нажмите кнопку «Enter». Итак, мы нажали «Y» и нажали клавишу Enter, чтобы продолжить установку редактора Vim в Ubuntu 20.04. Это запустит правильную установку редактора Vim. Вам нужно подождать некоторое время, пока он не завершит свой процесс.
После установки Vim вы можете проверить информацию о нем, используя ту же команду, что и ниже.
$ vim
Если ваша система Linux успешно откроет окно, показанное ниже, как показано на прикрепленном снимке, вы можете использовать редактор Vim.
Теперь мы создадим файл с помощью команды Vim в командной оболочке. Мы создадим этот файл в любом из каталогов. Итак, попробуйте следующую команду Vim, чтобы создать файл «smtpd.conf» в каталоге, указанном ниже.
$ vim /usr/lib64/sas12/smtpd.conf
Откроется окно, показанное ниже, в котором путь и имя файла указаны в нижней части нижнего заголовка. Пора записать содержимое этого файла по заданному пути.
Чтобы записать содержимое файла и выйти из редактора Vim, попробуйте следующую команду «wq» со знаком двоеточия «:», затем нажмите кнопку Enter, чтобы запустить эту команду.
:wq
Сразу после того, как вы нажмете кнопку «Enter», вы получите сообщение об ошибке: “E212: Can’t open file for writing”, как показано на изображении ниже. Для продолжения нажмите кнопку «Enter».
Чтобы проверить причину этой ошибки, нам нужно написать еще одну инструкцию в редакторе Vim. Попробуйте выполнить следующую команду sudo в редакторе Vim, начиная с ключевого слова «:w», заканчивая ключевым словом «tee» и знаком процента. Нажмите клавишу «Enter», чтобы увидеть причину ошибки.
:w ! sudo tee %
Для записи содержимого файла и сохранения файла по указанному пути требуется пароль вашей учетной записи sudo. Введите свой корневой пароль и нажмите кнопку «Enter». Вывод показывает, что в вашей системе Linux нет такого файла или каталога. Это означает, что мы указываем причину этой ошибки. Снова нажмите клавишу «Enter», чтобы продолжить работу с Vim. Напишите приведенную ниже команду выхода и нажмите клавишу «Enter», чтобы вернуться в оболочку терминала.
:q
Мы узнали о причине ошибки, которая заключается в том, что указанный путь не был фактически создан. Вы также можете проверить путь в командной строке с помощью команды ls. Вывод показывает, что такой каталог не создается.
$ ls /usr/lib64/sas12
Во-первых, мы должны создать путь или каталог в оболочке командной строки. Чтобы создать каталог, указанный в указанном выше пути, мы должны использовать команду mkdir вместе с флагом «-p». Если вы используете команду mkdir без ключевого слова «sudo», это может быть вызвано исключением «Permission denied».
$ mkdir –p /usr/lib64/sas12
Давайте попробуем эту команду с ключевым словом «sudo», и вы увидите, что она работает нормально.
$ sudo mkdir –p /usr/lib64/sas12
Снова напишите команду Vim, а затем укажите путь к файлу, чтобы проверить изменения. Откроется редактор Vim.
$ vim /usr/lib64/sas12/smtpd.conf
Когда вы напишете приведенную ниже команду sudo, для продолжения может потребоваться пароль вашей учетной записи sudo. Вы можете увидеть, что после ввода пароля и нажатия кнопки «Enter» будет выдано предупреждение. Вы должны нажать клавишу «L», а затем кнопку «Enter», чтобы загрузить этот файл в указанную папку.
:w !sudo tee %
Он загрузит файл и предоставит ему права только для чтения. Нажмите клавишу Enter.
Теперь, когда вы вводите команду «wq», она будет работать нормально.
:wq
Мы сделали решение ошибки: “Vim can’t open file for writing” в мгновение ока. Надеюсь, вы сможете решить эту ошибку с удобством.