Sass、SCSS、Less 和 PostCSS.
PyCharm 可与将 Sass、 Less 和 SCSS 代码转换为 CSS 的编译器集成。 要在 PyCharm 中使用编译器,您需要基于相应的预定义模板将其配置为 文件监视器。
在开始之前
安装 Sass/SCSS
在内置的 终端 (Alt+F12 )中,键入:
npm install -g sass在 Sass 官方网站了解详情。
安装 Less
在内置的 终端 (Alt+F12 )中,键入:
npm install --global less在 Less 官方网站了解详情。
将您的代码编译为 CSS
要自动编译您的代码,您需要安装编译器并配置一个 Sass、Less 或 SCSS 文件监视器 ,用于跟踪对文件的更改并运行编译器。
PyCharm 在您打开文件时会检查当前项目中是否有可用的文件监视器。 如果已配置此类文件监视器但处于禁用状态,PyCharm 会显示一个弹出窗口,告知您已配置的文件监视器并建议启用它。
如果在当前项目中已配置并启用了适用的文件监视器,PyCharm 会在 新建监视器对话框 中指定的事件发生时自动启动编译器。
如果选中 自动保存已编辑的文件以触发监视器 复选框,则在对源代码进行任何更改后会立即调用文件监视器。
如果清除 自动保存已编辑的文件以触发监视器 复选框,则会在保存时(、 Ctrl+S )或将焦点从 PyCharm 移开时(框架停用时)启动文件监视器。
在 文件监视器 了解更多信息。
PyCharm 会创建一个包含生成输出的单独文件。 该文件的名称与源 Sass、 Less 或 SCSS 文件相同,扩展名为 .css 。 生成文件的位置是在 要刷新输出路径 字段中的 New Watcher 对话框中定义的。 不过,在 项目树 中,它们会显示在源文件下方,源文件现在显示为一个节点。
创建文件监视器
示例:将 SCSS 编译为 CSS
假设您的项目结构如下:

如您所见, _grid.scss 已被导入到 Page.scss 中。 下面的示例展示了当您手动或自动保存项目时,如何将 Page.scss 编译为 CSS,以及对 _grid.scss 的更改如何反映在生成的 CSS 文件中。
创建一个类型为 SCSS 的文件监视器:打开 设置 对话框(Ctrl+Alt+S ),转到 ,点击工具栏上的
,并从列表中选择 SCSS。

在 新建文件监视器 对话框中,所有必填字段都已填充。

实际上,这些设置足以成功运行编译器。
让我们更改 grid.scss ,例如,将第 31 行中的
margin-left: 0;替换为margin-left: 12px;。 这会触发我们的文件监视器,编译器会处理 Page.scss 。 结果,会生成两个文件,并显示为 Page.scss 的子项:Page.css ,包含编译后的 CSS 代码
Page.css.map ,包含源映射,可让您在调试会话期间对应用进行单步调试。

尽管默认设置足以成功运行编译器,但让我们还是仔细看一下这些设置,以了解如何自定义文件监视器的行为。
更改触发文件监视器的操作
文件监视器会在您的项目手动( 或 Ctrl+S )或自动保存时立即唤醒并启动转译器。
在一般情况下,您的代码会在您将焦点从 PyCharm 移开时(在窗口失去焦点时)自动保存。 使用文件监视器时,当您编辑文件监视器范围内的文件时,也会自动保存。 因此,在您键入的整个过程中,转译器可能一直在运行,从而可能导致性能问题。 要解决该问题,请关闭自动保存已编辑文件。
按下 Ctrl+Alt+S 以打开设置,然后选择 。 选择所需的文件监视器(我们的示例中为 SCSS ),并点击工具栏上的 。 在 编辑文件监视器 对话框,展开 高级选项 区域并清除 自动保存已编辑的文件以触发监视器 复选框。

默认情况下,即使其范围内的文件在 PyCharm 外部被编辑,文件监视器也会唤醒。 要更改此行为,并仅在内部编辑时转译文件,请清除 在外部更改时触发监视器 复选框。

