Default folder missing in Sublime Text 3 directory - sublimetext3

After installing Sublime Text 3, I try to use a custom keyboard shortcut (F5) defined in:
~/.config/sublime-text-3/Packages/User/Default (Linux).sublime-keymap
The shortcut doesn't work, and I see in the console the following message:
Unable to open /home/gabriel/.config/sublime-text-3/Packages/Default/Preferences.sublime-settings
Not only this file is missing in ST's install directory, the entire ~/.config/sublime-text-3/Packages/Default/ folder is missing. But If I open Preferences/Key Bindings, the default keymap file is opened correctly:
and the path shown for that file is within the ~/.config/sublime-text-3/Packages/Default/ folder, which I know is not there (!)
What is going on here? How can I fix this?

Why the Key Binding is not working is nothing to do with the default file paths, the directory not existing, or the console errors.
Restart Sublime Text and the Key Binding will work. Enable command logging to see that it's working: in the console sublime.log_commands(True).
Sublime text shouldn't be displaying the paths for those Default package files. The ~/.config/sublime-text-3/Packages/Default/ directory doesn't exist because those files are distributed with Sublime Text, you'll find the files in the the Default package where Sublime Text is installed e.g. /path/to/sublime_text_3/Packages/Default.sublime-package. .sublime-package files are essentially zip files. Ignore those paths, and the error messages in the console. Those are Sublime Text issues.

