gpt4 book ai didi

newline - Sublime Text 3-确保文件末尾只有一个尾随换行符

转载 作者:行者123 更新时间:2023-12-03 14:14:57 29 4
gpt4 key购买 nike

我正在使用Sublime Text 3,并希望确保在保存时文件末尾仅出现一行新行。目前,我的空白有90%的时间可以正常工作,请使用:

"ensure_newline_at_eof_on_save": true


"trim_trailing_white_space_on_save": true

...但是,文件偶尔会在文件末尾另存两行。

当保存前最后一个换行符上存在空白,并且配置设置先添加换行符,然后删除空白时,就会出现这种情况。在config中更改这些设置的顺序无法解决此问题。

我还没有找到其他原因,所以这很可能是唯一的原因,尽管理想情况下,我想检查是否有不止一个换行符。

除非文件末尾只有一个新行,否则我正在使用的环境将无法通过测试,因此这有点麻烦。我的问题是,是否有一种插件/方法可以更严格地保存文件,以确保只有一条尾随新行。

最佳答案

编辑:

我已经扩展了很多插件,我在下面发布了该插件,现在可以使用Package Control进行安装。

  • Single Trailing Newline是Sublime Text软件包,可确保文件末尾恰好有一个尾随换行符。它的工作原理是删除文件末尾的所有空格和换行符(如果有的话),然后插入单个换行符。
  • 可以将插件设置为每次保存文件时自动运行。默认情况下禁用此功能,但是通过更改设置,可以对所有文件或仅对特定语法的文件启用此功能。
  • 提供了
  • 命令调色板条目来更改软件包的设置。添加/删除将触发插件的语法,并允许或阻止插件以所有语法运行。

  • 原始答案:

    这是一个可以做到的插件。

    将以下代码保存在扩展名为 .py的文件中,例如 EnsureExactlyOneTrailingNewLineAtEndOfFileOnSave.py并将文件复制到您的程序包目录中。保存文件时,它将在文件末尾删除所有尾随换行符和空格,然后添加单个尾随换行符。

    #
    # A Sublime Text plugin to ensure that exactly one trailing
    # newline is at the end of all files when files are saved.
    #
    # License: MIT License
    #

    import sublime, sublime_plugin

    class OneTrailingNewLineAtEndOfFileOnSaveListener(sublime_plugin.EventListener):

    def on_pre_save(self, view):
    # A sublime_plugin.TextCommand class is needed for an edit object.
    view.run_command("one_trailing_new_line_at_end_of_file")
    return None

    class OneTrailingNewLineAtEndOfFileCommand(sublime_plugin.TextCommand):

    def run(self, edit):
    # Ignore empty files.
    if self.view.size() == 0:
    return

    # Work backwards from the end of the file looking for the last
    # significant char (one that is neither whitespace nor a newline).

    pos = self.view.size() - 1
    whitespace = ("\n", "\t", " ")

    while pos >= 0 and self.view.substr(pos) in whitespace:
    pos -= 1

    # Delete from the last significant char to the end of
    # the file and then add a single trailing newline.

    del_region = sublime.Region(pos + 1, self.view.size())
    self.view.erase(edit, del_region)
    self.view.insert(edit, self.view.size(), "\n")

    关于newline - Sublime Text 3-确保文件末尾只有一个尾随换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37794699/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com