vim-latexプラグインからキューを取って、Fortranプログラム単位、型定義などの自動補完用のVimスクリプトを書きました。構造体名として使用されるプレースホルダが正しい字下げを妥協する
瞬間にカーソルが単語program
上にある間、私は<F5>
を打つ場合、私は視覚的に選択モードで選択し、Vimの最初<+program_name+>
と、次の
PROGRAM <+program_name+>
USE <+used_module_name+>
IMPLICIT NONE
<++>
END PROGRAM <+program_name+>
を取得します。そして、これは私にとって完璧です。
このようなプレースホルダーをIF
構成のラベルとして使用すると問題が発生します。私はif
を展開すると私は2番目の行が原因事実にインデントされていない
<+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がある場合、2番目の行だけが間違っている)。
これもDO
構築物について起こる、しかし、不思議なこと、SELECT CASE
構築物については発生しません:
<+name+>: SELECT CASE (<+case expression+>)
CASE (<+case selector+>)
<++>
CASE DEFAULT
<++>
END SELECT <+name+>
そして、私はsoultionが存在し、非常に複雑であってはならないことだと思う理由です。
[UltiSnips](https://github.com/SirVer/ultisnips)などの既存のスニペットソリューションの1つを検討することをお勧めします。 [vim-snippets](https://github.com/honza/vim-snippets)コレクションのスニペットを使用することができ、Fortran用のスニペットがあります。 –
':help UltiSnips'が動作するので、私は正しくUltiSnipsをインストールしたと思いますが、vim-snippetsをインストールすることはできませんでした。 –
なぜ 'vim-snippets'をインストールできなかったのですか?他のプラグインとは異なり、 'vim-snippets'はデータだけで、何もしません。 –