更改作用域
默认情况下, PyCharm 监控整个项目中所有具有 .scss 扩展名的文件的更改。 这适用于我们的示例。 不过,您可以更改范围,例如仅处理未提交的更改。 在大型项目中,这将节省时间。
按下 Ctrl+Alt+S 以打开设置,然后选择 。 选择所需的文件监视器(我们的示例中为 SCSS ),并点击工具栏上的 。 在 编辑文件监视器 对话框,选择适用的范围。 更多信息请参阅 作用域和文件颜色。

自定义输出位置
默认情况下,生成的 .css 和 .css.map 文件存储在原始文件所在的文件夹中,并在 项目 工具窗口(Alt+1 )中显示为其子项。 您可以更改这个默认行为,将所有生成的 .css 和 .css.map 文件存储在单独的文件夹中。
让我们从一个简单的情况开始。 假设您在项目根目录中有一个 custom_output.scss 文件。

让我们编辑 custom_output.scss ,例如,将第 6 行中的 fill-opacity: abs(50); 替换为 fill-opacity: abs(60);。 在默认文件监视器配置下,生成的 custom_output.css 和 custom_output.css.map 将存储在项目根目录,并显示为 custom_output.scss 的子项。

它会很方便,将所有输出存储在单独的文件夹中,例如, css 。 让我们创建一个自定义 SCSS_custom_output 文件监视器,将 css 文件夹作为输出位置。
按下 Ctrl+Alt+S 以打开设置,然后选择 。 然后创建一个 SCSS 文件监视器 如上所述。
按如下方式更新默认设置:
在 参数 字段中,键入:
$FileName$:$ProjectFileDir$/css/$FileNameWithoutExtension$.css在 要刷新输出路径 字段中,键入:
$ProjectFileDir$/css/$FileNameWithoutExtension$.css:$ProjectFileDir$/css/$FileNameWithoutExtension$.css.map

保存新的文件监视器并确保其已启用。

现在,如果您编辑 custom_output.scss ,例如,将第 6 行中的 fill-opacity: abs(50); 替换为 fill-opacity: abs(60); ,PyCharm 创建了一个 css 文件夹,并将生成的 custom_output.css 和 custom_output.css.map 文件存储在其中。

自定义输出位置:保留原始文件夹结构
让我们现在考虑一个示例,其中 .scss 文件存储在文件夹结构中,例如:

在默认文件监视器下,生成的文件将存储在原始 .scss 文件所在的同一文件夹中。

如果我们使用自定义的文件监视器 如上所述 ,所有生成的文件将存储在同一个 css 文件夹中:

为了让 PyCharm 保留文件夹结构,让我们创建另一个自定义文件监视器。
按下 Ctrl+Alt+S 以打开设置,然后选择 。 然后创建一个 SCSS 文件监视器 如上所述。
按如下方式更新默认设置:
在 参数 字段中,键入:
$FileName$:$ProjectFileDir$/css/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.css在 要刷新输出路径 字段中,键入:
$ProjectFileDir$/css/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.css:$ProjectFileDir$/css/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.css.map

保存新的文件监视器并确保其已启用。

现在,如果您编辑 custom_output_body.scss 、 custom_output_header.scss 或 custom_output_footer.scss ,PyCharm 会创建一个 css 文件夹,其子文件夹结构会保留 styles_structured 的结构。

示例:将 Less 编译为 CSS
假设您的项目结构如下:

下面的示例展示了当您手动或自动保存项目时, my-styles.less 如何编译为 CSS,以及对 my-styles.less 的更改如何反映在生成的 CSS 文件中。
创建一个类型为 Less 的文件监视器:打开 设置 对话框(Ctrl+Alt+S ),转到 ,点击工具栏上的
,并从列表中选择 Less。

或者,在包含 .less 文件的编辑器选项卡顶部的 启用文件监视器以将 LESS 编译为 CSS 吗? 窗格中点击 是。

在 新建文件监视器 对话框中,所有必填字段都已填充。

