vscode 中 格式化 vue 如何不自动换行

目前格式化的时候经常会自动换行
eg:

return wepy.chooseImage({
    count: 1,
    sizeType: "original"
}).then(res => res.tempFilePaths[0]);

会被格式化为

return wepy
    .chooseImage({
        count: 1,
        sizeType: "original"
    })
    .then(res => res.tempFilePaths[0]);

如何才能关掉自动换行的呢?

阅读 43.7k
11 个回答

楼上的配置已经失效。
看看我js的自动格式化

  this.xjLink =
    h5 +
    '/aaa/bbb/home?token=' +
    token +
    '';

看的我尴尬癌都犯了,真心受不了,这开发不是哪抽疯了。
真实原因是:默认对JS使用了prettier.
user config 增加以下解决
{

"vetur.format.defaultFormatter.js": "vscode-typescript",

}

2019/1/2 最新解决办法 (版本1.30.1) :

    "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            "wrap_attributes": "aligned-multiple"
        },
        "prettyhtml": {
            "printWidth": 100,
            "singleQuote": false,
            "wrapAttributes": false,
            "sortAttributes": false
        }
    },
    "vetur.format.defaultFormatter.html": "js-beautify-html",

即可使得 vue 元素不再折行 ;

关于 "vetur.format.defaultFormatterOptions""vetur.format.defaultFormatter.html" , 在楼上其他大神的答案中已有讲解, 这里就不再啰嗦 ;

// 对属性进行换行。
// - auto: 仅在超出行长度时才对属性进行换行。
// - force: 对除第一个属性外的其他每个属性进行换行。
// - force-aligned: 对除第一个属性外的其他每个属性进行换行,并保持对齐。
// - force-expand-multiline: 对每个属性进行换行。
// - aligned-multiple: 当超出折行长度时,将属性进行垂直对齐。

  "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            "wrap_attributes": "auto",
        }
     },

默认alt+z 试试

  "vetur.format.defaultFormatter.html": "js-beautify-html",
  "vetur.format.defaultFormatterOptions": {
    "js-beautify-html": {
      "wrap_attributes": "aligned-multiple"
    }
  },
  "vetur.format.defaultFormatter.js": "vscode-typescript",

(vscode配置)[https://blog.csdn.net/win7583...]

其实去看下prettier的设置就好,不需要将vetur.format.defaultFormatter.js改成vscode-typescript

"prettier.singleQuote": true, // 用单引号
"prettier.semi": true, // 句末加分号
"prettier.printWidth": 200, // 换行字符串阈值
"prettier.trailingComma": "none", // 最后一个对象元素加逗号
"prettier.arrowParens": "avoid", // (x) => {} 是否要有小括号
"prettier.proseWrap": "preserve", // 是否要换行
"vetur.format.defaultFormatter.js": "prettier", // vetur 使用 prettier格式化代码

这是因为在VSCode1.7.2中替换了内置格式化插件。解决办法是在VScode设置(setting.json)中,配置如下规则

{
   "prettier.singleQuote": true,
   "prettier.semi": false,
   "vetur.format.defaultFormatter.html": "js-beautify-html",
   "vetur.format.defaultFormatterOptions": {
      "wrap_attributes": "force-aligned"
    }
}

即可解决题主问题。详情见 vuejs/vetur#476

新手上路,请多包涵

图片描述

有点受不了了,
能不能让他 不管 换行呢。
我把 prettier.printWidth 设置 短了 他就 换行我不想换行的,
我把 prettier.printWidth 设置 长了 他给我来个 一行
受不鸟了。
谁来帮帮我

设置 printWidth: 500 可以

"prettyhtml": {
            "printWidth": 500,
            "singleQuote": false,
            "wrapAttributes": false,
            "sortAttributes": true,
            "useTabs": true,
            "proseWrap": "preserve",
        }
新手上路,请多包涵
"beautify.config": { "brace_style": "none,preserve-inline", "indent_size": 2 }

这样就不换行了,但是感觉格式化的不彻底,有没有人有思路

如果是.vue文件,vscode中的setting.json这样配置即可。

"vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            "wrap_attributes": "auto"
        }
    },
    "vetur.format.defaultFormatter.html": "js-beautify-html",
    "vetur.format.defaultFormatter.js": "vscode-typescript"

记得装一下vetur和beautify插件。

推荐问题
logo
Microsoft
子站问答
访问
宣传栏