от
Часто при редактировании конфигурационных файлов, я открою один с Ви, а затем, когда я иду, чтобы спасти его понимаешь, что я не тип
sudo vi filename
Есть ли способ, чтобы дать ви правами sudo, чтобы сохранить файл? Я, кажется, припоминаю что-то об этом, пока искала материалы о VI некоторое время назад, но сейчас я не могу найти его.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

11 Ответы

0 голосов
от
Часто при редактировании конфигурационных файлов, я открою один с Ви, а затем, когда я иду, чтобы спасти его понимаешь, что я не тип
sudo vi filename
Есть ли способ, чтобы дать ви правами sudo, чтобы сохранить файл? Я, кажется, припоминаю что-то об этом, пока искала материалы о VI некоторое время назад, но сейчас я не могу найти его.
0 голосов
от
%
заменяется на имя текущего файла, таким образом вы можете использовать:
:w !sudo tee %
(
vim
определяет, что файл был изменен и спрашивает нужно ли его перегружать. Сказать "да", выбрав
[L]
, а не ОК.) Кроме того, вы можете определить свои собственные команды. Поместите следующие строки в ваш
.vimrc
:
command W w !sudo tee %
0 голосов
от
В общем, вы не можете изменить эффективный идентификатор пользователя ви процесс, но вы можете сделать это:
:w !sudo tee myfile
0 голосов
от
Общие Предостережения Самым распространенным способом передвижения только для чтения и файл-открыть трубу для текущего файла в качестве супер-пользователя через реализацию
sudo tee
. Однако, все наиболее популярные решения, которые я находил в интернете имеется несколько потенциальных моментов: Весь файл записывается в терминал, а также файл. Это может быть медленным для больших файлов, особенно на медленных сетевых подключениях. Файл теряет свои режимы и подобные атрибуты. Пути к файлам с необычные символы или пробелы не могут быть правильно обработаны. Решения Чтобы обойти все эти проблемы, можно использовать следующую команду:
" On POSIX (Linux/Mac/BSD):
:silent execute 'write !sudo tee ' . shellescape(@%, 1) . '
0 голосов
от
Если вы используете Vim, есть скрипт доступен по имени судо.ВИМ. Если вы обнаружите, что вы открыли файл, который вам нужен root доступ для чтения, тип:электронные судо:%ВИМ заменяет % с именем текущего файла, и
sudo:
дает команду sudo.скрипт для Vim, чтобы взять для чтения и записи.
0 голосов
от
Райан советы, как правило, хорошо, однако, если после шага 3, не переместить временный файл, будет иметь неправильную собственности и разрешения. Вместо этого,
sudoedit
правильный файл и чтения в содержание (используя
:r
или) временного файла. Если после шага 2, использовать
:w!
заставить файла, который будет записан.
0 голосов
от
Когда вы перейти в режим вставки текста на нужный вам файл sudo доступ для редактирования, вы получите сообщение о статусе


Если я скучаю, что, как правило, я делаю

:w ~/edited_blah.tmp
:q
..потом..
sudo "cat edited_blah.tmp
0 голосов
от
Быстрый Google, похоже, дал такой совет: Не пытайтесь изменить, если это только для чтения. Вы сможете изменить разрешения на файл. (Независимо от того, это позволит вам сэкономить до экспериментов.) Если вы все равно редактировать, сохранить во временный файл и затем перенести его. http://ubuntuforums.org/showthread.php?t=782136
0 голосов
от
Вот еще один, который появился так на этот вопрос ответил, плагин называется SudoEdit, который обеспечивает SudoRead и SudoWrite функций, который по умолчанию будет пытаться сначала использовать sudo и SU если это не удается: http://www.vim.org/scripts/script.php?script_id=2709
0 голосов
от
У меня есть это в моем ~/.bashrc следующее:
alias svim='sudo vim'
Теперь, когда мне нужно отредактировать файл config, я просто открыть его с свим.
...