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'只是它不能「做」任何事情的數據。 –