2012-10-18 86 views
4

我最近切換到Vim,並且在最初的障礙之後,我非常喜歡它。唯一可能成爲交易殺手的是erb標籤的自動縮進全部搞砸了。我正在使用包含ruby.vim和rails.vim的Janus插件包。我還添加了html5.vim,因爲有人告訴我它可以提供幫助。Vim中ERB標籤的縮進

這裏是和示例搞砸縮進它的:

<% unless @zipcode.latitude.blank? %> 
    <p> 
    <b>Latitude:</b> 
    <%= @zipcode.latitude %> 
    </p> 
<% end %> 

    <p> 
    <b>Longitude:</b> 
    <%= @zipcode.longitude %> 
    </p> 

在所有任何建議,將不勝感激。似乎必須有一種方法可以讓像vim indent這樣的強大編輯器成爲可能。我討厭回到崇高或者aptana,但這是我真正不想生活的一個特徵。

+0

你是如何得到這個的? '=='後? – romainl

+0

gg = G就是這樣。此外,如果我只是在每行之後進入,儘管它自動縮進它也是錯誤的。 – isaacsloan

+0

在你的設置中'expandtab','shiftwidth'和'softtabstop'的值是多少?並且與你無關,你是否知道任何命令行程序,比如'Rack :: Tidy'或者類似於'HTMLTidy'的管理來正確縮進你的代碼? –

回答

2

我相信有2種可能的方式來解決您的問題。

首先,暫時刪除Janus分佈並用minimum .vimrc替換它。然後安裝ERuby plugin並查看它是否有效。如果它現在可行,那麼問題必須與其他插件衝突,您應該嘗試重新啓用不同的Janus插件以查看錯誤所在。但是,如果它仍然無法正常工作,那麼您知道插件本身不適用於您的系統,並且您可以向作者發送詳細的錯誤報告(包括您正在使用的操作系統和您的vim版本)。

或者,重新配置Vim以使用不同的縮進方法很容易。 你可以使用不同的內置壓痕(:h indentexpr),例如用於XML:

autocmd FileType eruby setl indentexpr=XmlIndentGet(v:lnum,1) 

或者你可以配置Vim來使用外部壓痕程序(:h equalprg)。

+0

我開始真的很少,它似乎工作。我似乎無法獲得我在janus工作中使用的所有內容,但我的縮進問題似乎已得到解決。謝謝。 – isaacsloan

+0

感謝您的幫助。甚至不能相信我在6年前就曾問過這樣愚蠢的問題。 – isaacsloan