Я нашел следующую команду
mvn dependency:copy-dependencies -Dclassifier=sources
здесь maven.apache.org
%
заменяется текущим именем файла, таким образом можно использовать:
:w !sudo tee %
(vim
обнаружит, что файл был изменен и спрашивает, хотите ли Вы к нему быть перезагруженными. Скажите да путем выбора [L]
, а не OK.)
Как ярлык, можно определить собственную команду. Поместите следующее в Ваш .vimrc
:
command W w !sudo tee % >/dev/null
С вышеупомянутым можно ввести :W<Enter>
, чтобы сохранить файл. Так как я записал это, я нашел, что более хороший путь (по-моему), делает это:
cmap w!! w !sudo tee >/dev/null %
Этот способ, которым можно ввести :w!!
и это будет расширено до полной командной строки, оставляя курсор в конце, таким образом, можно будет заменить %
собственным именем файла, если Вам нравится.
В целом Вы не можете изменить эффективный идентификатор пользователя процесса vi, но можно сделать это:
:w !sudo tee myfile
Совет Ryan вообще хорош, однако, если следующий шаг 3, не перемещайте временный файл; это будет иметь неправильное владение и полномочия. Вместо этого sudoedit
корректный файл и чтение в содержании (использующий :r
и т.п.) временного файла.
, Если следующий шаг 2, используйте :w!
, чтобы вынудить файл быть записанным.
Если Вы используете Vim, существует сценарий, доступный именован sudo.vim. Если Вы находите открытие файла, что Вы должны базироваться доступ в чтение, Vim типа
:e sudo:%заменяет % названием текущего файла, и
sudo:
дает sudo.vim сценарию команду вступать во владение для чтения и записи. При входе в режим вставки на файле, Вам нужен sudo доступ к редактированию, Вы получаете сообщение о состоянии, говоря
-- INSERT -- W10: Warning: Changing a readonly file
, Если я пропускаю это, обычно я делаю
:w ~/edited_blah.tmp
:q
.. тогда..
sudo "cat edited_blah.tmp > /etc/blah"
.. или..
sudo mv edited_blah.tmp /etc/blah
существует, вероятно, менее окольный способ сделать это, но это работает.
Быстрый Google, кажется, дает этот совет:
У меня есть это в моем ~/.bashrc:
alias svim='sudo vim'
Теперь каждый раз, когда я должен отредактировать файл конфигурации, я просто открываю его с svim.
Быстрый взлом, который можно рассмотреть, делает chmod на файле, который Вы редактируете, сохраняете с энергией, и затем chmod назад к тому, чем файл был первоначально.
ls -l test.file (to see the permissions of the file)
chmod 777 test.file
[This is where you save in vim]
chmod xxx test.file (restore the permissions you found in the first step)
, Конечно, я не рекомендую этот подход в системе, где Вы волнуетесь по поводу безопасности, что касается нескольких секунд любой может читать/изменять файл без Вас понимание.
Вот еще один, который появился, поскольку этот вопрос был дан ответом, плагин под названием SudoEdit, который предоставляет функции sudoread и sudowrite, которые по умолчанию по умолчанию пытаются использовать sudo Сначала и сум, если это не удается: http://www.vim.org/scripts/script.php?script_id=2709