Acabo de intentarlo nano, y lo que encontré más sorprendente es que ni siquiera te advierte que el archivo es de solo lectura cuando comienzas a tratar de editarlo. ( ACTUALIZACIÓN: aparentemente nano 2.2 advierte; 2.0 no. )
Aquí hay un script (básico) que hace eso.
Comprueba si puede editar el archivo y, si no puede, ejecuta "nano" como root en su lugar.
/ usr / local / bin / edit (o ~ / 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"
Y un comando que llamé viewpara que pueda evitar el aviso si sabe que no va a realizar ningún cambio.
/ usr / local / bin / view (o ~ / bin / view )
editor=nano
readonlyflag=-v
"$editor" $readonlyflag "$1"
Ya hay un programa llamado viewque forma parte de Vi / Vim, así que siéntete libre de sugerir un nombre mejor.
(Pero creo que una implementación completa de este programa haría que Vi sea viewredundante).
Versiones completas
vim. Estoy considerando la fusión ... aunque también estoy considerando el hecho de que las instrucciones específicas de vim no funcionaránnano.