当我需要Windows行结尾时,我的某些文件/标签会以某种方式成为Unix行结尾。我可以去查看>行结尾> Windows,但仅适用于当前打开的文件/选项卡。我不想为每个文件(我做过)做这件事。但即使我这样做,当我打开其他文件时,有时它们是在Unix中设置的。是否有一个设置可以将它应用于所有文件,无论它们是打开还是未打开?
如果我转到偏好>设置 - 默认>并转到default_line_endings设置,其值设置为'system'。我知道我可以在我的“设置 - 用户”设置中覆盖它,但我不必在行结束之前以某种方式搞砸了所有这些。还有另一种方式吗?
此外,如果我重新安装sublimetext,这会修复它,还是行结尾以某种方式依赖于文件本身?我想这将是一个崇高的文本,决定使用哪些行结尾,可能是基于文件中的行结尾。但我肯定不知道这一点。另外,我的所有行结尾曾经是Windows的CRLF,而不是Unix的LF。
控制sublime文本中的行结尾当前是一种痛苦,因为它没有集体查看或设置方式,当前文件,也没有集体方式为将来的文件设置它。
任何知识都会受到赞赏。
答案 0 :(得分:21)
LineEndings插件/包很小,但就像魅力一样访问它GitHub repository以获取一些细节,因为在其Package Control页面上没有描述。
它不仅有效,而且还提供了额外的功能 - 您不仅可以一步更改行结尾,还可以更改所有打开文件的缩进方法。
安装后:
打开要转换/更改行结尾和/或缩进方法的所有文件。
按 Ctrl + Shift + P ,带上Command Pallete并开始输入lin
来查找{{ 1}}(例如)。
选择它,点击 Enter ,然后......你已经完成了!
重复步骤2,但键入Line Ending to all views: Windows
以找到spaces
或Indentation: Convert to all views to Spaces
以找到tabs
以更改所有打开文件的缩进方法。
注意,这个插件有一个bug或Sublime Text 3有时会有点wako。有些搜索没有透露上述命令。我不得不关闭并重新打开Command Palette并再次输入序列。特别是,如果你在ST3中安装了任何类型的linter,当你输入Indentation: Convert to all views to Tabs
时,它的命令可能会干扰LineEndings的命令。
答案 1 :(得分:6)
有一个插件可以执行您想要的操作sublime-line-endings-unify
。
default_line_endings
设置只会影响新文件。 Sublime将使用已存在的任何行结束现有文件。也许你有一个改变结局的工具(比如你的源控制系统)。除非你明确地改变它,否则Sublime本身不会改变它们。