所以我們可以說我現在的宏:VIM:有一個宏跳轉到某一位置
map! \aa aabbccdd
,我想它,以便每當命令執行時,該文本將被打印,並且光標將在一個特定的字符(比方說b的第一個出現)。我需要什麼才能讓我的宏將光標移動到b的第一次出現處,無論何時使用它?
所以我們可以說我現在的宏:VIM:有一個宏跳轉到某一位置
map! \aa aabbccdd
,我想它,以便每當命令執行時,該文本將被打印,並且光標將在一個特定的字符(比方說b的第一個出現)。我需要什麼才能讓我的宏將光標移動到b的第一次出現處,無論何時使用它?
如果我正確理解您的問題,您希望您的宏插入aabbccdd
並將光標移到第一個b
。這是做這件事:
map \aa mziaabbccdd<Esc>`zfb
當然,在找到第b
是不是真的有用,並且可能無法很好的轉化爲你真正的問題。
A 宏只是對命令和輸入文本的記錄。因此,您「正常」用來定位光標的任何動作也會在其中捕獲。
因此,在您的示例中,您可以用`[
跳到您輸入的文本的開始位置,然後繼續前進到並使用fb
。將這兩個動作追加到宏錄製結束時,就完成了!
這是不是很清楚你在問什麼。如果你在前後提供了一個真實的例子,那會更好。就目前而言,您的映射會將'abbccdd'附加到緩衝區(第一個'a'算作append並將您置入插入模式)。這是你想要做的嗎? – Conner