나노에서 8 문자 대신 탭 문자를 4 공백으로 만드는 방법은 무엇입니까?


152

nano편집기에서 Tab 키를 누르면 커서가 다음과 같이 8 칸 이동합니다.

def square(x):
        return x * x
def cube(y):
        return y * y * y

탭 정지 너비를 4 칸으로 설정하여 다음과 같이 표시하려면 어떻게해야합니까?

def square(x):
    return x * x
def cube(y):
    return y * y * y

나노는 꽤 기본적인 편집기입니다. 지원하지 않을 가능성이 높습니다.
millimoose 2016 년

음, 나노뿐만 아니라 터미널에서 파이썬 인터프리터를 사용할 때 8 칸 들여 쓰기도합니다.
Fallen Satan

2
이것은 수퍼 유저에 대한 답변이며 중복으로 닫아야합니다. superuser.com/questions/110421/tab-character-width-in-terminal
millimoose

6
@millimoose, 터미널에서 탭 정지를 변경해도 나노에 영향을 미치지 않습니다. 이 질문은 구체적으로 nano 또는 Python의 탭 중지 설정에 관한 것이지만 tab명령으로 탭 중지를 대화식으로 설정 하는 것이 아니라 모든 프로그램에 영향을 미치지는 않습니다.
Chris 페이지

답변:


253

파이썬 과 같은 언어로 nano를 사용하는 경우 (예와 같이) 탭을 공백으로 변환하는 것이 좋습니다.

~ / .nanorc 파일을 편집 하거나 생성하십시오 :

set tabsize 4
set tabstospaces

이미 탭이있는 파일을 가지고 공백으로 변환하려면 expand명령 (쉘)을 권장합니다 .

expand -4 input.py > output.py

나는 민트를 사용하고 / etc / nanorc에서 tabsize를 8에서 4로 설정하고 파일로 돌아갈 때 여전히 탭에 8 개의 공백이 생겼습니다. 나는 nanorc 파일을 ~ /에 복사하려고했습니다. 그러나 그것은 작동하지 않고 닫히고 터미널을 다시 열지 만 nano -T4를 사용하지 않으면 탭에 4 개의 공백을 얻을 수 없습니다. 감사합니다
Alex

@Alex 파일이 점이 .nanorc아닌 점으로 시작하는지 다시 확인하십시오 nanorc. 이것은 사용자의 홈 디렉토리에 있어야합니다 /home/your-username/.nanorc.
Sven Rojek

1
고마워, 나는 / etc에있는 것과 다른 다른 .nanorc를 만들어서 홈 디렉토리에 넣고 작동했습니다. 이것은 내가 관심있는 모든 사람들을 위해 새로운 .nanorc에 포함 된 유일한 3 줄입니다 : nowrap 설정, tabsize 4 설정 및 tabstospaces 설정
Alex

5
이것이 당신의 장난감이라면,이 변경 사항을 시스템 전체에서 사용할 수있게 만들면됩니다 /etc/nanorc. 즐길 수있는 몇 가지 다른 옵션이 있습니다.
fcm

안녕하세요 @Alexey. 이 Linux Shell 명령은 모든 파일에서 작동하지만 다른 출력 파일을 지정해야합니다. 그렇지 않으면 파일이 비워집니다.
Sven Rojek

91

명령 줄 플래그

보낸 사람 man nano:

-T cols (--tabsize=cols)
    Set the size (width) of a tab to cols columns.
    The value of cols must be greater than 0. The default value is 8.
-E (--tabstospaces)
    Convert typed tabs to spaces.

예를 들어, 탭 크기를 4로 설정하고 탭을 공백으로 바꾸고 "foo.txt"파일을 편집하려면 다음 명령을 실행하십시오.

nano -ET4 foo.txt

구성 파일

보낸 사람 man nanorc:

set tabsize n
    Use a tab size of n columns. The value of n must be greater than 0.
    The default value is 8.
set/unset tabstospaces
    Convert typed tabs to spaces.

~/.nanorc파일을 편집하고 (없는 경우 작성) 해당 명령을 파일에 추가하십시오. 예를 들면 다음과 같습니다.

set tabsize 4
set tabstospaces

Nano는 시작할 때마다 이러한 설정을 기본적으로 사용하지만 명령 줄 플래그는이 설정을 무시합니다.


음 ... ~ / 디렉토리에서 .nanorc 파일을 찾을 수 없습니다
Fallen Satan

1
확인 결코 마음. / etc 디렉토리에 nanorc가 있습니다. 그래도 감사합니다
Fallen Satan

5
@FallenSatan, 일반적으로 시스템 전체의 사용자 정의를 수행 할 필요가 없으면 / etc / nanorc를 편집하지 마십시오. ~ / .nanorc가없는 경우이를 작성하고 사용자 정의를 거기에 두십시오.
Chris 페이지

1
위의 답변에서 "set tabspace 4"가 아닌 "set tabsize 4"행을 추가해야합니다.
Thomas N

1
sudo nano는 명백한 이유로 ~ / .nanorc를 사용하지 않습니다. 따라서 명령 행 플래그는 문제에 대한보다 실용적인 해결책입니다.
user608800 2016 년

11

nano 2.2.6에서 ~ / .nanorc의 행은 다음과 같습니다.

set tabsize 4

tabspace를 설정하면 '알 수없는 플래그 "tabspace"'오류가 발생했습니다.


4

장래의 시청자들을 위해, / etc / nanorc 파일에 153 행 근처에 "set tabsize 8"이라는 행이 있습니다. 단어는 탭 공간이 아닌 탭 크기 여야합니다. 8을 4로 바꾸고 주석 처리를 제거한 후 문제가 해결되었습니다.



0

이 오래된 질문을 우연히 발견 할 수있는 사람이라면 ...

해결해야 할 것이 하나 있습니다.

~/.nanorc은 사용자 별 설정을 nano에 적용하는 데 사용되므로 sudo nano권한을 사용해야하는 파일을 편집하는 경우에는 작동하지 않습니다.

sudo사용자 정의 사용자 구성 파일을 사용 하는 경우 프로그램을 열 때 계정에서 프로그램을 실행하지 않으므로 구성 변경 사항 ~/.nanorc이 적용 되지 않으므로 프로그램을 열 때로드되지 않습니다 .

이 상황이 자신 의 구성 설정 을 실행 sudo nano 하고 사용 하려는 경우 다음 세 가지 옵션이 있습니다.

  • 실행할 때 명령 행 플래그 사용 sudo nano
  • /root/.nanorc파일 편집
  • /etc/nanorc전역 설정 파일 편집

명심 /etc/nanorc글로벌 설정 파일과 같은 그것은 또는 다중 사용자 시스템을 가지고 있는지 여부에 따라 문제가되지 않을 수도 있습니다 모든 사용자에게 영향을줍니다.

또한 사용자 구성 파일은 전역 파일보다 우선하므로 편집 /etc/nanorc하고 ~/.nanorc다른 설정을 사용하면 실행할 때 설정 nano이로드 ~/.nanorc되지만 실행하면 sudo nano에서 설정이로드됩니다 /etc/nanorc.

같은가 간다 /root/.nanorc우선합니다이 /etc/nanorc실행할 때sudo nano

당신이하지 않는 한 플래그를 사용하면 아마 가장 좋은 방법입니다 많은 옵션을.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.