2010-04-27 4 views
5

Windows XP에서 vim 7.2를 사용하여 일부 VHDL 및 Matlab 코드를 자동으로 들여 쓰고 형식을 지정하려고합니다. 이렇게하려면 "gg = G"명령을 사용하려고합니다. 그러나 이것은 제대로 작동하지 않습니다. 코드가 전혀 들여 쓰여지지 않습니다. 나는 "GG = G"명령을 사용하는 경우vim에서 깨진 자동 들여 쓰기를 수정하는 방법

% This function is based on the code_g_generator() function 
function [v_code] = get_code(n_code_number) 
% There is no need to clear the persistent variables in this function 
mlock 
%% Initialize the internal variables 
persistent n_fifo_top; 
if isempty(n_fifo_top) 
    n_fifo_top = 1; 
end 

N_MEMORY_SIZE = 4; 
if n_code_number > 4 
    c_saved_code_fifo = {-1*ones(1, N_MEMORY_SIZE)}; 
end 

내가 얻을 :

% This function is based on the code_g_generator() function 
function [v_code] = get_code(n_code_number) 
% There is no need to clear the persistent variables in this function 
mlock 
%% Initialize the internal variables 
persistent n_fifo_top; 
if isempty(n_fifo_top) 
     n_fifo_top = 1; 
    end 

    N_MEMORY_SIZE = 4; 
    if n_code_number > 4 
     c_saved_code_fifo = {-1*ones(1, N_MEMORY_SIZE)}; 
    end 

당신에게 예를 제공하기 위해, 이미 제대로 들여 쓰기 한 다음 소스 코드를했다 보시다시피,이 예제에서 Vim은 첫 번째 "if"블록 다음에 코드를 들여 씁니다. 다른 파일의 경우 비슷한 문제가 발생합니다 (반드시 첫 번째 블록 일 필요는 없습니다).

VHDL 파일의 경우 비슷한 문제가 발생합니다.

나는 autoindent, smartindent 및 cindent 설정의 다른 조합을 사용하여 시도했습니다. 이러한 포럼을 거친 후에도 "구문", "파일 유형", "파일 유형 들여 쓰기"및 "파일 유형 플러그인 들여 쓰기"가 on으로 설정되어 있는지 확인했습니다. 그래도 작동하지 않습니다. 또한 "구문을 설정합니까?" matlab 파일에 대해서는 "matlab"을, 올바른 vhdl 파일에 대해서는 "vhdl"을 얻습니다. 그리고 만약 내가 "indentexpr을 설정합니까?" 나는 "GetMatlabIndent (v : lnum)"matlab 파일 및 "GetVHDLindent()"vhdl 파일을 얻습니다.

다른 컴퓨터에 VIM을 새로 설치하여 문제를 격리하고 (내가 설치 한 vim 플러그인 중 하나가 아닌지 확인하십시오) VIM을 설치 한 적이없는 경우, . 그 컴퓨터에서 나는 같은 종류의 문제를 겪는다. (내가 왜 당신에게 .vimrc를 줄 필요가 없다고 생각하지만, 필요하다면 여기에 업로드 할 수도있다.)

아이디어가 있으십니까?

답변

1

vim의 자동 들여 쓰기를위한 다른 방법에 대한 설명은 this 위키 페이지를 참조하십시오.

페이지에서 this 페이지에서 파일 유형 기반 들여 쓰기와 함께 사용할 수있는 matlab 용 들여 쓰기 파일을 찾을 수 있습니다. Here은 VHDL과 비슷한 것입니다.

관련 문제