gpt4 book ai didi

vim - 如何修复vim中损坏的自动缩进

转载 作者:行者123 更新时间:2023-12-03 17:20:52 31 4
gpt4 key购买 nike

我正在尝试使用 vim 7.2(在 Windows XP 上)自动缩进和格式化一些 VHDL 和 Matlab 代码。为此,我尝试使用“gg=G”命令。但是,这不能正常工作。代码根本没有正确缩进。

举个例子,我有以下源代码,它已经正确缩进了:

% 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

如果我使用“gg=G”命令,我会得到:
% 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”块之后错误地缩进了代码。对于其他文件,我遇到了类似的问题(尽管不一定在第一个 if 块上)。

对于 VHDL 文件,我遇到了类似的问题。

我尝试使用 autoindent、smartindent 和 cindent 设置的不同组合。在浏览了这些论坛后,我还确保将“语法”、“文件类型”、“文件类型缩进”和“文件类型插件缩进”设置为开启。尽管如此,它还是行不通。另外,如果我执行“设置语法?”我得到 matlab 文件的“matlab”和正确的 vhdl 文件的“vhdl”。如果我执行“设置 indentexpr?”我得到 matlab 文件的“GetMatlabIndent(v:lnum)”和 vhdl 文件的“GetVHDLindent()”。

通过在另一台计算机(以前从未安装过 VIM)上全新安装 VIM 来尝试隔离问题(并确保它不是由我安装的其中一个 vim 插件引起的)。我在那台电脑上遇到了同样的问题(这就是为什么我认为我不需要给你 .vimrc,但如果你需要它,我也可以在这里上传)。

有任何想法吗?

最佳答案

this wiki 页面,用于解释 vim 中自动缩进的不同方法。

this您可以在页面上找到一个用于 matlab 的缩进文件,您可以将其与基于文件类型的缩进一起使用。 Here与 VHDL 类似。

关于vim - 如何修复vim中损坏的自动缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721676/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com