在 VSCode 中的列自动硬换行
Automatically hard wrap lines at column in VSCode
如何在 VSCode 中自动硬换行?我的意思是,如果一行到达指定的列,则自动在最靠近该列的单词边界处插入一个换行符而不会越过。 Vim 有一个名为 textwidth 的设置,我喜欢在编辑 Markdown 时使用它。据我所知,VSCode 似乎没有。它只是有控制软包装的方法。
很遗憾,VSCode 还没有这个功能。但是,我们仍然可以使它接近vim automatic word wrapping美丽的特征。
第一步
我们需要在 VSCode 中设置软自动换行功能。
- 通过
Code => Preferences => Settings
打开 VSCode 设置。
添加这 3 行编辑器设置。
"editor.wordWrap": "wordWrapColumn",
"editor.wrappingIndent": "same",
"editor.wordWrapColumn": n
不要忘记将 (n) 更改为您喜欢的列行长度。对我来说,我觉得设置为60更舒服。
保存此设置。
这第一步的主要目的是让我们在打字时感觉更舒服,因为我们不需要手动输入 Enter 并看到一长串文字.
第二步
我们需要安装Vim emulation for VSCode并设置vim textwidth
。
- 通过 VSCode 扩展安装 Vim 仿真。
- 通过
Code => Preferences => Settings
打开 VSCode 设置。
添加这一行 vim 设置。
"vim.textwidth": n,
不要忘记将 (n) 更改为您喜欢的列行长度。对于我来说,我会在第一步中将其设置为与 (n) 相同。
保存此设置。
实际使用
当您完成整个文档的编写后,您可以使用这种方式将其格式化为硬换行。
- 使用视线模式阻止所有文本 (Shift + v)
- 输入'gq'
VSCode 不支持开箱即用。但是您可以安装 Rewrap
扩展,它允许您通过按 Alt + Q 来格式化光标当前所在的块.
Rewrap
不需要进一步的设置,因为它会读取 VSCode 的设置来获取要中断的列。
Rewrap
也支持自动换行(默认关闭):https://github.com/stkb/Rewrap/wiki/Auto-wrap
目前在 GitHub、You Can Find It Here
的 VS 代码问题跟踪器中有一个打开请求
硬包装评论
使用 Rewrap extension.
软包装代码
添加以下设置(用您的偏好替换列宽):"editor.wordWrapColumn": 100
然后添加 "editor.wordWrap": "wordWrapColumn"
(在列处环绕)或 "editor.wordWrap": "bounded"
(在列或视口处环绕)。
硬包装评论和软包装代码
遗憾的是,扩展和 VSCode 设置播放效果不佳。
现在 VSCode 支持开箱即用的自动换行。
设置 --> 文本编辑器 --> 最后 3 个选项(与今天一样)用于自动换行。
- 自动换行(控制换行方式)
- Word Wrap Column(控制编辑器的换行列)
- 换行缩进(控制换行的缩进)
默认情况下自动换行处于关闭状态。
自 2020 年起,如果您使用 Prettier - Code formatter
插件:
Go to Plugins -> Find Prettier -> Cog -> Extension Settings -> Prettier: Print Width Fit code within this line limit
并设置为任何你想要的。默认为 80。
保存文件时,Prettier 会自动格式化。
编辑:(以下答案可能是针对软包装的,请参阅此处了解软包装和硬包装之间的区别:)
在我的版本中,它是 Preferences -> Settings 然后向下滚动到“Editor: Word Wrap”,其中有一个下拉框可供选择,我从中选择了 wordWrapColumn。选择并关闭后,当我单击底部的“立即查看”时,它会显示 Word Wrap Alt+Z。
如果有人 运行 遇到问题,可能需要禁用辅助功能 support/screen reader。转到 首选项 >> 文本编辑器 >> 辅助功能支持并将其关闭。
您可以使用 ColumnLimit
成员 in C_Cpp.clang_format_fallbackStyle
in settings.json
轻松设置列限制(您必须安装 Microsoft C/C++ 扩展)
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: WebKit, IndentWidth: 4, ColumnLimit: 80 }",
然后您可以使用 Shift + Alt + F[=18 格式化文件=]
您可以在此格式功能中更改许多选项
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: WebKit, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Attach, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 80, AccessModifierOffset: -4 }",
Name of the predefined style used as a fallback in case clang-format
is invoked with style file but the .clang-format file is not found.
Possible values are Visual Studio, LLVM, Google, Chromium, Mozilla,
WebKit, Microsoft, GNU, none, or use {key: value, ...} to set specific
parameters. For example, the Visual Studio style is similar to: {
BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4,
BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false,
IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4,
NamespaceIndentation: All, FixNamespaceComments: false }
之前
void Proc::Memory::getSramOff(const char* mem_name, uint dataSize, uint addrBits, uint& noOfBytes, uint& sram_off)
之后
void Proc::Memory::getSramOff(const char* mem_name, uint dataSize,
uint addrBits, uint& noOfBytes, uint& sram_off)
其中大部分对我不起作用,但我找到了扩展程序 Vsctoix,它可以。
我们从第 80 列的换行符开始:
Mechanisms such as a “windfall clause” help distribute riches within particular
futures. But for a windfall clause to be useful, many conjunctive assumptions
have to be true. We present a new method to borrow against potential future
windfalls today, when they have greater marginal use. The method also increases
the probability and thus the expected value of the windfalls.
然后我们执行“IX: Join Lines”(无参数):
Mechanisms such as a “windfall clause” help distribute riches within particular futures. But for a windfall clause to be useful, many conjunctive assumptions have to be true. We present a new method to borrow against potential future windfalls today, when they have greater marginal use. The method also increases the probability and thus the expected value of the windfalls.
然后“IX: Break Line At”参数为 100:
Mechanisms such as a “windfall clause” help distribute riches within particular futures. But for a
windfall clause to be useful, many conjunctive assumptions have to be true. We present a new method
to borrow against potential future windfalls today, when they have greater marginal use. The method
also increases the probability and thus the expected value of the windfalls.
如果它尊重段落分隔符并同时执行两个步骤,那就太好了,但到目前为止,它是唯一适合我的扩展——除了我还没有尝试过 vim 仿真。
如何在 VSCode 中自动硬换行?我的意思是,如果一行到达指定的列,则自动在最靠近该列的单词边界处插入一个换行符而不会越过。 Vim 有一个名为 textwidth 的设置,我喜欢在编辑 Markdown 时使用它。据我所知,VSCode 似乎没有。它只是有控制软包装的方法。
很遗憾,VSCode 还没有这个功能。但是,我们仍然可以使它接近vim automatic word wrapping美丽的特征。
第一步
我们需要在 VSCode 中设置软自动换行功能。
- 通过
Code => Preferences => Settings
打开 VSCode 设置。 添加这 3 行编辑器设置。
"editor.wordWrap": "wordWrapColumn", "editor.wrappingIndent": "same", "editor.wordWrapColumn": n
不要忘记将 (n) 更改为您喜欢的列行长度。对我来说,我觉得设置为60更舒服。
保存此设置。
这第一步的主要目的是让我们在打字时感觉更舒服,因为我们不需要手动输入 Enter 并看到一长串文字.
第二步
我们需要安装Vim emulation for VSCode并设置vim textwidth
。
- 通过 VSCode 扩展安装 Vim 仿真。
- 通过
Code => Preferences => Settings
打开 VSCode 设置。 添加这一行 vim 设置。
"vim.textwidth": n,
不要忘记将 (n) 更改为您喜欢的列行长度。对于我来说,我会在第一步中将其设置为与 (n) 相同。
保存此设置。
实际使用
当您完成整个文档的编写后,您可以使用这种方式将其格式化为硬换行。
- 使用视线模式阻止所有文本 (Shift + v)
- 输入'gq'
VSCode 不支持开箱即用。但是您可以安装 Rewrap
扩展,它允许您通过按 Alt + Q 来格式化光标当前所在的块.
Rewrap
不需要进一步的设置,因为它会读取 VSCode 的设置来获取要中断的列。
Rewrap
也支持自动换行(默认关闭):https://github.com/stkb/Rewrap/wiki/Auto-wrap
目前在 GitHub、You Can Find It Here
的 VS 代码问题跟踪器中有一个打开请求硬包装评论
使用 Rewrap extension.
软包装代码
添加以下设置(用您的偏好替换列宽):"editor.wordWrapColumn": 100
然后添加 "editor.wordWrap": "wordWrapColumn"
(在列处环绕)或 "editor.wordWrap": "bounded"
(在列或视口处环绕)。
硬包装评论和软包装代码
遗憾的是,扩展和 VSCode 设置播放效果不佳。
现在 VSCode 支持开箱即用的自动换行。
设置 --> 文本编辑器 --> 最后 3 个选项(与今天一样)用于自动换行。
- 自动换行(控制换行方式)
- Word Wrap Column(控制编辑器的换行列)
- 换行缩进(控制换行的缩进)
默认情况下自动换行处于关闭状态。
自 2020 年起,如果您使用 Prettier - Code formatter
插件:
Go to Plugins -> Find Prettier -> Cog -> Extension Settings -> Prettier: Print Width Fit code within this line limit
并设置为任何你想要的。默认为 80。
保存文件时,Prettier 会自动格式化。
编辑:(以下答案可能是针对软包装的,请参阅此处了解软包装和硬包装之间的区别:) 在我的版本中,它是 Preferences -> Settings 然后向下滚动到“Editor: Word Wrap”,其中有一个下拉框可供选择,我从中选择了 wordWrapColumn。选择并关闭后,当我单击底部的“立即查看”时,它会显示 Word Wrap Alt+Z。
如果有人 运行 遇到问题,可能需要禁用辅助功能 support/screen reader。转到 首选项 >> 文本编辑器 >> 辅助功能支持并将其关闭。
您可以使用 ColumnLimit
成员 in C_Cpp.clang_format_fallbackStyle
in settings.json
轻松设置列限制(您必须安装 Microsoft C/C++ 扩展)
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: WebKit, IndentWidth: 4, ColumnLimit: 80 }",
然后您可以使用 Shift + Alt + F[=18 格式化文件=]
您可以在此格式功能中更改许多选项
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: WebKit, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Attach, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 80, AccessModifierOffset: -4 }",
Name of the predefined style used as a fallback in case clang-format is invoked with style file but the .clang-format file is not found. Possible values are Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit, Microsoft, GNU, none, or use {key: value, ...} to set specific parameters. For example, the Visual Studio style is similar to: { BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }
之前
void Proc::Memory::getSramOff(const char* mem_name, uint dataSize, uint addrBits, uint& noOfBytes, uint& sram_off)
之后
void Proc::Memory::getSramOff(const char* mem_name, uint dataSize,
uint addrBits, uint& noOfBytes, uint& sram_off)
其中大部分对我不起作用,但我找到了扩展程序 Vsctoix,它可以。
我们从第 80 列的换行符开始:
Mechanisms such as a “windfall clause” help distribute riches within particular
futures. But for a windfall clause to be useful, many conjunctive assumptions
have to be true. We present a new method to borrow against potential future
windfalls today, when they have greater marginal use. The method also increases
the probability and thus the expected value of the windfalls.
然后我们执行“IX: Join Lines”(无参数):
Mechanisms such as a “windfall clause” help distribute riches within particular futures. But for a windfall clause to be useful, many conjunctive assumptions have to be true. We present a new method to borrow against potential future windfalls today, when they have greater marginal use. The method also increases the probability and thus the expected value of the windfalls.
然后“IX: Break Line At”参数为 100:
Mechanisms such as a “windfall clause” help distribute riches within particular futures. But for a
windfall clause to be useful, many conjunctive assumptions have to be true. We present a new method
to borrow against potential future windfalls today, when they have greater marginal use. The method
also increases the probability and thus the expected value of the windfalls.
如果它尊重段落分隔符并同时执行两个步骤,那就太好了,但到目前为止,它是唯一适合我的扩展——除了我还没有尝试过 vim 仿真。