我想像這樣將name財產移動到街區的頂部。
一個檔案中有很多resouce塊。
前
resource "datadog_monitor" "A" {
enable_logs_sample = "true"
name = "name"
tags = ["env:dev"]
}
resource "datadog_monitor" "B" {
enable_logs_sample = "true"
name = "name"
tags = ["env:dev"]
}
后
resource "datadog_monitor" "A" {
name = "name"
enable_logs_sample = "true"
tags = ["env:dev"]
}
resource "datadog_monitor" "B" {
name = "name"
enable_logs_sample = "true"
tags = ["env:dev"]
}
uj5u.com熱心網友回復:
好的,我認為:help :global范圍/地址機制是 Vim 最好和最被低估的功能之一,因此它可能值得詳細介紹。
核心編輯模式與我在之前對您的類似問題的回答中建議的命令相同:
- 在匹配特定正則運算式模式的每一行上,
- 做一點事。
請注意,這是一種“模式”,而不是一次性的把戲。您不應該背誦這個答案,或者將其提交給“肌肉記憶”,或者在下次遇到完全相同的問題時將其添加為書簽。相反,您應該以一種允許您:
- 認識到可能派上用場的情況,
- 應用它沒有太多思考。
因此,為了實作上述編輯模式,我們使用:global命令,其作業方式如下:
:[range]global/<pattern>/[range]<command>
在哪里:
- 在
range(可選,默認為%), - 標記每一行匹配
<pattern>, - 然后執行
<command>(range可選,默認為.)。
就像 Vim 中的很多東西一樣,:global它在概念上很酷,但不一定有用。你對范圍/地址越熟悉,你知道的 Ex 命令越多,它就越有用。
在這種特定情況下,范圍并不重要,但地址和 Ex 命令卻很重要……它們的總和使得這些問題可以在 IMO 中以一種非常直觀的方式解決。
現在,讓我們回到我們的問題:
將每個“名稱”行移動到塊的頂部
并用與我們的編輯模式相匹配的術語來表達:
- 標記每一行匹配
name, - 然后將其移至匹配上方最近的行下方
resource。
這是一個簡單的:
:g/name/m?resource?
當然,要使用的確切正則運算式模式取決于背景關系。
訣竅是內化模式,以便您已經知道如何使用您可能遇到的任何新構建塊。
這里真的沒有什至像神一樣的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/430960.html
上一篇:按日期映射和排序資料
下一篇:根據值對字典進行排序
