2013-05-05 4 views
0

그래서 (분명히) 문제가 있습니다. 내가 interesting article about "Smart Tabs" 읽고,이 이맥스에서 테스트하고 완벽하게 잘 작동합니다.빔 : 들여 쓰기/정렬 문제

그래서 저는 이것을 vim에서 시도했기 때문에 현재 이맥스를 사용하고 있습니다. 다음은 들여 쓰기와 관련이 있다고 생각되는 .vimrc의 행입니다.

set autoindent    " auto/smart indentation 
set cindent 
set preserveindent 
set copyindent 
set smarttab     " tab and backspace are smart 
set tabstop=4     " 4 spaces 
set softtabstop=4 

당신은 my vimrc is here for you, 아래에 설명 된대로 다른 뭔가가 예기치 않은 동작의 원인이 될 수 있다고 생각합니다.

예상되는 동작

나는 샘플 프로그램은 내가 코드 만 입력하고 모든 그리 자주 엔터 키를 눌러로, 다음과 같이하고자합니다. 이 -이다

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main (int argc, char *argv[]) 
{ 
-> printf ("%s\n", 
-> ........teststring); 
-> function_with_many_arguments (bacon, 
-> ..............................indentation, 
-> ..............................problems); 
-> return 0; 
} 
</pre> 

, 나는 정력 만 들여 쓰기 탭을 사용하려면 ("."는 각각 ">는"탭을 나타내고, 각각의 공백을 나타냄); 정렬을 위해 NEVER. 누군가가 탭 크기를 줄이면 탭 수가 같은 문자 수에 관계없이 함수 호출과 여러 줄 인수 집합이 제대로 정렬되기를 바랍니다.

현재 동작은

내가 찾을 수있는 모든 자원을 검토 한 결과, 그리고 내가 함께 내 vimrc에 넣어 방법입니다. 내가 잘못 뭐하는 거지

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main (int argc, char *argv[]) 
{ 
-> printf ("%s\n", 
-> -> -> teststring); 
-> function_with_many_arguments (bacon, 
-> -> -> indentation, 
-> -> -> problems); 
-> return 0; 
} 

: 는 지금, 대신 예상되는 동작을하는이 코드 대신 모습입니다? 어떤 정렬이라도 모든 탭 정렬이 두 개의 탭 문자 인 것처럼 보입니다. 그리고 나는 그것을 대신 오른쪽 공백에 들여 쓰려고합니다.

+1

': set cino = (0' taken taken form [here] (http://stackoverflow.com/questions/88931/lining-up-function-parameter-lists-with-vim) – FDinoff

+0

링크 된 복제본은 불행하게도 Vim에서 자동으로 얻기가 어렵다. (혼합 탭/공백) 들여 쓰기 부분에 대답해라. –

답변

0

클락 완성으로 YouCompleteMe 플러그인을 사용하기 시작했을 때이 문제가 저에게서 멀어 졌다고 생각합니다. Btw는 Vim에서 C를 진지하게 원한다면 최고의 플러그인 중 하나입니다.