
Aqui estão meus aliases pessoais para editar arquivos de propriedade raiz:
# CLI superuser nano; compiled; version 2.8.0
function sunano {
export SUDO_EDITOR='/usr/local/bin/nano'
sudoedit "$@"
}
# GUI superuser xed; packaged; version 1.2.2
function suxed {
export SUDO_EDITOR='/usr/bin/xed'
sudoedit "$@"
}
# GUI superuser sublime-text; packaged; version 3126
function susubl {
export SUDO_EDITOR='/opt/sublime_text/sublime_text -w'
sudoedit "$@"
}
Deixe-me começar do final:
Sublime Text funciona muito bem agora graças aConselho de Stephen Kitt.
O Xed parece funcionar bem também, mostra que os privilégios estão elevados, o que eu pessoalmente não gosto de ser lembrado, mas parece não haver problema com isso, as cores estão lá e nem precisou de algumasesperemude como Sublime.
O problema que tenho é com o Nano da seguinte forma:
Se eu invocá-lo como estava acostumado, por exemplo:
sudo nano /etc/nanorc
As cores estão lá.
Mas se eu ligar com o novo alias:
sunano /etc/nanorc
Não há nenhuma cor.
A configuração parece ter sido lida, porque parece igual à que eu configurei.
EDITAR1:Aparentemente este problema afeta no mínimo o arquivo de configuração:
-rw-r--r-- 1 root root 8.6K Apr 8 02:30 /etc/nanorc
Outros arquivos, por exemplo, Bash ou C++ são coloridos, estou confuso.
Responder1
O problema aqui é que sudoedit
copia o arquivo para um arquivo temporário antes de abri-lo no editor. Quando o arquivo tem uma extensão, o arquivo temporário é criado com a mesma extensão e os modos de realce de sintaxe baseados no nome do arquivo são selecionados apropriadamente (por exemplopara arquivos C). Quando o arquivo não possui extensão, como é o caso do nanorc
, ele é criado com uma extensão aleatória; isso confunde a seleção do modo de realce de sintaxe baseado no nome do arquivo e nano
acaba tratando o arquivo como um arquivo de texto padrão.
Se você puder reconfigurar nano
para tratar qualquer nanorc*
arquivo como um arquivo de configuração, poderá restaurar o comportamento desejado. Caso contrário, não tenho certeza se há uma maneira de lidar com isso automaticamente.
Responder2
tentar
function sunano {
export SUDO_EDITOR='/usr/local/bin/nano'
sudoedit -E "$@"
# ^^
# add this
}
-E or --preserve-env
passa suas variáveis de ambiente para o novo processo