实际上,这些设置足以成功运行编译器。
让我们更改 my-styles.less ,例如,更改第 1 行的
@color的值。 这会触发我们的文件监视器。 因此,生成了两个文件并显示在 my-styles.less 下:my-styles.css ,包含编译后的 CSS 代码
my-styles.css.map ,包含源映射,可让您在调试会话期间对应用进行单步调试。

尽管默认设置足以成功运行编译器,但让我们还是仔细看一下这些设置,以了解如何自定义文件监视器的行为。
更改触发文件监视器的操作
文件监视器会在您的项目手动( 或 Ctrl+S )或自动保存时立即唤醒并启动转译器。
在一般情况下,您的代码会在您将焦点从 PyCharm 移开时(在窗口失去焦点时)自动保存。 使用文件监视器时,当您编辑文件监视器范围内的文件时,也会自动保存。 因此,在您键入的整个过程中,转译器可能一直在运行,从而可能导致性能问题。 要解决该问题,请关闭自动保存已编辑文件。
按下 Ctrl+Alt+S 以打开设置,然后选择 。 选择所需的文件监视器(我们的示例中为 Less ),并点击工具栏上的 。 在 编辑文件监视器 对话框,展开 高级选项 区域并清除 自动保存已编辑的文件以触发监视器 复选框。

更改作用域
默认情况下, PyCharm 监控整个项目中所有具有 .scss 扩展名的文件的更改。 这适用于我们的示例。 不过,您可以更改范围,例如仅处理未提交的更改。 在大型项目中,这将节省时间。
按下 Ctrl+Alt+S 以打开设置,然后选择 。 选择所需的文件监视器(我们的示例中为 Less ),并点击工具栏上的 。 在 编辑文件监视器 对话框,选择适用的范围。 更多信息请参阅 作用域和文件颜色。

自定义输出位置
默认情况下,生成的 .css 和 .css.map 文件存储在原始文件所在的文件夹中,并在 项目 工具窗口(Alt+1 )中显示为其子项。 您可以更改这个默认行为,将所有生成的 .css 和 .css.map 文件存储在单独的文件夹中。
让我们从一个简单的情况开始。 假设您在项目根目录中有一个 custom_output.less 文件。

我们来编辑 custom_output.less ,例如,更改第 1 行的 @color 的值。 默认的 File Watcher 配置生成的文件 custom_output.css 和 custom_output.css.map 将会存储在项目根目录并显示为 custom_output.less 的子文件。

它会很方便,将所有输出存储在单独的文件夹中,例如, css 。 让我们创建一个自定义 Less_custom_output 文件监视器,将 css 文件夹作为输出位置。
按下 Ctrl+Alt+S 以打开设置,然后选择 。 然后创建一个 Less 文件监视器 如上所述。
按如下方式更新默认设置:
在 参数 字段中,键入:
$FileName$ $ProjectFileDir$/css/$FileNameWithoutExtension$.css --source-map在 要刷新输出路径 字段中,键入:
$ProjectFileDir$/css/$FileNameWithoutExtension$.css $ProjectFileDir$/css/$FileNameWithoutExtension$.css.map

保存新的文件监视器并确保其已启用。

现在,如果您编辑 custom_output.less ,例如,更改第 1 行的 @color 的值,PyCharm 创建一个 css 文件夹,并将生成的 custom_output.css 和 custom_output.css.map 文件存储在其中。

自定义输出位置:保留原始文件夹结构
让我们现在考虑一个示例,其中 .less 文件存储在文件夹结构中,例如:

在默认文件监视器下,生成的文件将存储在原始 .less 文件所在的同一文件夹中。

如果我们使用自定义的文件监视器 如上所述 ,所有生成的文件将存储在同一个 css 文件夹中:

为了让 PyCharm 保留文件夹结构,让我们创建另一个自定义文件监视器。
按下 Ctrl+Alt+S 以打开设置,然后选择 。 然后创建一个 Less 文件监视器 如上所述。
按如下方式更新默认设置:
在 参数 字段中,键入:
$FileName$ $ProjectFileDir$/css/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.css --source-map在 要刷新输出路径 字段中,键入:
$ProjectFileDir$/css/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.css $ProjectFileDir$/css/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.css.map

