Eu apenas tentei nano
, e o que achei mais surpreendente é que ele nem avisa que o arquivo é somente leitura quando você começa a tentar editar o arquivo. ( ATUALIZAÇÃO: Aparentemente, o nano 2.2 avisa; 2.0 não. )
Aqui está um script (básico) que faz isso.
Ele verifica se você pode editar o arquivo e, se não puder, executa "nano" como root.
/ usr / local / bin / edit (ou ~ / bin / edit )
sudo= # empty is false, non-empty is true
editor=nano # XXX check $EDITOR and $VISUAL
if test -e "$1" && test ! -w "$1"; then
if test -t 0 && test -t 2; then
printf "%s is not writable. Edit with sudo? [y/n] " "$1" 1>&2
read -n 1
case $REPLY in
y|Y)
sudo=true
;;
n|N)
sudo=
;;
*)
printf "\nExpected y or n. Exiting.\n" 1>&2
exit 1
;;
esac
else
printf "%s is not writable. Fix the permissions or run \"view\" instead." "$1" 1>&2
exit 1
fi
fi
${sudo:+sudo} "$editor" "$1"
E um comando que chamei view
para que você possa evitar a solicitação se souber que não fará nenhuma alteração.
/ usr / local / bin / view (ou ~ / bin / view )
editor=nano
readonlyflag=-v
"$editor" $readonlyflag "$1"
Já existe um programa chamado view
que faz parte do Vi / Vim, portanto, fique à vontade para sugerir um nome melhor.
(Mas acho que uma implementação completa desse programa tornaria view
redundante o Vi .)
Versões completas
vim
. Estou considerando a mesclagem ... embora também esteja considerando o fato de que instruções específicas do vim não funcionamnano
.