Is there any option to view the recent files as in nautilus not just the recent file in a specific directory - vifm

Is there is an option to view the recent files similar to the "Recent" tab in nautilus? I know there is an option to view the recent file in a specific directory. But I want to see all the recent files on my PC.

No, there is no history of opened files.
You're not the only one to ask about it (already in TODO), so it might be added in the future. However, there are difficulties, because you can open files with :! and those cases are unlikely to be tracked reliably (might not even be desirable).

Related

Using shared file templates in WebStorm

File templates for WebStorm can be placed in the config/fileTemplates directory of the local WebStorm settings folder.
In addition to the templates stored there, I have a couple of file templates for our project that are in the project SVN repository. I want WebStorm to also offer me these templates.
Is there a way to tell WebStorm to use a specific folder in my working copy on top of the usual fileTemplates directory?
I could find some hints, but they appear to be dead-ends (or maybe I'm missing something):
The documentation on sharing templates makes this sound very manual (as in, moving files around). This is not a viable approach, as the template files might be updated any time. I do not want to preemptively copy the files around after each of my daily working copy updates, just in case on of them has changed (nor do I want to watch out for changes to the templates folder - I want WebStorm to catch up on these udpates on its own).
The article on file and code templates refers to per-project templates that "can be shared among the team members". This sounds like the right thing, except that they have to be placed in the .idea folder (the folder with the project file(s)). As I'm working on a huge project with many submodules, each team member (of several dozen devs) is only interested in a different subset of the overall project, so everyone has their own .idea folder that is not committed to version control.
The article on project and IDE settings indicates that (only?) "Locations of the config, system, plugins directories can be modified in idea.properties file."

Merge firefox bookmarks

I have two separate computers on which i have a separate set of bookmarks in firefox.
I want to merge the two so that i have access to all the links at a time.
Is there any utility to help me with this.
I can get the two bookmark files (.json - preferred, .html) and try to create a single bookmark file by parsing them. But, i want to be sure that there are no errors and i also want to remove duplicates from the resultant file.
Any pointers would be appreciated. Thanks a lot.
Export bookmarks in HTML then import the bookmarks-date.html is the simpliest and fastest way to merge a given bookmarks set.
Especially as Firefox supports export/import tags and annotations starting with version 43. This allows to export/import any bookmarks' folder(s) you wanna keep, in place of replacing the whole lot, finally :)
Take a look at Firefox Sync. It is a way to keep your bookmarks, history, preferences, passwords, etc. synced across multiple devices. Also, it comes standard with Firefox; you don't even have to install an Add-on to use it.
You can export your bookmarks or just look them up in your profile folder.
I think the easiest way to merge two bookmarks files is importing one profile to the other firefox (and eventually exporting the merged bookmarks again). It does not need any (manual) parsing and should not produce any errors.
The solution I found the easiest is to download a different version of Firefox (in my case Firefox Nightly) which I don't use and use it as the host for the new bookmark list. I exported the bookmarks from both machines in HTML format, naming them differently. The plugin which I used was - Bookmark Dupes by Martin Väth.
Just import both HTML bookmark files, then use Bookmark Dupes to first delete all duplicates and then delete all empty folders. You will be then left with a duplicate folder structure which has bookmarks in one but not the other, just move the bookmarks up to one folder and then delete empty folders when you're done.

Sharing files between Mercurial repositories

There are one or two files, like .hgignore, which I generally want to be the same in each of a bunch of projects.
However, the nature of these files means that I can't simply move them to a common shared project and just make the other projects depend on that project. They have to be inside each project. Symbolic links are not an option either because some of our developers use Windows.
How can I share these files between repositories and have changes propagated across (on my local machine, at least)? I'm using Eclipse.
For your specific case of hgignore you can put an entry like this in each project's .hg/hgrc file:
[ui]
ignore.common = ~/hgignore-common
If you you know your common library will always the in the parent directory, as is often the case with a subrepo setup you could do:
[ui]
ignore.common = ../hgignore-common
or if you know it will always be in a sibling directory of project checkouts you could do:
[ui]
ignore.common = ../company-wide-defaults/hgignore-common
Unforunately there's no absolute way to reference a file that's valid everywhere, but you can at least to to a point where on your machine all your checkouts are referencing a common ignore.
Hardlinking instead of copying the relevant files sort of works with Eclipse - although you have to refresh each of the other projects to get it to pick up the change. However, you can configure Eclipse to watch the filesystem and automatically refresh whenever it needs to - I recommend this.
It does not work by default with Emacs, because Emacs breaks hard links (which is normally the right thing to do, but is not what you want in this case). However, you can disable this behaviour for multiply-linked files with (setq backup-by-copying-when-linked t).

Disable file history for a particular set of files in Mercurial

I understand that in mercurial you can never remove a history for a file unless you do something like this. Is there any way to disable history for certain files from ever being created?. If any other repository system is capable of doing that, please put that down as well.
Why would I want that? Well, in our build system, new binaries are constantly being committed which the non-programmers can use to run the program without compiling every time (the compilation is done by the build system). Each time new binaries are committed, the old ones are useless as far as we are concerned. It is unnecessarily taking up space. If the new binary messes up by any chance, we can always revert back to older source and rebuild (assuming there is a way to disable history for specific files).
As you found out, you cannot do what you want directly in Mercurial.
I suggest you put the binaries somewhere else -- a Subversion subrepo would be a good choice. That way you will only download the latest version of each file on the client, but you will have all versions on your server (where it should be easy to add more disk space).

Ask or alert the user that she is changing a specific file, which we seldom want to change (but still want in our version control)

We have an XML file which contains the settings of a tool we use. The tool is nice, but if you change some settings when using it it's quite easy to save those settings to the XML-file by mistake (you get a question, but it's easy to answer yes).
Is there a way to alert the user someway that she is commiting a change to this specific file? We want it versioned, but we also want centralized and we want the settings to be quite stable.
It's a file versioned in Windows on an NTFS partition, if that matters. Trying to set the file to "read only" doesn't seem to work (after I set it, hg st still says no changes). Any ideas?
The way this is usually handled is to put that file in your .hgignore and to not version it. Instead, you should version a template file. i.e., config.xml.template.
That way, the only way changes will get committed to it is for someone to consciously bring those changes into the template.
If you really want to catch it during commit, you'll need to write some hooks and get your users to install those locally.