保存新的文件监视器并确保其已启用。

现在,如果您编辑 custom_output_body.less 、 custom_output_header.less 或 custom_output_footer.less ,PyCharm 会创建一个 css 文件夹,其子文件夹结构会保留 styles_structured 的结构。

配置语法高亮显示
您可以根据自己的偏好和习惯配置支持 Less/Sass/SCSS/PostCSS 的语法高亮显示。
在 设置 对话框(Ctrl+Alt+S ),转到 。
选择配色方案,接受继承自默认设置的高亮设置,或按照 颜色与字体 中的说明对其进行自定义。
补全 Sass 和 SCSS 选择器
PyCharm 为 Sass 和 SCSS 选择器提供补全功能——包括 嵌套选择器 和 使用和号(&)创建的选择器。

云补全和整行代码补全
PyCharm 在 Sass/SCSS、Less 和 PostCSS 代码中提供 云补全 和 整行代码补全。
整行代码补全功能使用本地运行的深度学习模型来建议整行代码。 在 PyCharm 中开箱即用,且无需额外许可证。
启用整行代码补全
按 Ctrl+Alt+S 打开设置并选择 编辑器 | 常规 | 内联补全。
选中 启用本地Full Line 补全建议 复选框,并确保已选中 类似 CSS 复选框。

由 AI 助手 提供支持的云端补全可基于项目上下文实时自动完成单行、代码块,甚至整个函数。
云端补全会在考虑上下文的情况下建议语法上可接受的解决方案,并预先运行各种 代码检查 ,以拒绝会导致错误的候选项。
启用云端补全
按 Ctrl+Alt+S 打开设置并选择 编辑器 | 常规 | 内联补全。
选中 Enable cloud completion suggestions 复选框,并确保已选中 HTML 复选框。

查找与导航

查找文档
对于属性和伪元素,PyCharm 可以向您显示相应的 MDN 文章 摘要。 此摘要显示在 文档 弹出窗口中,该窗口会显示属性及其值的简要说明,以及其 Web 平台基线状态。



对于选择器,PyCharm 还显示其 特异性。

查看属性的文档
将文本光标定位在属性上,然后按 Ctrl+Q 或从主菜单中选择 。
当您悬停在某属性上时,PyCharm 会立即在 文档注释 弹出窗口中显示其引用。
您可以关闭此行为,或配置弹出窗口显示得更快或更慢。请参阅下文的 配置文档弹出窗口的行为。
配置文档弹出窗口的行为
要在将鼠标悬停在代码符号上时关闭自动显示文档,请在弹出窗口中点击
,并禁用 在鼠标移动时显示 选项。
要使 文档注释 弹出窗口显示得更快或更慢,请打开 设置 对话框(Ctrl+Alt+S ),转到 ,然后选中 显示文档弹窗 复选框并指定延迟时间。
在浏览器中打开 MDN 文档
在 文档注释 弹出窗口 Ctrl+Q 中,点击底部的链接。
按 Shift+F1 或在主菜单中选择 。
格式化
使用 PyCharm 内置的格式化程序,您可以重新设置样式表代码片段以及整个文件和文件夹的格式,以满足特定语言的代码样式要求。 格式化程序在您生成或重构代码时也会自动唤醒。
要配置样式表语言的格式化设置,请打开 设置 对话框(Ctrl+Alt+S ),转到 ,并配置特定语言的选项,例如制表符和缩进、空格、换行和大括号、硬边距和软边距等。
当您更改设置时, 预览 区域会显示这些更改如何影响格式化。
在 CSS、SCSS 和 Less 上下文中,PyCharm 默认在
import语句和 URL 中对生成的字符串字面量使用双引号。 要使用单引号,请打开 其他 标签,并从 单引号 选项中选择 引号 列表。要在重新格式化后将所选样式应用于整个文件,请选择列表下方的 在格式化时强制使用 复选框。
若要重新格式化代码片段,请在编辑器中选择它并按 Ctrl+Alt+L。
要重新格式化文件或文件夹,请在 项目 工具窗口(Alt+1 )中选择它并按 Ctrl+Alt+L。 有关详细信息,请参阅 重新格式化并重排代码。
或者,您可以使用 Prettier (Ctrl+Alt+Shift+P)。
重构
借助 PyCharm,您可以将样式表中的表达式转换为变量,并使用 var(--var-name) 语法在 .css 文件中引入这些变量,或使用 $ 语法在 .scss 和 .sass 文件中引入。

