使用'go fmt'工具向Vim发表评论

时间:2016-12-01 18:12:59

标签: vim go

Golang有一个名为'gofmt'的工具可以格式化你的代码。我正在使用vim-go插件,每次保存文件时都会触发'gofmt'工具。

Golang使用标签进行缩进。我在以下示例中将标签标记为[ ]

这是我遇到的一个问题:

我有以下代码:

func main() {
[  ]if true {
[  ][  ]do.Something()
[  ]}
}

我需要评论if条款。 所以,如果我像下面这样评论(我正在使用nerd-commenter):

func main() {
//[  ]if true {
//[  ][  ]do.Something()
//[  ]}
}

Gofmt将其格式化为:

func main() {
[  ]//[  ]if true {
[  ]//[  ][  ]do.Something()
[  ]//[  ]}
}

如果我这样做:

func main() {
[  ]//if true {
[  ][  ]//do.Something()
[  ]//}
}

Gofmt将其格式化为:

func main() {
[  ]//if true {
[  ]//do.Something()
[  ]//}
}

我需要评论if子句,如下所示:

func main() {
[  ]//if true {
[  ]//[  ]do.Something()
[  ]//}
}

然后Gofmt不会更改评论的块。 我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我这样做的方法是使用块模式插入。

  • 将光标放在i的{​​{1}}上。
  • if开始插入模式,然后按<C-v>将其向下移动两行。
  • jj进入“Visual-Block insert”,它将在每个行的块选择开头插入文本(请参阅v_b_I)。
  • I添加//<Esc>并保留视觉区块插入模式。

哪个应该能给你你想要的东西:

enter image description here