-
-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: Compare to plugins like Vimium and Tridactyl #83
Comments
MotivationThe main reason for me to start Vieb was that most plugins at the time that I tried just emulated a few keys and called it a Vim plugin. With Vieb the plan is to make it FEEL a lot more like Vim than the plugins ever did for me. I haven't tried every single plugin, and there might very well be plugins that do this properly. I never did find them, and as such I made Vieb and use it daily. Here are a few things I remember disliking about the plugins back then. Separate modesThis meant that shortcuts often conflicted with the website shortcuts. A big part of the initial design of Vieb was the clear separation of modes, similar to Vim. In Vieb, I haven't had an issue like this, because I only use insert mode to type text and very rarely to do other stuff (again, similar to Vim). The mode of Vieb is prominently displayed in the navbar, so there's never any confusion what the pressed keys will do. Follow modeBecause of the issue above, picking a follow mode item is inconsistent, and sometimes has side-effects. Besides that, most plugins weren't very clear about where it would actually click, as they would show the keys on the topleft of the element, usually obstructing the view to what you would actually click on. Finally, it was fairly unclear what would happen upon clicking something, because you have to assume if it's a button, a link or something else. In Vieb, a box is shown around the element so you know which element it is and the expected keys are on the topright so they don't overlap the element you wanted to click on. The links are all color coded based on type, and you can choose to open links in the current tab or in a new tab. Vim-plugin limitationsDue to the nature of browser plugins, many proper integrations that you would expect just aren't possible with web extensions. I don't remember any of them having very useful settings or mappings, but it's also not possible (at least in Firefox) to modify all browser settings from a plugin. Vieb has What elseI can type much more about why I think Vieb is supposedly better, but I don't think that it will really mean anything if I just tell you that I think it's better. For an objective comparison, you need to ask the end-user what they think of it. That includes you, but also most people reading this extensive comment. For me the choice between using a Firefox plugin or Vieb has already been made. Though that doesn't mean that it will be better for everyone. ConclusionI hope this provides a bit of background on why I started Vieb. I am not in a position to make a comparison or guide myself, I haven't used these plugins long enough for that, and I also have no reasons to use them over Vieb. For me Vieb is already stable enough to be my daily/main browser for over a year. Therefor it's up to you and other contributors to make such a comparison and guide, much more objectively than I'll ever be able to. More infoAnyone interested should be able to get a pretty complete list of features by reading through Vieb's |
Regarding migrating, it would be convenient to provide custom viebrc files with the default settings from different vim plugins. This would both lower the learning curve and show new users how to customize Vieb. Maybe these could be linked in the "Examples" subsection of the "Viebrc" section of the help next to the chromium and firefox viebrc example files. |
Sure, please make pull requests for adding new example configs that emulate vim-plugins or other browsers, that sounds great! |
I might do such an example config, but in the meantime here are just a few bindings which preserve muscle memory from the " Jumping to Omnibar
nmap o <action.toExploreMode>
nmap O <action.openNewTab><action.toExploreMode>
" Copy current url
nmap yy <action.pageToClipboard>
" vimium-like duplicate tab
nmap yt <action.openNewTabWithCurrentUrl><CR>
" Copy links like in vimium (need to press y on the focused link to copy it)
nmap yf <pointer.start><action.startFollowCurrentTab> |
Here is a more complete viebrc for vimium. Please tell me if there are mistakes. @BachoSeven do you know any of vimium's caret mode mappings that I could use for pointer mode in Vieb? |
@ottopiramuthu from the wiki, I guess the only thing missing is the vmap c <pointer.start> Edit: actually you already had that one, so nevermind. However, I found it can improved like this: vmap c <Esc><pointer.start> since otherwise the visual selection is not cleared whe going back to caret(pointer) mode. This is closer to how vimium has it. |
Also, a minor issue with your nmap T <action.toCommandMode>buffer<Space> I also had issues trying to map this to correspond to the vimium opened tab selection: it appears that emulating user input through the binding does not activate the command-mode tab-completion, which kind of defeats the purpose of this binding. @Jelmerro do you think there is a way to make the emulated input (i.e. |
The only other issue I found is that vmap 0 <pointer.moveLeftMax> doesn't work, probably because Edit: Similarly, the other binding which involves nmap g0 <:buffer 0> |
@BachoSeven With this commit the mappings with |
@BachoSeven The map issue involving numbers should be fixed with the commit mentioned above. Currently the suggestions only trigger for manual input for performance reasons. Maybe we can also add a check after executing a mapping to see if suggestions should appear, because I don't think it would be good to constantly update them while typing out a long command automatically with a mapping. |
Does this solve your use case @BachoSeven? |
I've been trying to make these two mappings from vimium:
Both work like Both |
Because events aren't native, they won't execute the functionality of the operating system (this includes things like copy, right arrow or end etc.). To work around this, we would need to manually implement functionality for these keys. Currently almost all keys are assumed to be characters that can be typed out, see here for the implementation. I would suggest a separate github ticket for keeping track of this. |
It might, I haven't been able to run from master( Also I don't know if you had thought of this, but it might have been more economical to add a "command" which activates completion, so one could add |
Could you start with It's not just completion though, they are suggestions. You can see them when you type, so you know what's right and what isn't and use that to know you're typing it correctly. You can then tab to them if you want to autocomplete. I know Vim doesn't have the realtime suggestions by default, but they can be turned off if desired. For now I made it so that after executing a mapping that ends in one of the modes with suggestions, it will show them once at the end. |
Right, I meant suggestions. Just tried using As for why it fails to start without |
I have made a viebrc for Tridactyl here.
|
|
Here is the list of aliases. A lot of them like If you find any other aliases you want from the list please let me know. P.S. There is a typo in the |
The |
Here is a rough migration guide from Vimium. I use I am unsure how much explanation of things like mappings should be written out and how much should be deferred to sections of the help. Please let me know if anything is explained too much/too little. @lorenzleutgeb is this what you had in mind? Let me know if there's anything you would change. |
I also don't really know where these guides should ideally be hosted for maximum visibility for new users. Regarding the help, I usually just tell people to run
Otherwise a good guide, but it's probably better to ask feedback about it from more experienced Vimium users, as I have used that a couple of hours at most. |
I see what you mean with the nicknames, that's a concept I wasn't familiar with. For what it's worth, V5 of Vieb will have suggestions for searchwords, so that's something, but it's still different from these nicknames. I think showing what Vieb can do is better highlighted now that the links to the help are actually working, so that's nice. Finally, I would prefer the missing list to be at the bottom, but I'm probably too biased in favor of Vieb to make a neutral decision on that 😉 |
I've put the missing list on the bottom. From a reader's point of view, it's clearer to have one long part of the guide list things that can be done, rather than interrupting that with the missing list. |
Here is a viebrc for Qutebrowser. Please let me know if there's anything I need to change. |
That's pretty cool, will you be opening a PR for that in the future? |
I will as long as no one finds any errors. |
Since example configs have been a thing, I have not seen people request this (at all). Does this mean that we can close this ticket as completed in the form of the example configs, since it makes learning Vieb shortcuts not required as you can change them easily to match a specific plugin? Or is there still a market for actual guides (which will to be fair probably become outdated much faster than the examples)? Just interested to hearing how we can aim to close out this fairly old ticket, since there has been little progress on it (and unlike other old tickets doesn't seem blocked). |
I think the current examples provide enough help for new users to Vieb, and if there are plugins or mappings missing, feel free to open new PRs or issues for specific issues. I will however be closing this broad overview ticket, as I feel this has been mostly addressed by having so many example configs available within Vieb, but also because I have recently been adding more default mappings that are similar to both Firefox and some plugins, if they don't conflict with existing mappings. So feel free to suggest more mappings in the future, but please do so in a new PR or issue. |
I am genuinely interested in Vieb. At the moment I use Firefox with Vimium and TreeStyleTabs, and I have tried Tridactyl. There are other similar plugins available.
I think it would be beneficial for adoption of Vieb if you could provide
The text was updated successfully, but these errors were encountered: