Sublime Text 3侧边栏自动更新不起作用

30

我想知道如何让Sublime Text 3在finder(osx)中向当前项目添加新文件夹/文件时自动更新侧边栏。

目前,我必须手动选择“项目”->“刷新文件夹”。

我的用户偏好可能不是问题,因为它们非常基本:

{
    "color_scheme": "Packages/Color Scheme - Default/Solarized (Light).tmTheme",
    "font_size": 18,
    "tab_size": 2,
    "translate_tabs_to_spaces": true
}
如果有人能帮忙,那太好了,因为我已经试过谷歌搜索,并寻找答案,但没有找到有效的方法。
先在此感谢。

我在使用v3时也遇到了这个问题,但是在Windows 8上从挂载的Samba共享中工作。我在Sublime中创建了文件夹,但是直到刷新后才会显示出来。 - Corgalore
16个回答

13

我最近遇到了这个问题,结果发现是与DropBox有关。一旦我删除了DropBox并重新启动我的计算机,文件夹刷新就像之前一样工作了。此外,DropBox也影响了其他几个应用程序,特别是SourceTree、Transmit以及Sublime Text 3。


我可以肯定地确认这一点;开启Dropbox后,我甚至无法展开项目中的文件夹。 - Thor
什么?Dropbox 和任何事情有什么关系? - tutuca
2
Dropbox会导致大量的目录访问,最终会导致Finder和其他应用程序出现故障。 - hereswhatidid
五年后,这个问题仍然存在。 我与Dropbox支持团队进行了对话,他们归咎于Sublime Text。https://gist.github.com/JesseAldridge/133dd7e72a1af9de0b69d8dfb2b147cf - Jesse Aldridge

8

我曾经遇到过同样的问题。你可以将文件夹刷新绑定到热键上(参考链接)。虽然这不是自动更新的完美解决方案,但仍可避免手动刷新所需的更长时间。我相信Dreamweaver也是这样工作的。


6

我也曾经遇到过相同的问题(在ST3上,OSX 10.9.2)。原因是我的项目根目录存在问题。我创建了一个新文件夹Code1,将所有项目移动到此文件夹中,删除旧的Code文件夹并将新的Code1重命名为Code。这个小技巧让一切恢复正常。


4

打开控制台看是否有错误。当文件系统发生更改时,它会记录日志。


对我来说,我的项目中每个文件夹都显示了这样的错误信息:FSEventStreamStart failed on path foo (FSEventStreamCreate returned 0x7f91ad9d8100) - Taylor D. Edmiston

2
这可能是插件SidebarEnhancements出错的结果,这也是我的情况。使用包管理工具我删除了该插件。然而,我无法重新安装该插件,因为它不会在可用插件列表中显示。所以,我在仓库中关注了这个Github问题并将其克隆到正确的目录中。
另外需要注意的是,在Sublime Text中,我点击“Sublime Text”->“Preferences”->“Browse Packages”打开了正确的克隆目录。如果你在结果窗口的顶部栏中点击文件夹图标,你实际上可以将其拖入iTerm2,从而进入正确的位置,在运行下面的git clone命令前先定位到正确的位置。
最后,退出ST3并重新打开即可。希望对您有所帮助。

2

我曾经使用过通过Samba挂载的磁盘时遇到了这个问题。我猜测这可能与操作系统或文件系统没有触发正确事件,以便Sublime意识到文件夹中有新内容。

我猜测你正在工作的项目所在的磁盘属于一个已挂载的磁盘,可能具有不同的文件系统。尝试移动项目并查看是否有帮助。如果是这种情况,也许您应该检查一下挂载原始存储项目的磁盘时使用的标志和其他设置。

然而,我不知道如何解决这个问题,因为我没有使用OSX的经验。


我不确定这是否是事件未被触发的问题,因为即使我明确地点击“刷新”,它更新的速度也没快多少。 但我完全同意这与Samba有关;对我来说,这只发生在远程挂载的文件系统中。 - Kamafeather

1

我使用的是Windows,所以不确定我的解决方案是否与确切的问题相关,但既然我在Google上找到了这个,我想它可能会帮助某些人。我的问题具体涉及SideBarEnhancements插件。

愚蠢的解决方案(首先尝试此方法):

  1. 关闭Sublime Text,转到Packages目录(在Windows中,这在%HOMEDRIVE%%HOMEPATH%\AppData\Roaming\Sublime Text 3中(Win+R,粘贴该路径,输入);
  2. SideBarEnhancements重命名为其他名称,然后再改回其原始名称;
  3. 重新打开Sublime Text。

好的解决方案(适用于Windows上的Git Bash):

如果愚蠢的解决方案没有起作用,那么继续执行就没有意义了。

但是,如果它起作用了,您可以自动化这个过程。

  1. 打开%HOMEDRIVE%%HOMEPATH%\.bashrc,或者换句话说:User\.bashrc(如果没有该文件,请创建);

  2. 将以下内容粘贴到文件末尾(最好在新行上):

    touchme() {
        echo 'Killing Sublime Text process..';
        taskkill -IM "sublime_text.exe";
        cd ~/AppData/Roaming/Sublime\ Text\ 3/Packages;
        touch SideBarEnhancements;
        echo 'SideBarEnhancements folder touched;';
        echo 'Returning to original directory..';
        cd -;
        echo 'Reopening Sublime Text..';
        "/L/Program Files/Sublime Text 3/sublime_text.exe"&
    }
    

  1. 更改你的sublime_text.exe路径(函数的最后一行);
  2. 如果已经打开Git Bash,请执行source ~/.bashrc并跳到6;
  3. 如果未打开Git Bash,请打开并跳到6;
  4. 执行touchme不带括号;
  5. 如果你使用touchme命令做其他事情,或者只是不喜欢它,请随意重命名该函数(我发现这是最容易编写和记忆的:P)。

我想上面的代码可以通过一些小的调整适用于Unix系统。


0
我的项目的一个子文件夹包含了指向项目本身的符号链接,导致出现了循环。当我删除它并重新打开项目时,问题就解决了。然而,这个符号链接对于我的项目是必要的,所以我创建了一个简单的.sublime-project文件:
{
  "folders": [{
    "path": "/",
    "folder_exclude_patterns": ["symlink-or-one-of-its-parents"]
  }]
}

排除模式使Sublime忽略了循环,侧边栏立即恢复正常。请注意,folder_exclude_patterns只接受文件夹名称,而不是路径。这意味着它可能会排除您不想排除的内容(例如,如果您写入lib,它将排除项目中所有lib文件夹,无论它们在哪里)。希望这能帮助到某些人。

0
有点晚了,但我通过关闭DropBox的Finder集成来解决了这个问题。Yosemite 10.10.x存在已知问题。 https://www.dropbox.com/help/7144 在工具栏中单击Dropbox图标,单击齿轮,然后打开首选项。取消勾选启用Finder集成。然后重新启动计算机。
希望能有所帮助。

0

我刚刚解决了这个问题,我认为原因是因为我使用Dropbox同步我的ST3设置

几天前,我选择了“重新打开登录时的窗口”,发现Sublime比Dropbox初始化更早,导致一些设置无法正确加载。

结果是当我使用subl .打开项目时,我发现侧边栏不能正常工作。起初,我只是关闭了ST3窗口并重新运行subl,但它没有起作用。

最后,我退出了ST3(cmd+q),确保Dropbox已经正确加载,然后再次运行subl。这次它起作用了。

希望能对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接