2
我编写了一个Vim脚本,用于Fortran程序单元的自动填充,类型定义等,从vim-latex插件获取提示。作为构造名称使用的占位符正确缩进
此刻,如果我打<F5>
当光标上的字program
,我得到以下
PROGRAM <+program_name+>
USE <+used_module_name+>
IMPLICIT NONE
<++>
END PROGRAM <+program_name+>
与第一<+program_name+>
视觉选择和Vim在选择模式。这对我来说是完美的。
当我使用这种占位符作为IF
构造的标签时,问题就出现了。当我展开if
我得到
<+name+>: IF (<+logical expression+>) THEN
<++> ! this line is not indented => in turn the following are negative indented
ELSE IF (<+logical expression+>) THEN
<++>
ELSE
<++>
END IF <+name+>
其中第二行没有缩进由于(至少我想!)该字符串<+name+>
是不是有效的名称。因此,以下几行回退(显然,当if在第一列时,第二行是唯一错误的行)。
这也发生了DO
概念,但是,奇怪的是,不发生对SELECT CASE
结构:
<+name+>: SELECT CASE (<+case expression+>)
CASE (<+case selector+>)
<++>
CASE DEFAULT
<++>
END SELECT <+name+>
这就是为什么我认为soultion必须存在,并没有那么复杂。
考虑一个现有的片段解决方案可能是一个更好的主意,例如[UltiSnips](https://github.com/SirVer/ultisnips)。 [vim-snippets](https://github.com/honza/vim-snippets)片段集合可以与它一起使用,并且它有一个用于Fortran的片段。 –
我想我正确安装了UltiSnips,因为':help UltiSnips'能够工作,但是我没有设法安装vim-snippets。 –
你为什么觉得你没有设法安装'vim-snippets'?与其他插件不同,'vim-snippets'只是它不能“做”任何事情的数据。 –