akhodakivskiy / VimFx

Vim keyboard shortcuts for Firefox
https://addons.mozilla.org/firefox/addon/vimfx
Other
1.41k stars 174 forks source link

add key zi = blacklist site #593

Closed Konfekt closed 8 years ago

Konfekt commented 8 years ago

How about a key, say zi, that when pressed shows a dialog box with

This would be more convenient than, as currently, having to edit the blacklist in the Preferences dialog.

lydell commented 8 years ago

Before VimFx 0.6.0, clicking the toolbar button used open a dropdown menu, including a text input with *currentdomain.com* in it, and a button to add that to the blacklist. However, that was intentionally removed in 0.6.0. The blacklist feature has been toned down. Do you really blacklist that much? If so, why? To me, extensive use of blacklisting seems like working against VimFx.

Konfekt commented 8 years ago

Hmm.. VimFx breaks popular sites such as groups.google.com or mail.google.com.

If you don't want users to blacklist these sites, maintain a blacklist file in the repo, instead of every visitor of theses sites having to edit the FireFox Extension Preferences dialogue.

Konfekt commented 8 years ago

It is just easier to the user. For example, it took me a while to realize that , is not accepted as a delimiter. If instead these sites were added by the popup box, that problem wouldn't have occurred.

lydell commented 8 years ago

Saying that VimFx “breaks” popular sites such as groups.google.com and mail.google.com is subjective. I use both with VimFx enabled, and I don’t consider them broken. When I do want to use some of the page shortcuts (which is not very often in my case), I use the I command, or temporarily enter Ignore mode for a short while.

Since people disagree on which sites should be blacklisted, it’s better to leave it empty by default.

There’s a “Documentation” link at the beginning of the options in VimFx’s settings page in the Add-ons Manager. Near the top of the “Options” section this can be found:

Previous/Next page patterns

Space separated lists of patterns that match links to the previous/next page. Used by the [ and ] commands.

If the documentation can be improved somehow, I’m of course open for suggestions.

I don’t want to maintain UI code for this. I want to spend time on fixing bugs and implement more interesting features.

Konfekt commented 8 years ago

Fine, hitting i when needed is not to big a botherance.

Could you hint on how you use VimFx on say groups.google.com? How to scroll for example?

lydell commented 8 years ago

Scrolling on groups.google.com: See #585.

Konfekt commented 8 years ago

Ok, thanks for the fix!

pckujawa commented 8 years ago

