我对Vim和Go还很陌生。我想写一个简单的go文件。当我用:w
保存我的文件时,文件完全乱了。似乎没有任何语法或格式错误。似乎有一些autocmd正在运行,但我不知道是什么。我该如何调试它?这是我的档案:
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
api := router.Group("/api")
{
api.GET("/hello", func (ctx *gin.Context) {
ctx.JSON(200, gin.H{"msg": "world"})
})
}
router.NoRoute(func (ctx *gin.Context) {
ctx.JSON(http.StatusNotFound, gin.H{})
})
router.Run(":8080")
}
当我尝试在neovim中使用:w
保存时,我的文件变得一团糟。下面是:w
之后的文件:
package main
import (
"net/http"
api := router.Group("/api")
"github.com/gin-gonic/gin"
func main() {
router := gin.Default()
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
api := router.Group("/api")
{
ctx.JSON({
gi api.GET(n/hello", fu.c (c{x *gin.Consexg) {" c}x.JSON(
.StatusNotFound, gin.H{})})
}
router.NoRoute(func (ctx *gin.Conxt) {
ctxNStaus"github.com/gin-gonic/gin"
NotFound, gin.H{})
})
router.Run(":8080")
}
我不知道发生了什么事。
1条答案
按热度按时间sauutmhj1#
这应该意味着您正在使用
vim-go
plugin,默认配置为在保存Go文件时自动运行:GoFmt
。该文件会根据Go约定自动格式化。
例如,如果保存此文件:
它将被自动重写为正确的格式:
此外,您可以通过在vim配置文件中添加以下行来配置
vim-go
使用goimports
而不是gofmt
:这不仅可以格式化代码,还可以管理导入(例如,通过插入任何丢失的导入)。
如果您发现自动格式化导致问题或减慢Vim,您可以通过在vim配置文件中添加以下行来禁用此功能:
在禁用保存时自动格式化后,您仍然可以通过在Vim中运行
:GoFmt
来手动格式化代码。