Where are bookmarks stored? How do I keep them if I copy the script file elsewhere? How do I add them to version control?
Answered
One of the features I miss the most from Spyder is recognising lines starting with "#--- Part A of my code" as a bookmark, and showing "Part A of my code" in a kind of project explorer, for easy navigation.
Will PyCharm ever introduce something similar?
Right now, I can add bookmarks:
- F11 to toggle a bookmark
- Shit + F11 to open the vookmark windows
- CTRL + Enter to add a description
Slightly more convoluted, but it works. However:
- Where exactly are the bookmarks stored? The .idea folder has some xml files but I couldn't find the bookmarks there
- If I want to copy the file to another folder (e.g. to start a new project based on an existing one), how can I keep the bookmarks? Which files would I need to copy together with the Python script file?
- How do I ensure that, wherever the files with the bookmarks are stored, they are added to version control? I am using git locally. Is the answer different if I use PyCharm's version control and if I use an external tool like GitKraken? Eg maybe Pycharm knows where these other files are and commits them automatically, whereas GitKraken won't know?
Please sign in to leave a comment.
Thank you for your reply.
So somewhere in the Pycharm config directory there are files with information on all my projects!!! This is crazy, it is incredibly poor design, and it poses a number of issues:
It's also very hard to make sense of these xml files. Yesterday I worked only on one project; based on 'date modified', I found 2 xml files, and opening them I found the one with the bookmarks, but the file names are something like "1swQrt159" etc etc.
Are you sure that bookmarks are stored in workspace.xml?
If I open it,I see text matching the comments of my git commits, but nothing related to bookmarks. I have 6 bookmarks, to which I have added a description, but I can't find any of these 6 descriptions.
Also, since workspace.xml contains data on git commits, wouldn't I mess things up by copying that to another file?
Come on, JetBrain, just copy the bookmark functionality from Spyder, it makes so much more sense!
Have there been any changes on this?
To be honest this is the main reason why I have switched back from PyCharm to Spyder. I would really like to have a way to flag bookmarks in the script itself - come on, it's not complicated!
My apologies, I based my answer off another answer from https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000394030-exporting-Bookmarks-possible-
But now that I went and checked it, it seems to be no longer true. The bookmarks are currently stored in <pycharm_config>/workspace/<workspace_id>.xml , under the following:
You could copy-paste that from one workspace file to another, but I understand it might be cumbersome to deal with those IDs.
P.S. PyCharm config directory can be located according to https://intellij-support.jetbrains.com/hc/en-us/articles/206544519
@Eugene Morozov Fortunately yes !
And I must admit that I'm very disappointed in the fact that there is no IntelliJ team support for this topic,
or some guidance to help people, as this happens pretty much after all new versions of IntelliJ and it's update,
and as a consequence, it impacts a developer's work, at least for us who work on really big projects.
So I've decided, to make this short tutorial how to restore back your bookmarks for Windows 10 users :
As of version 2020.1, IntelliJ operates under hidden Windows user AppData folder :
e.g. C:\Users\<windows.user.name>\AppData\Roaming\JetBrains\IntelliJIdea<version>\workspace
Even more, under C:\Users\<windows.user.name>\AppData\Roaming\JetBrains there are previous versions, (along with backup folders !)
and under appropriate version, in folder "workspace" there are all modifications, in the form of <funny_ssh_like_fileName>.xml
(e.g. 1lFTpsTT6pUo3tksBtYpwaD5qZ2.xml)
So, in my case, I've :
1. opened ~\AppData\Roaming\JetBrains\IntelliJIdea2020.3\workspace
2. sort files to descend based on modified flag
3. opened the newest one, and found that there is just one new bookmark, without previous ones !
4. so, I opened next recent xml, found <component name="BookmarkManager"> and copied everything in between,
into the current IntelliJ workspace file
Dobri7 your comment really helped me, your post led me to the true location of the workspace file where my bookmarks+favourites were being stored, thank you.
My problem was I was stuck trying to delete an item from my favourites list through the IDE, but it didn't do anything - the item remained. Deleting it from the file solved the issue
Jakub Faber
Please vote for https://youtrack.jetbrains.com/issue/IDEA-98138
I added your feedback to the issue thread so that the dev team can see it.
Unfortunately, I did copy all the `BookmarkState` entries under here:
but looks like PyCharm's first action on restarting was to wholesale delete all my new entires… giving up for now.
Thanks lost all my bookmarks, i know this is stupid to trust IDE to store bookmarks, but i did it anyway, next time i just mark lines of code with keyword as bookmark. Idiotic software design to store bookmarks away from project.
Hi,
Bookmark export seems to have been deprecated quite a while ago: https://youtrack.jetbrains.com/issue/IDEA-111619
Bookmarks are stored in .idea/workspace.xml , so you could copy that between projects or using VCS.
I may have found a solution.
PyCharm lets you add other text patterns that can be recognised in the ToDo pane, e.g. "optimise" etc. This is explained here: https://www.jetbrains.com/help/pycharm/using-todo.html
By setting “sect” as one such pattern, comments beginning with #--- SECT or with ### SECT will be recognised by PyCharm in the ToDo pane, and by Syder in the outline pane.
This means nothing is stored in separate xml files, and the same code can be easily shared with anyone using Spyder (with no additional changes) or PyCharm (as long as they make this tiny change to their settings).
Unfortunately it is still the problem.
On Linux I was able to export them all with: grep -r '<bookmark url=' $HOME/.config/JetBrains/CLion2020.3/workspace/* . But there is no straightforward way to associate it with project, the name of xml file in app config location is the id of the project stored in project's folder in .idea/workspace.xml: <component name="ProjectId" id="1q4YOC4a4NM32p6nIRGQNQJMLR5" />.
Thanks for this discussion: I had the same problem and this cleared it up. What worked for me was deleting the reference in my project's
workspace.xml
to the obscure file where bookmarks are stored. Needless to say that's not much of a solution. This is a really dumb way to manage settings.Bump – Feature request – Export and restore bookmarks; option to store bookmarks within the git repo of the project or other git repo
How do we make a feature request from this?