О, как часто бывает, что файл, который мы открыли на редактирование, недоступен для чтения. В таком случае, радость от общения с лучшим текстовым редактором в мире омрачается красной надписью: W10: Warning: Changing a readonly file.
Можно, конечно, выйти из редактора и воспользоваться sudo vim имяфайла, это первое, что приходит в голову. Но есть способ куда лучше... Даже два!
Самый простой способ записать изменения в файл, если у вас нету прав для записи, не покидая vim, это команда :w !sudo tee %. Как это работает? Мы все содержимое файла скармливаем в стандартный вывод команды sudo tee, а она уже записывает его в файл, будучи запущенной с правами пользователя root.
Но это все еще не слишком удобно! А не было ли у вас такого, что вы пишете :W вместо :w и в результате vim не сохраняет ваш файл, ругаясь на неверную команду? У меня такое постоянно, и именно поэтому я пользуюсь таким макросом:
command W w !sudo tee % > /dev/null
Эту команду надо записать в файл .vimrc в вашем домашнем каталоге (как правило, это файл /home/yourlogin/.vimrc (Linux, FreeBSD, *BSD) или /Users/yourlogin/.vimrc в Mac OS X).
Кстати, если уж вы добрались до редактирования этого файла, возможно, вам будет приятно по умолчанию показать номера строк в файле и сменить цветовую схему по умолчанию. А делается это, соответственно, командами:
colorscheme evening set number :highlight LineNr term=bold cterm=NONE ctermfg=DarkGrey ctermbg=NONE gui=NONE guifg=DarkGrey guibg=NONE
Последняя команда делает подсветку номеров строк менее сливающейся с текстом файла. Надеюсь, это сделает вашу работу в vim еще более комфортной и приятной.