為什麼文字檔案要以換行符結尾?POSIX 標準、Git 與程式語言規範全解析

5 分鐘閱讀

記得當時 tech lead 在公司內釋出了一份 .editorconfig (C# 的專案層級規範文件),其中定義了以換行符結尾。這和我的個人習慣不同,且以換行符結尾是有歷史意義的。於是我當時做了這份 Felo Search 來輔佐我的觀點,提議改變規範。

琳 avatar

我是否應該要在 text 文件的最後以空行結尾

Felo Search avatar
Felo Search

根據搜尋結果,我將詳細分析是否應該在文字檔案末尾加入空行。

為什麼需要空行結尾

POSIX 標準要求

版本控制的考量

工具相容性

編碼規範建議

程式語言規範

實務建議

結論

基於以上分析,建議在文字檔案末尾加入換行符(空行結尾),因為這樣做可以:

  1. 符合 POSIX 標準
  2. 提高與各種工具的相容性
  3. 改善版本控制的使用體驗
  4. 遵循主流程式語言的編碼規範
  1. Python编码规范:Final newline missing警告(最后一行需要增加空行、文件末尾需要空行、末行换行、代码文件以空行结束、以空行结尾)(Git钩子pre-commit)检查空行脚本-CSDN博客 ↩2 ↩3 ↩4 ↩5

  2. 【Linux】冷知识_ 为什么文本文件要用一个空行做结尾, no newline at end of fileflake8(W292)-CSDN博客

  3. Why should text files end with a newline?

  4. linux - 什么时候程序源码文件末尾要有空行? 是怎么规定和考虑的 - SegmentFault 思否 ↩2 ↩3

  5. Why You Should End Your Source Files With a New Line - DEV Community

  6. Question_ why does PEP8 recommend leaving a blank line at the end of a .py file? : r/Python

  7. Why should text files end with a newline? - Stack Overflow

  8. Why is required to leave an empty line at the end of a C program? - Applications | Programming - Unix Linux Community