2013-09-03 3 views
0

내가 처음 이맥스에 기록 된 파일을 편집하고있어 지금은 정력에 일하고 있음을 야기한다. 한쪽에서 다른쪽으로 전환 할 때 I 홀수 문제에 실행 된 것 :이맥스는 두 개의 탭 문자

코드 일부 장소 겉보기 임의로, 두 개의 탭 (시각 모두 동등한 이멕스 코드 탭있다 에서

이맥스와 파이썬에서). 그러나 vim에서 이러한 탭 문자는 하나의 탭으로 표시됩니다.

때 I :

for i in range(total_pairs):$ 
     while 1:$ 
      rint = random.randint(0,total_pairs-1)$ 
      if(trialData[rint].cueDir == FORWARD):$ 
       trialData[rint].cueDir = BACKWARD$ 
       break$ 

이 코드는 여전히 하나의 방법을 실행하지만 그것은 상당히 짜증나 :으로 표시해야하지만

for i in range(total_pairs):$ 
^Iwhile 1:$ 
^I rint = random.randint(0,total_pairs-1)$ 
^I if(trialData[rint].cueDir == FORWARD)$ 
^I^ItrialData[rint].cueDir=BACKWARD$ 
^I^Ibreak$ 

: 설정 목록, 몇 줄과 같이 표시됩니다 예 읽다.

내가 실행

: 섞여있는, 그것은 대체 각^나는 하나 개의 탭으로, 대신이해야하는 두 개의 탭. 각^I 문자를 하나가 아닌 두 개의 탭으로 바꾸려면 어떻게해야합니까? 또한, 왜 이런 일이 일어나고 있습니까?

감사합니다.

답변

2

는 대답은 쉽게 (권장) 4 공백으로 각 탭을 교체하고 탭을 누르면 4 개 공간을 사용하는 에게 모두 이맥스과 정력을 설정 한.

+0

알 수 있습니다. 왜 내가 이전에 작동하지 않는다고 생각했는지 모르겠지만 제안은 효과가있었습니다. 나는'% s/\ t/~~~~~~~/g' 명령을 내렸다. (각각 ~는 하나의 공백과 동일하다. 제대로 포맷하는 법을 알 수 없다.) 나는 각각의 \ t를 8 개 공백으로 바꾸어야했다. 왜 그것이 일어나고 있는지 아직 확실하지 않습니다. –

+1

일부 편집자는 탭으로 재미있는 일을합니다. 이것이 공간을 권장하는 한 가지 이유입니다. –

1

실행할 때 : retab, 각^I를 두 개의 탭 대신 하나의 탭으로 바꿉니다.

:retabtabstop는 공간 각 탭 문자 (즉 ^I)를 대체한다. 귀하의 경우 tabstop은 분명히 4로 설정되어 있으므로 Vim은 파일의 각 ^I을 4 칸으로 바꿉니다. 각 ^I 8 공백을 대체 할 :retab를 기대한다면, :retab 전에 set tabstop=8를 사용합니다.

파이썬으로 혼합 들여 쓰기를 사용하지 않는, 실제 문제를 해결하기 위해; 탭을 위해 공백을 사용하기 위해 Emacs와 Vim을 설정하십시오.

:h expandtab, :h tabstop, :h softtabstop 및 자세한 내용은 :h shiftwidth 참조하십시오.

+1

BTW, "혼합 들여 쓰기 사용 안 함"문 : 혼합 들여 쓰기를 사용하는 것은 파이썬 3에서'TabError'입니다. 그리고 결코 PEP8과 호환되지 않았습니다. – ZyX