Nano부터 Sudoedit까지 = 색상 없음

Nano부터 Sudoedit까지 = 색상 없음

루트 소유 파일을 편집하기 위한 개인 별칭은 다음과 같습니다.

# 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 "$@"
}

끝부터 살펴보겠습니다.

  1. Sublime Text는 이제 훌륭하게 작동합니다.스티븐 키트의 조언.

  2. Xed도 잘 작동하는 것 같고 권한이 높아진 것을 보여주네요. 개인적으로 상기시키고 싶지 않지만 문제가 없는 것 같고 색상도 있고 일부도 필요하지 않았습니다.기다리다Sublime처럼 전환하세요.

  3. 내가 가진 문제는 다음과 같이 Nano에 있습니다.

    예전처럼 호출하면 다음과 같습니다.

    sudo nano /etc/nanorc
    

    색상이 있습니다.

    하지만 새 별칭으로 호출하면 다음과 같습니다.

    sunano /etc/nanorc
    

    색상이 전혀 없습니다.

    그래도 구성은 내가 구성한 것과 동일해 보이기 때문에 읽은 것 같습니다.

편집1:분명히 이 문제는 최소한 구성 파일에 영향을 미칩니다.

-rw-r--r-- 1 root root 8.6K Apr  8 02:30 /etc/nanorc

Bash 또는 C++와 같은 다른 파일은 색상이 지정되어 있어 혼란스럽습니다.

답변1

여기서 문제는 sudoedit파일을 편집기에서 열기 전에 임시 파일에 복사한다는 것입니다. 파일에 확장자가 있으면 동일한 확장자로 임시 파일이 생성되고 파일 이름 기반 구문 강조 모드가 적절하게 선택됩니다(예를 들어C 파일의 경우). 의 경우와 같이 파일에 확장자가 없으면 nanorc임의의 확장자로 생성됩니다. 이는 파일 이름 기반 구문 강조 모드 선택을 혼동하고 nano결국 파일을 표준 텍스트 파일로 취급하게 됩니다.

nano모든 파일을 구성 파일로 처리하도록 재구성할 수 있으면 nanorc*원하는 동작을 복원할 수 있습니다. 그렇지 않으면 이 문제를 자동으로 처리할 수 있는 방법이 있는지 확신할 수 없습니다.

답변2

노력하다

function sunano {
    export SUDO_EDITOR='/usr/local/bin/nano'
    sudoedit -E "$@"
    #        ^^ 
    #         add this
}

-E or --preserve-env환경 변수를 새 프로세스에 전달합니다.

관련 정보