引入变量
在编辑器中,将文本光标放在要转换为变量的表达式处,然后按 Ctrl+Alt+V 或从上下文菜单或主菜单中选择 。
如果找到所选表达式的多个出现,请在 找到多个出现 列表中选择 仅替换此处出现 或 替换所有出现位置。
对于 .scss 和 .sass ,请为变量选择 全局 或 局部 作用域。
在红色边框的字段中,接受建议的变量名或指定自定义名称。 准备就绪后,按 Enter。
使用 PyCharm,您可以从 CSS、SCSS、Sass 或 Less 文件中的现有声明创建新的规则集,甚至可以通过重构和意图操作在文件之间移动整个规则集。
引入规则集
请选择要引入的声明。 如果您只需要一个声明,只需将文本光标放在其中。
按 Alt+Enter ,并在列表中选择 引入规则集。
PyCharm 创建一个具有相同选择器的新规则集,并将选定声明移到其中。 如果选中内容包含注释、嵌套选择器等,它们也会移到新的规则集中。
将规则集移动到其他文件
请将文本光标放在规则集中任意位置并按 F6。
在打开的对话框中,指定要移动规则集的文件。 如果指定的文件不存在,PyCharm将建议创建它。
默认情况下,PyCharm 会自动打开规则集所在的文件。 要更改此行为,请清除 在编辑器中打开 复选框。
常见的重构操作,如 Copy、 Move或 Rename ,也可用。

检查与浏览器的兼容性
除了 在文档弹出窗口中查找外,您还可以即时检查样式表属性与特定浏览器的兼容性。 此检查基于 MDN Browser Compatibility Data ,每当某个属性在目标浏览器之一中不受支持时,系统都会向您显示警告。

启用兼容性检查
在 设置 对话框(Ctrl+Alt+S ),转到 。
展开 CSS 节点并选择 属性与所选浏览器不兼容。 在 选项 区域,选择您要针对的浏览器及其最低版本。
在 选项 区域中,选择用于检查属性可用性的浏览器。 指定所选浏览器的目标版本。

管理颜色
PyCharm 支持 CSS 颜色管理,包括 代码补全、 快速文档查询和 颜色预览。 为绝对、相对和混合颜色提供编码辅助。

指定颜色
更改颜色
点击装订区域中的颜色图标,并在弹窗中选择所需颜色。

或者,将文本光标置于颜色属性处,按 Alt+Enter ,在列表中选择 更改颜色 ,然后在弹窗中选取所需的颜色。

切换颜色预览
PyCharm 会为绝对、相对和混合颜色显示预览。

默认情况下,PyCharm 会在标尺中以图标显示颜色预览。 要在背景中显示颜色预览,请打开 设置 对话框(Ctrl+Alt+S ),转到 并选中 将 CSS 颜色预览显示为背景 复选框。

要恢复装订区域中的颜色预览图标,请打开 设置 对话框(Ctrl+Alt+S ),转到 ,并在 通用 区域中选中 颜色预览 复选框。

查看应用于标签的样式
在 HTML 和 XHTML 文件中,PyCharm 可以显示应用于任意标签的所有样式。

从标签的上下文菜单中选择 。
PyCharm 打开 CSS 样式 工具窗口,工具窗口有两个窗格,左侧窗格显示标签的样式,右侧窗格显示它们的定义。 对于每个标签,PyCharm 会打开一个单独的选项卡。
从工具窗口,您可以导航到源代码中的标签和属性定义。
跳转到标签,请点击左侧窗格工具栏上的
。
要跳转到某属性的定义,请在左侧窗格中选择它,然后点击右侧窗格工具栏上的
。

