Vim: повторяющиеся команды «до условия», а не «количество раз» - PullRequest
5 голосов
/ 21 декабря 2010

Мне часто случается, что я хочу повторить команду в 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?

Это всего лишь пример, и мне часто приходится повторять команду, пока не будет выполнено определенное условие.

Есть идеи?

1 Ответ

3 голосов
/ 21 декабря 2010

Я не знаю, как сделать это только через vim, но я считаю, что вы должны попробовать скрипт Align .

...