Nano através do Sudoedit = Sem cores

Nano através do Sudoedit = Sem cores

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:

  1. Sublime Text funciona muito bem agora graças aConselho de Stephen Kitt.

  2. 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.

  3. 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 sudoeditcopia 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 nanoacaba tratando o arquivo como um arquivo de texto padrão.

Se você puder reconfigurar nanopara 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-envpassa suas variáveis ​​de ambiente para o novo processo

informação relacionada