如何在 Notepad++ 中保存文件时自动删除尾随空格并将制表符转换为空格

如何在 Notepad++ 中保存文件时自动删除尾随空格并将制表符转换为空格

我通常使用 Notepad++ 编写代码。我通常通过手动进入菜单并选择相关菜单来删除尾随空格并将制表符转换为空格。发生的问题是无意中引入了尾随空格和制表符。稍后,当文件提交到 Git 等版本控制系统时,它会在代码审查期间造成混乱,因为看起来很多行都发生了变化,但那里唯一发生的事情是删除了尾随空格或将制表符转换为空格,没有其他变化。

如何让 Notepad++ 在单击“保存”按钮时自动删除尾随空格并将制表符转换为空格?您认为此问题的最佳解决方案是什么?

如果我强制 git 在提交文件之前运行执行这些更改的脚本,效果会更好吗?但是我不确定如何让 Git 在提交操作完成之前运行脚本。

答案1

如何让 Notepad++ 自动删除尾随空格?

这些是重定向标准“保存”快捷方式 Ctrl+的精确步骤S,而不是“修剪尾随并保存”

  • 设置->快捷方式映射器...
  • 主菜单选项卡,双击“保存”,更改S为无
  • 宏选项卡,双击“修剪尾随空格并保存”,更改为Ctrl+S

也可以从宏->修改快捷方式/删除宏...来修改宏的快捷方式

来源:如何使用 Notepad++ 自动修剪尾随空格?,回答者安东尼奥。也看看那里的其他答案。

如何让 Notepad++ 将制表符转换为空格?

Notepad++ 可以配置为自动执行此操作。

菜单 > 偏好设置 > 语言 > 无 > 默认 > 勾选“用空格替换”并设置“制表符大小”

在此处输入图片描述

答案2

2023 更新:我的建议是在项目的根文件夹中使用 .editorconfig 文件。

Npp 将识别它并执行您需要的基本格式化,例如用空格替换制表符、删除尾随空格、强制行结束。

以下是我使用的:

[*]
# config common across all text-files
end_of_line = lf
charset = utf-8
insert_final_newline = true 

#makefile still use tabs
[{Makefile,makefile,MAKEFILE}]
indent_style = tab
trim_trailing_whitespace = true

#batch file requires windows line ending
[*.bat]
end_of_line = crlf

#code file have specific handling
[*.{c,h,cpp,hpp,java,php,js,json,sh,py}]
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

相关内容