Sudoedit의 Nano = 색상 없음

Sudoedit의 Nano = 색상 없음

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

# 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환경 변수를 새 프로세스에 전달

관련 정보