None of these answers are directly solving the problem you nerds.
For the silicon-challenged, what you need to do is this:
go to the path that it's telling you doesn't exist:
/home/gabriel/.config/sublime-text-3/Packages/Default/Preferences.sublime-settings
You are on the right track to deducing the source of the problem - I have the same problem but It wouldn't allow me to change the font for my text editing. Sublime must have an install problem. I'm on ubuntu 16.04 LTS .
Do this:
a. create the folder, name it "Default" - under "Packages"
b. go to your sublime text and go to preferences -> settings
c. copy everything on the LEFT side (it should be showing a full list of defaults, which you can't edit, and a user changeable file on the right)
d. go to the folder you just made (Default) -> inside it create a file with the exact name "Preferences.sublime-settings"
e. paste everything into it
f. restart sublime text
g. You are now a G
you're welcome

I arrived here via a very similar search for why a directory was not being displayed in sublime text. In case anyone else arrives here from the same search, here's why:
directories that are known to house source control information and various binary output files are automatically excluded from the sidebar
Source: https://forum.sublimetext.com/t/missing-files-in-folder-tree/31145/3

Related

Sublime Text 3: import projects list from folder/files to OpenRecent list

I save several projects in a same folder by manual click Project -> Save Project As...
and I used to use cmd + ctrl + p to open Switch Projectlist to switch between projects
and everything's works fine.
but today, I accidentally remove my Switch Project list in by click Project -> Open Recent -> Clear Items, so my Switch Project list is empty now...
I know I could add them back through reopen ALL my projects. due to the number of projects is pretty a lot, that will be kind of annoying to add them back one by one.
I wanna know if there's a smarter way to do that for me.
maybe import all my *.sublime-project files from folder or something.
thanks
Short of manually opening every project, I don't think there is any way to do something like this directly. There isn't a command or plugin endpoint that I'm aware of that lets you open a project by name or filename, so it's not possible to create a plugin to do the work, and Sublime doesn't have the ability to pre-load the list of packages directly either.
That said, it is possible to manually update the list of recent projects, but whether or not that is more or less work than opening all of the projects is something to consider.
If you use Preferences > Browse Packages from the menu or the command palette, a file browser will open on your Packages folder. From there go up one directory level and go inside of the Local folder, where you will find a Session.sublime_session file.
Sublime saves it's state into this file when you quit it, and uses it to restore state when you start it again. Here you will find all of the saved information, such as the windows and files that were open and so on.
Changing this file will change the data that Sublime loads, so you can modify the session file to set up the data that you want. You need to make sure that you modify the file while Sublime is not running or your changes will be ignored and clobbered away. Also it's a good idea to make a backup of the file before you start in case things go pear shaped.
Down near the bottom of the file you will find a top level key named workspaces, and inside of it a recent_workspaces key:
"workspaces":
{
"recent_workspaces":
[
"/home/tmartin/local/src/OverrideAudit/OverrideAudit.sublime-workspace",
]
}
This is where the list of recent projects is stored for use in the menu and the quick switch project command. Particular things to notice are that the entries are naming sublime-workspace files, and that the paths are absolute.
NOTE: On windows, the filenames stored in the session file are in a format like /C/Users/tmartin and not c:\users\tmartin; on that platform you need to make sure that you adjust the paths accordingly. As long as there is already at least one entry in the list when you look at the session file, you can easily see how to construct the paths that you need.
Despite the name of the commands and menu items, what you're actually switching between is different workspaces. Every sublime-project is associated with a sublime-workspace file, which acts as a dedicated sublime_session file for that particular project. This mapping is one-to-many in that you can have multiple workspaces for the same project file, allowing you to reference the same paths in multiple windows but have different window layouts.
While Sublime is not running you can edit this file to add in the full paths to all of your workspace files; when you start Sublime up the list will be populated (every sublime-workspace file knows what sublime-project it is associated with).
What remains is whether or not it's quick to come up with the list of files in a way that you can easily paste them into the session file.

How to avoid .pyc file listing in open File Dialog sublime text

i am trying to find if any possible configuration is available in sublime-text editor that can ignore the listing of *.pyc files in OPEN FILE DIALOG because,
its problematic and slow when Press Ctrl+O and type file name and its select file with *.pyc format. and we require to select next file to to open actual *.py file.
I tried file names in ascending order in Open file Dialog that lists *.py files first & *.pyc second. but i work with files mostly starts with a,x,y,w and that's why i require solution.
Sublime uses the underlying Open dialog of whatever operating system you're running it on, which means that it's technically up to the operating system in general to provide the capability to provide that kind of filtering.
If you're using Windows, you can change the file filter to Python, which will exclude *.pyc files. You can also enter *.py in the file name box and hit enter to get the dialog to show you only files with that extension.
On MacOS you can enter *.py in the search box in the top right of the open dialog to find files of that type. As far as I'm aware that's always going to search your whole Mac for files of that type and not just the folder that you're currently looking in, though (I don't use this particular feature of MacOS).
On Linux, well, that's going to depend on your Linux distribution in general. On my particular Linux machine, the dialog has a Search button that works similar to the one on MacOS, finding all files everywhere that match instead of just filtering the current location. Other distributions may have something similar to this or Windows.

Sublime Text 3 customizations vanished, is the Packages folder not being read?

After restarting my mac, all my sublime text customizations (packages, key bindings, syntax specific settings etc.) have vanished.
It's as if it were a fresh new install.
Upon investigating, I've noticed that the Browse Packages menu item now points to "/Applications/Sublime Text.app/Contents/MacOS/data/Packages" as opposed to what it used to (and where my packages are still present), which is "/Users/xxxxx/Library/Application Support/Sublime Text 3/Packages".
I feel like I should just copy the folder from one place to another, but I don't want to create a mess.
How do I get everything back to it's original state where my customizations are read?
Some additional info about my mac and ST3 (maybe relevant):
Sublime has an internal notion of where it's Data directory should be located, which is based on the operating system that you're using but resides somewhere in your home directory. The Data directory is the place where things like packages that you install and your User package (which contain your settings) is located, among other things.
If you create a folder named Data in the same location as the sublime text binary, that location becomes the Data directory instead of the default.
This is how the Windows portable version of Sublime works, and although it is not documented, it also works under MacOS and Linux (additionally the folder has to have the proper case of Data if your file system is case sensitive, which is not the default on MacOS or Windows).
The fastest expedient would be to quit sublime, and then rename /Applications/Sublime Text.app/Contents/MacOS/data to /Applications/Sublime Text.app/Contents/MacOS/data_old and restart. That should get you back your settings as they previously existed.
Once you've done that you can see if anything inside of the data_old/Packages folder is anything you care about and copy it to the appropriate location.