I knew there was once a way to easily blacklist sites! I thought maybe I was crazy and had imagined it or was using a different vim'ifying plugin. Please, I am a vimium for chrome user and I only use firefox occasionally, but easily blacklisting really is an important feature. I hope you'll reconsider the decision to remove it from the toolbar (i.e. reopen #619).

I can completely understand not wanting to spend time on maintaining UI code, but I wanted to at least let you know that there are users out there who really find this to be a key feature. I actually did disable vimfx and tried vimium for firefox and vimperator, but vimfx is my go-to for a familiar interface when I use firefox.

Maybe you can copy the UI (and code) that vimium for chrome uses? image

lydell commented 8 years ago

@pckujawa Please don't just say that it "is an important feature" and that it is "a key feature". That doesn't mean anything. Give a specific, detailed use case example.

Maybe you can copy the UI (and code) that vimium for chrome uses?

No. Firefox and Chrome don't have anything in common in terms of UI code today. Also, Vimium's UI is way more complicated than VimFx's would be.

lydell commented 8 years ago

@Konfekt @pckujawa I've added a command like @Konfekt described in his first post to the Custom commands section of the wiki. What do you think about that?

Konfekt commented 8 years ago

Well, looking at the files listed at

https://github.com/akhodakivskiy/VimFx/blob/master/documentation/config-file.md#setup

and the additional steps at

https://github.com/akhodakivskiy/VimFx/blob/master/documentation/config-file.md#custom-commands-that-access-web-page-content

to setup this command, it seems too complicated for the average user to get it running.

lydell commented 8 years ago

And if you ignore the additional steps in your second link that aren’t needed for this command?

Also, does the average user blacklist every other site? I’d imagine the blacklist being used for those one-off pages with lots of custom shortcuts and fancy text boxes and stuff.

Konfekt commented 8 years ago

Ok, then simply I can't find the documentation explaining where to place https://github.com/akhodakivskiy/VimFx/wiki/Custom-Commands#blacklist-domain-using-a-prompt

After all, I rarely blacklist sites though and am fine using zi. It deemed a sensible suggestion that however, as found out, was purposefully removed. Then I would not miss it enough to try setting it up properly, but others will be glad to resort to it.

lydell commented 8 years ago

Thanks for your input @Konfekt. I’ve adjusted the docs to be easier to understand (see the link just above this comment). There are also some extra improvements to config-file.md in the develop branch that will make them even better.

After all, I rarely blacklist sites though and am fine using zi. It deemed a sensible suggestion that however, as found out, was purposefully removed. Then I would not miss it enough to try setting it up properly, but others will be glad to resort to it.

Sorry, I don’t understand this paragraph at all :(

Konfekt commented 8 years ago

Ah, just saying that for me digging through the inscrutable docs was too much a bummer. Will try again. How about you @pckujawa ?

Konfekt commented 8 years ago

Still not understanding properly. Does copy pasting the command code into the `VimFx-custom@vimfx.org suffice?

In the extensions directory, do one of the following:

-  Move your config file directory into it, renamed as the extension ID. For example, rename it to VimFx-custom@vimfx.org.
lydell commented 8 years ago

You can't paste text in a directory.

lydell commented 8 years ago

@Konfekt If you're still interested I've updated the docs again, significantly simplifying them. There is now also the possibility to download all the files needed as a .zip.

pckujawa commented 8 years ago

Give a specific, detailed use case example.

I start typing 'f' and realize vimfx is in effect for a page I don't want (gmail is typically the culprit, but I've also had banking sites, pluralsight.com, and a number of others, especially just certain pages on domains that have a lot of inputs, like the usaa.com banking sight). I want to quickly make vimfx stop doing what it's doing. I click the extremely large vimfx icon. I get nothing but a help page which doesn't even include info on blacklisting (at least, last time I looked). I right click, nothing. I open the extension page and see a textbox for blacklisting - is it comma-separated, space-separated, who knows? I sadly disable the extension and get back to the site I was working on.

pckujawa commented 8 years ago

Well at least https://addons.mozilla.org/en-US/firefox/addon/vimfx/versions/ gives me the option of a pre 0.6.0 version, so I'll go back in time and stop bothering you.

lydell commented 8 years ago

Thanks for your details, @pckujawa. It sounds like VimFx is not the extension for you. I'd recommend you remove it.

Konfekt commented 8 years ago

@pckujawa hitting i is not too tall an order after all.

@lydell Thanks for the zip, I was tacitly begging for it. So now paste

https://github.com/akhodakivskiy/VimFx/wiki/Custom-Commands#blacklist-domain-using-a-prompt

into config.js?

Konfekt commented 8 years ago

Even after pasting it into config.js how to run the command? The naive try :blacklist<cr> gives 'impossible to use blacklist`.

lydell commented 8 years ago

As mentioned in the docs for adding a custom a command (which is linked to at the top of the config file docs):

Note that you have to give the new command a shortcut in VimFx’s settings page in the Add-ons Manager or set one using vimfx.set() to able to use the new command.

vimfx.addCommand({
  name: 'hello',
  description: 'Log Hello World',
}, => {
  console.log('Hello World!')
})
// Optional:
vimfx.set('custom.mode.normal.hello', 'gö')
Konfekt commented 8 years ago

Cool. Got it running with 'zi'. Why not inlude it by default? The setup is too time consuming for an average user. Thank you again for this plush plugin.

adlainewson commented 8 years ago

I got here because I was using , as a blacklist delimiter :(

nilsbecker commented 8 years ago

ah ok, somehow i did not see this issue before. my experience was exactly like @pckujawa 's. basically i like vimfx a lot but i can't memorize the i command between the few times i need it, for some reason. that's why i was missing the possibility to disable via mouse. the blacklisting feature is not the main issue for me, rather the discoverability of ignore mode. i think that last one is quite important -- a user should be able to temporarily disable the extension without any knowledge. there will always be web sites that can't work with vimfx. e.g. http://sampulator.com/

lydell commented 8 years ago

Yeah, http://sampulator.com/ is a great example where it makes sense to blacklist VimFx. So do that and be done with it.

Regarding the discoverability of Ignore mode, I have now added a mention of it directly in the README as well as on VimFx’s AMO page. See the commit above. If you have more suggestions on how to improve the discoverability they are more than welcome :)

rnwolf commented 8 years ago

The documents at https://github.com/akhodakivskiy/VimFx/blob/master/documentation/options.md say

Blacklist Space separated list of URLs where VimFx should automatically enter Ignore mode. Example: example.com http://example.org/editor/*

I have tried adding

https://mail.google.com/*

to the config.js

// This is the actual config file, written in JavaScript. It is in this file you
// add custom commands and set options, or whatever you'd like to do.
console.log('Hello, world! This is vimfx:', vimfx)
https://mail.google.com/*,  https://www.fastmail.com/mail/*

and also the extension preferences blacklist field.

Pressing x when in gmail still closes the tab, rather than selecting the mail. If I press "i" prior to pressing x has it work correctly. It is not clear to me in the documentation what I need to do to blacklist a site. Any tips?

lydell commented 8 years ago
  1. Open the Add-ons Manager.
  2. Click “Preferences” for VimFx.
  3. Paste this in the “Blacklist” box:

    https://mail.google.com/*  https://www.fastmail.com/mail/*

    Note that I’ve removed the comma that made the pattern for Gmail fail.

  4. Remove your config.js. You don’t need it.

Remember to reload the Gmail tab to make the blacklist option take effect.

lydell commented 8 years ago

A year later, I’ve changed my mind and added gB for editing the blacklist on the fly and insert *currentdomain.com* into it. Available in the next version.

Konfekt commented 8 years ago

Awesome. The binding suggests that gb removes the current domain from the Blacklist? Or does it act as a toggle? Then a status message is in order.

lydell commented 8 years ago

@Konfekt I'm not really sure what you mean, but here is how gB works:

It lets you edit the blacklist option. In a modal. With one exception: *currentdomain.com* is always made sure to be at the beginning.

Konfekt commented 8 years ago

Ok. So if the current page is already blacklisted, then gB moves currentdomain.com to the top of the blacklist option and let's you remove it. That's perfect.

lydell commented 8 years ago

Correct!