2010-12-21 64 views
5

我想多次在Vim中重複一個命令,直到某個條件滿足,而不是多次,這一事情發生在我身上。例如,假設我想使這個代碼整潔:Vim:重複命令「直到條件」而不是「次數」

Ogre::String GetConfigPath() const { return m_configPath; } 
Ogre::String GetConfigName() const { return m_configName; } 
Ogre::String GetConfigFileName() const { return m_configPath + m_configName + ".txt"; } 
Ogre::String GetConfigStateFileName() const { return m_configPath + m_configName + "-state.txt"; } 
Ogre::String GetConfigStatisticsFileName() const { return m_configPath + m_configName + "-statistics.txt"; } 
Ogre::String GetConfigDetailedStatisticsFileName() const { return m_configPath + m_configName + "-detailed_statistics.txt"; } 

我最常做的是去功能與最長的名字,請按「Tab」然後對齊的其他功能的其他括號匹配這一個。顯然,現在的任務是在其他函數的大括號之前添加空格,直到光標處於位置,例如80(最長函數的大括號的位置)。

有沒有反覆的命令,直到光標在位置x?

這只是一個例子,我經常需要重複一個命令,直到某個條件滿足。

有什麼想法?

+3

對於這個非常特殊的情況,你可以使用Align插件:http://www.vim.org/scripts/script.php?script_id=294要回答你的問題,更普遍的意義,我不知道如何除了針對每種情況開發特定功能之外,您可以處理任意條件。 – 2010-12-21 16:27:03

+0

哇,我不相信我自己:-)是的,說實話,我總是想到「條件編輯」而不是「重複編輯」。如果你想抽象編輯,它是一種特殊的編程方式,因爲你總是有編輯規則(即使編寫非編程文本)。聽上去怎麼樣?! – Rafid 2010-12-21 16:29:34

回答

3

我不知道如何通過vim做到這一點,但我相信你應該嘗試Align腳本。

相關問題