【问题标题】:How to comment JSX code out in .js files in VSCode?如何在 VSCode 的 .js 文件中注释 JSX 代码?
【发布时间】:2016-11-23 19:20:55
【问题描述】:

与 webstorm 不同,我无法在 Visual Studio Code 的 .js 文件中注释 JSX 代码。

【问题讨论】:

  • 您是在寻找捷径还是只是在寻找捷径?
  • @erichardson30 我想知道怎么做!快捷方式 cmets 通过执行“//”来编码,但显然这不起作用。我希望它改为“/* */”。

标签: reactjs react-native visual-studio-code jsx


【解决方案1】:

对于窗口,请按照以下步骤操作:

  1. 选择您在评论下添加的行。
  2. shift+{
  3. shift+alt+a

享受:)

【讨论】:

    【解决方案2】:

    首先在 VSCode 中安装 Babel 扩展,然后选择该行并使用 ctrl + / 在窗口中
    cmd + / 在 mac 中进行评论

    【讨论】:

    • 还有 ctrl + shift + / 会给你一个块评论。
    • 我正在使用 VS Code v1.15.1,我仍然可以使用 Ctrl + / 注释掉 无需安装 Babel 扩展
    【解决方案3】:

    显然 vs 代码不会在 jsx 上使用 ctrl + /cmd + / 自动生成 cmets,所以我们必须手动编写 {/* text go here */}

    编辑:从 vs 代码卸载 Babel 扩展,jsx cmets 将从 ctrl + /cmd + / 开始

    【讨论】:

      【解决方案4】:

      我卸载了 SUBLIME BABEL JOSH PENG,它可以工作了

      之前://

      之后:

      {/* */}

      使用 React JavaScript 并且它是 WORK :-)

      【讨论】:

        【解决方案5】:

        我在这个问题上花了几个小时,我找到的最简单的解决方案如下: 是的,正如许多人注意到的那样,安装 Babel ES6/ES7 扩展程序会出现问题, 当您卸载或停用它时,VScode 会检索它的正常行为: Ctrl + / => 为使用// 为 JS、JSX、... 文件选择的行或块切换行注释; Shift + Alt + A => 切换在 HTML 文件中的 <!-- --> 之间、JS 表达式中的 /* */ 之间以及 JSX 文件中的 {/* */} 之间选择的行或块的块注释用于标记在渲染/返回... 所以如果你想让 Babel ES6/ES7 扩展保持活跃并且仍然有这样的行为: 您可以在文件 keybindings.json 中参数您自己的快捷键绑定组合 ( File/Preferences/Keyboard Shortcuts (或 Ctrl+K+S) 然后点击右上角的小文件图标 选择打开键盘快捷键至极打开keybindings.json) 使用 VScode 内置命令“editor.action.insertSnippet”的地方如下:

        [
            {
            "key": "shift+alt+a",
            "command": "editor.action.insertSnippet",
            "args": {
                "snippet": "{/*\n ${TM_SELECTED_TEXT} \n*/}$0"
            },
            "when": "editorLangId == 'javascript' && editorTextFocus && !editorReadonly"
            }
        ]
        

        /n 放置在表达式中您想要换行的位置,$0 放置光标的最终位置。 然后保存,它可以直接工作:) 仅在 JS 和 JSX 文件中 如果您想指定另一种语言,只需在 "when" 表达式中替换 'javascript' 通过这个 VScode 语言标识符列表中你想要的那个: https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers 当然,如果您想要另一个 sn-p 行为:只需将 {/* 替换为您想要的 "args" 表达式。

        【讨论】:

          【解决方案6】:

          =>评论选定的单行多行代码:

          对于 WindowsLinux 机器选择代码并使用:

          1. Ctrl + / 获取评论模式//
          2. Ctrl + Shift + A 获取评论模式{/* */}

          对于 Mac 机器选择代码并使用:

          1. Cmd + / 获取评论模式//
          2. Cmd + Shift + A 获取评论模式{/* */}

          =>取消注释注释的代码行: 只需重复您用于评论的步骤即可。

          【讨论】:

            【解决方案7】:

            对于 Linux, 对于单行,使用 Ctrl + /

            对于多行,在 VSCode 中选择 sn-ps 只需按 Ctrl + Shift + A

            它有效。 快乐编码

            【讨论】:

              【解决方案8】:

              在 VS Code 中搜索 Babel JavaScript

              https://marketplace.visualstudio.com/items?itemName=mgmcdermott.vscode-language-babel

              安装和command + / 将使用{ /* */ } 评论jsx

              【讨论】:

                【解决方案9】:

                在将文件语言转换为 Typescript React (typescriptreact) 之前,我遇到了同样的问题。

                如果您想将其配置为所有 .js 文件的语言,请将其添加到您的 settings.json(全局或 /.vscode/settings.json 中的项目级别)。

                "files.associations": {
                    "*.js": "typescriptreact"
                  }
                

                【讨论】:

                  【解决方案10】:

                  在 React 中,“{}”允许我们使用 JavaScript 表达式,因此我们可以像在 JavaScript 中那样进行注释。

                  例子:

                  {/* multi 
                  line 
                  comment 
                  */}
                  
                  {// single line comment
                  }
                  

                  【讨论】:

                    【解决方案11】:

                    如果我们默认按cmd + /,vs 代码将执行单行 cmets,这不能应用于 JSX。只需安装下面的 vs 代码扩展就可以了。

                    vscode-language-babel

                    【讨论】:

                      【解决方案12】:

                      键盘命令...

                      Ctrl + / - Windows 和 Linux
                      Cmd + / - MacOS

                      ...现在通过在选定的行周围添加{/* */},可以对单行代码和块代码正常工作。

                      它在最近的Insiders builds of Visual Studio Code 中为has been fixed,并将使其进入下一个完整版本。

                      【讨论】:

                      • 相同的键盘快捷键也适用于 Atom(可能并不奇怪,因为 Visual Studio Code 和 Atom 都是基于电子构建的)。
                      • 无法让它在 VS CODE 中工作。您是否使用任何插件来帮助解决这个问题?
                      • 在最新的 VS Code 通用版本上为我工作,无需任何插件。
                      【解决方案13】:

                      目前在 Visual Studio 代码中,可以通过按组合键 - Shift+Alt+A 并注释它产生的“jsx”代码 - {/**/} cmets 来完成。

                      【讨论】:

                        【解决方案14】:

                        Visual Studio codeCmd + /如果你在mac或地方运行

                        {/* Your Code */}
                        

                        谢谢。

                        【讨论】:

                          【解决方案15】:

                          尝试禁用所有插件,因为它们可以改变编辑器的行为。例如,如果使用Babel ES6/ES7 插件,编辑器将.jsx 语法设置为// 而不是{/*。你看问题here

                          【讨论】:

                          • 我似乎遇到了这个问题,JSX 中的 VS 代码注释应用了 {/* */} 几个星期,但随后它停止工作。我昨天确实安装了 Babel ES6/ES7,所以我只是尝试卸载它,它并没有恢复正常。有什么帮助吗?
                          • @JonathanTuzman 尝试一一禁用你的 VS 插件。
                          【解决方案16】:

                          这也有效

                          {
                            //this.props.user.profileImage
                            //? <img
                            //    src={ this.props.user.profileImage }!
                            //    alt=""
                            //  />
                            //: <FontAwesome name='smile-o' />
                          }
                          

                          【讨论】:

                            【解决方案17】:

                            如果你想注释 JSX 语法块,你可以这样做

                            {
                              /* <section>
                                 <header><h3>Contact Form</h3></header>
                                 <figure>
                                   <Form />
                                 </figure>
                               </section> */
                            }
                            

                            【讨论】:

                              【解决方案18】:

                              {/* 这有效,但只有单行 */}

                              【讨论】:

                              • 你的答案与已经标记好的答案没有什么不同。
                              • 使用这种语法的多行 cmets 对我来说确实可以正常工作({/* 仅在第一行,*/} 仅在最后一行)。
                              • 绝对支持多行注释
                              【解决方案19】:

                              你可以通过 {/**/} 注释掉 JSX

                              例子:

                              render() {
                                return (
                                  <div>
                                    <Component1 />
                                    {/* <Component2 /> */}
                                  </div>
                                )
                              }
                              

                              然后 Component2 将被注释掉

                              【讨论】:

                              • 是的,但是有什么办法可以通过快捷键 Cmd+/ 快捷键做到这一点?
                              • 我一直在四处寻找,但没有看到任何东西......当我偶然发现一些捷径时,我会告诉你
                              • github.com/Microsoft/vscode/issues/6461 这是我设法找到的问题
                              • 是的...这似乎是一个持续存在的问题?
                              猜你喜欢
                              • 2017-08-21
                              • 2017-05-04
                              • 2018-05-02
                              • 2020-01-30
                              • 2023-01-17
                              • 1970-01-01
                              • 2011-04-14
                              • 2011-11-20
                              • 2017-07-15
                              相关资源
                              最近更新 更多