2010-04-27 74 views
5

Tôi đang cố gắng sử dụng vim 7.2 (trên Windows XP) để tự động thụt lề và định dạng một số mã VHDL và Matlab. Để làm như vậy, tôi đang cố gắng sử dụng lệnh "gg = G". Tuy nhiên điều này không hoạt động đúng. Mã hoàn toàn không thụt lề.Cách sửa lỗi thụt lề tự động bị hỏng trong vim

Để cung cấp cho bạn một ví dụ, tôi đã có đoạn mã sau nguồn, mà đã được thụt vào đúng:

% 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 

Nếu tôi sử dụng "gg = G" lệnh tôi nhận được:

% 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 

Như bạn thấy, trong ví dụ này, Vim không chính xác thụt lề mã sau khối "if" đầu tiên. Đối với các tập tin khác tôi nhận được vấn đề tương tự (mặc dù không nhất thiết phải vào đầu tiên nếu khối).

Đối với các tệp VHDL, tôi gặp sự cố tương tự.

Tôi đã thử sử dụng các kết hợp khác nhau của cài đặt tự động, thông minh và cindent. Sau khi đi qua các diễn đàn này, tôi cũng đã đảm bảo rằng "cú pháp", "filetype", "filetype indent" và "filetype plugin indent" được đặt thành bật. Tuy nhiên, nó không hoạt động. Ngoài ra, nếu tôi "thiết lập cú pháp?" Tôi nhận được "MATLAB" cho các tập tin MATLAB và "VHDL" cho các tập tin VHDL đó là chính xác. Và nếu tôi làm "đặt indentexpr?" Tôi nhận được "GetMatlabIndent (v: lnum)" cho các tập tin MATLAB và "GetVHDLindent()" cho các tập tin vhdl.

Để cố tách biệt vấn đề (và đảm bảo rằng nó không phải do một trong các plugin vim mà tôi đã cài đặt) bằng cách cài đặt VIM mới trên một máy tính khác (trong đó VIM chưa từng được cài đặt trước đó) . Trên máy tính đó tôi nhận được cùng một loại vấn đề (đó là lý do tại sao tôi không nghĩ rằng tôi cần phải cung cấp cho bạn .vimrc, nhưng nếu bạn cần nó tôi có thể tải nó ở đây quá).

Bất kỳ ý tưởng nào?

Trả lời

1

Xem this trang wiki để giải thích các phương pháp khác nhau cho thụt lề tự động trong vim.

Trên this trang, bạn có thể tìm thấy tệp thụt lề cho MATLAB mà bạn có thể sử dụng với thụt lề dựa trên filetype. Here tương tự với VHDL.

Các vấn đề liên quan