37

好像在网上找不到任何东西。经常花时间同时编辑多个文本文档,并且不知道我编辑了哪些文档。当我关闭时,我并不总是确定我是否故意更改或意外编辑了文件中的字符。如果有一个功能可以显示自上次保存崇高文本以来的编辑内容,那就太好了。

似乎是一个如此明显的需求,以至于我很惊讶我在功能中找不到任何东西。我错过了什么还是我是唯一一个有这种需要的人?

4

5 回答 5

95

我知道这已经有一个可接受的答案,但没有必要安装 FileDiffs 或其他任何东西。只需右键单击修改后的窗口并选择Show Unsaved Changes.

一个窗格将显示在底部,列出差异。没有明显的方法可以关闭窗格,但Ctrl+F将再次将其替换为搜索窗格。

于 2014-11-11T18:42:57.407 回答
7

将此行添加到您的Preferences.sublime-settings文件中(如果您使用的是 Mac,则打开 Sublime Text 2 菜单 -> 首选项 -> 设置 - 用户):

"highlight_modified_tabs": true

这将突出显示未保存更改的选项卡。

于 2013-07-09T19:05:24.193 回答
6

您可以使用“Marking Changed Rows”插件,该插件会为未保存更改的行放置一个小的装订线标记。

于 2015-02-08T09:11:51.450 回答
5

您可以安装FileDiffs插件,它可以让您了解当前(已编辑)文件和保存到磁盘的文件之间的差异。

于 2013-07-09T19:14:02.640 回答
0

显示未保存的更改

长期以来,右键单击文件中的任意位置提供了一个选项来显示所有未保存的更改。
它将列出对话框区域中的所有更改,也用于查找/替换。
这应该适用于 Sublime Text 23。

增量差异

更新版本的 Sublime Text 3 添加了增量差异功能。

装订线显示哪些行已更改。
这既适用于未保存的更改,也适用于文件保存git 提交之间的更改。 它可以配置为显示差异:最后保存的版本(不需要 git)、git Head 或(通过 API)任何其他内容。

显示修改:

右键单击

  • 排水沟标记,或
  • 排水沟标记旁边的任何代码
    (也就是修改代码的任何区域,无论您的主题是否显示排水沟标记

提供以下选项:

  • 显示差异版本内联,或
  • 打开一个显示所有跟踪差异的对话框

或者您可以使用菜单项:
Edit -> Text -> Toggle -> Hunk Diff
或快捷方式:
Ctrl+ / (在 Mac 上是三叶草图标,而不是 Ctrl)
或者这个快捷方式变体,它也会关闭/隐藏所有其他差异 Hunks
Ctrl+ ; (在 Mac 上是三叶草图标,而不是 Ctrl )

我不知道显示所有未保存更改的菜单项。

菜单项和快捷方式可用于在更改之间导航,并恢复单个(内联)更改。(有关详细信息,请参阅上面的链接文档)。

小警告

  1. 您的主题必须支持diff样式才能看到装订线标记。如果您使用不包含必要样式的旧主题,文档说明了如何添加自定义样式
    但是,即使您看不到装订线标记,只要在您的文件中启用了该选项,功能应该仍然有效。Preferences
  2. 如果您进行编辑,然后将其更改回来,缓冲区仍将被标记为具有 (2) 更改,除非您通过撤消(即 Ctrl-Z)恢复。它不是“文件差异”,而是编辑缓冲区的跟踪器,它存储内容和位置。但是,该Show Diff Hunk选项将显示更改是否“重要”、实际文件差异。

导航:

在修改之间导航(您的主题是否显示装订线标记):
Ctrl+ .
Ctrl+ ,
menu Goto-> Next Modification
menu Goto->Previous Modification

还原一个大块:

将光标悬停在修改后的代码或装订线(无论您的主题是否显示装订线标记):
Ctrl+ K,后跟Ctrl+ Z (在 Mac 上是三叶草图标,而不是 Ctrl)
菜单Edit-> / Text->Revert Modification

这只会作用于diff Hunk光标所在位置的那个。
如果您的光标不在修改后的代码/差异块区域中,它将不会有任何影响。

以下是控制增量差异功能的 Sublime Text 3 设置:

mini_diff控制增量差异功能(仅适用于 Git 的开/关/开)
有效值包括:

true   –  always enable incremental diff (the DEFAULT) (Git or Not-Git)
"auto" –  enable  incremental diff for files in a Git repository (only)
false  –  disable incremental diff

git_diff_target控制 Git 存储库中文件的增量差异的行为
有效值包括:

"index" – diff against the Git index (aka staged for commit), (the DEFAULT)
"head"  – diff against the file at HEAD (aka last commit in checked out branch)
于 2019-05-08T18:52:04.143 回答