Nano através de Sudoedit = Sem cores

0

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 tirar do final:

  1. O Sublime Text funciona muito bem graças ao conselho de Stephen Kitt .

  2. Xed parece funcionar bem também, isso mostra que os privilégios são elevados, o que pessoalmente não gosto de ser lembrado, mas parece não haver problema com isso, as cores estão lá e não Ainda preciso de algum wait switch como Sublime.

  3. O problema que tenho é com o Nano da seguinte forma:

    Se eu invoco como estava acostumado, por exemplo:

    sudo nano /etc/nanorc
    

    As cores estão lá.

    Mas se eu chamar com o novo alias:

    sunano /etc/nanorc
    

    Não há cores.

    A configuração parece ter sido lida, porque parece a mesma que eu configurei.

EDIT1: Aparentemente, esse 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.

    
por Vlastimil 08.04.2017 / 02:55

2 respostas

1

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 em nome de arquivo são selecionados adequadamente ( por exemplo, para arquivos C). Quando o arquivo não tem uma extensão, como é o caso de nanorc , ele é criado com um ramal aleatório; isso confunde a seleção do modo de destaque da sintaxe baseada em nome de arquivo, e nano acaba tratando o arquivo como um arquivo de texto padrão.

Se você puder reconfigurar nano para tratar qualquer arquivo nanorc* como um arquivo de configuração, poderá restaurar o comportamento que está buscando. Caso contrário, não tenho certeza se há uma maneira de lidar com isso automaticamente.

    
por 08.04.2017 / 10:17
0

tente

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

    
por 08.04.2017 / 04:48