我想使用vim向列表中的對象添加新字段。每個對象的行數不相同。但是,每個對象的最後一個字段是相同的。在VIM中錄製宏時搜索字符串
新字段對於每個對象都是相同的,所以我想我可以創建一個vim宏,它將在每個對象的末尾插入靜態字段,並在前一行插入一個逗號。我的問題是,我無法在宏記錄器中執行字符串搜索,但是。
這裏是什麼,我試圖完成一個例子:
Input: [ { "prop1": 10, "prop2": 30, "last": 99 }, { "prop1": 80, "last": 10 }, { "propA": 33, "propB": 90, "propC": 38, "last": 100 } ]
Desired Output: [ { "prop1": 10, "prop2": 30, "last": 99, "new": 0 }, { "prop1": 80, "last": 10, "new": 0 }, { "propA": 33, "propB": 90, "propC": 38, "last": 100, "new": 0 } ]
我試圖通過鍵入以下到VIM來實現:q q /last ENTER $ a , ESC p q
。我已將"new: 0
複製到我的剪貼板。看起來搜索部分不工作,因爲每次運行宏時,都會粘貼光標開始的行而不是行上的下一個字符串「last」。
謝謝你的解決方案的關鍵。我嘗試了你提供的同一個宏,但是我意識到雖然在vi模式下它不能在Sublime Text中工作,但是它在我在unix終端中運行vi時起作用。我會接受你的回答,因爲它確認了我最初的嘗試,並說服我在終端試用。 –
**宏是爲了在vi/vim **中運行。如果你想在崇高使用它是一個**不同的編輯器**,你需要檢查綁定,並知道什麼是支持和什麼不是復古包。那時你可以知道並理解它爲什麼不起作用。 –