Ignore directories/files in Cmd-T opener in Sublime Text

I'm trying to open files using Cmd+T on Sublime Text. I'm sure I remember it taking it's settings from the "find in project" bottom bar (Cmd+^+F), but that doesn't seem to work.
To clarify, my find in project settings include -node_modules/ and when searching for strings I know are in files in that folder, it doesn't find them, but when I try to open readme.md using Cmd+T, it shows me all the readmes in my modules.

Where are the default packages in Sublime Text 3 on Ubuntu?

I'm migrating from Sublime Text 2 to 3. In Sublime Text 2, I changed a lot of the default settings of the editor -- such as the tab bar height, sidebar color, etc. -- by modifying the Default.sublime-theme file in sublime-text-2/Packages/Theme - Default. I was also able to modify the colors of the default color schemes in a similar fashion. I've been trying to figure out how to do this for Sublime Text 3, but can't seem to find these files. ~/.config/sublime-text-3 only seems to contain overrides for user settings, not the default settings.
This link on the Sublime Text forums seems to give the location for Windows and Mac, but not for Ubuntu. I've searched a bit to no avail. Does anyone have suggestions?
Thank you!
To amplify on #skuroda's answer - ST3 contains all of its data that, in ST2, was stored in Packages/PackageName, in PackageName.sublime-package files that are basically just zip files, or "Resources" as they're now known. Using PackageResourceViewer, you can easily edit the individual files contained within the resource, then save it back again. When saved, the proper directory structure under Packages/PackageName will be created, allowing you to edit the file directly next time. The way file precedence works in Sublime, any file that exists in ~/.config/sublime-text-3/Packages/PackageName/ will override any file of the same name stored in PackageName.sublime-package.
However, since you don't want these files to be accidentally overwritten, I would suggest creating ~/config/sublime-text-3/Packages/User/Themes/ and User/Color Schemes directories and storing your customized files there instead. The User/ directory is protected from overwrites during upgrades, etc., and unless you're planning on creating a customized theme or color scheme for redistribution through Package Control, it's best practice to keep your files in there.
EDIT
I just realized you hadn't gotten an answer to your original question - where are the files stored? If you installed the .deb file from sublimetext.com, all the .sublime-package files are in /opt/sublime_text/Packages.
If you want the easiest way to save your customized settings first copy all the default settings and paste into a new file named Preferences.sublime-settings.
Then make your changes and save the file to:
/home/**username**/.config/sublime-text-3/Packages/User
In order to see the .config folder you will have to enable show hidden files.
The instructions are written at the top of the default settings list in case you are wondering where got this from.
In the ST console, try entering sublime.executable_path(). This should get you close to where you need to be. Also, you should copy the content of the file out and move them (under a new name to the packages folder). You probably don't want your modifications to be reverted on subsequent update. An alternative method is to try overriding the files you need to. I haven't done that for theme files, so I'm unsure if everything will work as it should. If you take the override route, I'd recommend using PackageResourceViewer. I wrote it to help with browsing/overriding package files in ST3.
You can use
dpkg -L <package name>
For example
dpkg -L subli<tab>
Just open up sublime text, hit ctrl+` to open sublime text console, then run these command accordingly
sublime.packages_path() to see user installed packages directory
sublime.installed_packages_path() to see zipped packages (with .sublime-package file type) directory
Mostly likely, you'll find the Default package inside zipped packages directory.
You can use PackageResourceViewer to see zipped packages's contents as #MattDMo suggested, but more over, you can actually extract zipped packages into user installed package directory directly using PackageResourceViewer's extract command.

Resources