Ich habe es gerade versucht nano, und was mich am meisten überrascht hat, ist, dass Sie nicht einmal gewarnt werden, dass die Datei schreibgeschützt ist, wenn Sie versuchen, die Datei zu bearbeiten. ( UPDATE: Anscheinend warnt Nano 2.2; 2.0 nicht. )
Hier ist ein (grundlegendes) Skript, das das macht.
Es überprüft, ob Sie die Datei bearbeiten können, und wenn Sie dies nicht können, wird stattdessen "nano" als root ausgeführt.
/ usr / local / bin / edit (oder ~ / 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"
Und einen Befehl, den ich aufgerufen viewhabe, damit Sie die Eingabeaufforderung umgehen können, wenn Sie wissen, dass Sie keine Änderungen vornehmen werden.
/ usr / local / bin / view (oder ~ / bin / view )
editor=nano
readonlyflag=-v
"$editor" $readonlyflag "$1"
Es gibt bereits ein Programm namens view"Vi / Vim". Sie können also einen besseren Namen vorschlagen.
(Aber ich denke, eine vollständige Implementierung dieses Programms würde Vi viewüberflüssig machen.)
Vollversionen
vim. Ich denke über die Zusammenführung nach ... obwohl ich auch überlege, dass vim-spezifische Anweisungen nicht funktionierennano.