My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Vimperator3DesignGoals  
Vimperator 3.0 (and beyond) design goals
Updated Jun 2, 2011 by stubenschrott@gmail.com

Vimperator 3 will be a major redesign, since people really wanting a 1:1 vim clone can use Pentadactyl now. Vimperator 3 will therefore focus on easy usage, consistent design, minimalism and maintainability while still preserving the powerful nature we all love in Vimperator.

Current ideas are as follows:

  • Get rid off the status bar (maybe replacing it with a status field at the right side of the command line) DONE
  • Make Vimperator more sexy: Better graphics, quick and simple animations/transitions. It just should feel like being in the 2010 while not slowing down the interface by badly done eye candy. DONE, but can still improve of course
  • Turn on Firefox location bar by default which serves as the new place to show the current URL and things like the old +-{heart} indicators. Also allows us to easily use vimperator with the mouse for people who want it, while not requiring much more space than the old status bar (with small icons) DONE
  • Get rid off unmaintained or little used features (like :keepalt)
  • Minimize the code base by at least 50%. Currently wc {vimperator,common}/**/*.{js,css,xul} gives me about 24.000 LOC. Less code means less bugs and easier maintainability and easier to hack on. We do NOT set a fixed 10.000 line limit like other software, because if we want a useful feature, we will implement it. Questionable if we can achieve this
  • Go through each command and option and mapping and think about whether it really makes sense, or should rather be implemented as a plugin for those who really want it.
  • Make meta-commands instead of single ones: Rather have :extensions add/remove/disable than :extadd/:extremove/:extdisable. With tab completion this doesn't mean more to type but makes functionality more grouped together and self explaining. Started, many more commands left
  • Restore ctrl-v/x/c functionality to do the "expected" thing for most users. Find other ways to start passthrough mode. DONE
  • Remove the concept of buffers and all associated command aliases. :tabs are the (vimperator) future
  • Clean up :highlight groups, they really are a mess currently
  • Don't try to change too many of Firefox's options and interface. We will still do it when we think it helps most people, but otherwise don't do the unexpected thing for users. DONE
  • Make completion 'Just Work' as expected again. No more 4 completion contexts for many javascript completions, no more unsorted completions, ... Mostly DONE, still some work left
  • With less features/options making just a single combined :help page (like :helpall does now) is sufficient
  • Get rid off Exxx vim-style error message codes DONE
  • Be more informative and output more information after (un)successful commands to the statusline Mostly DONE, still some work left
  • Bug fixing, bug fixing, bug fixing...: First we clean up the code, then we try to fix the remaining bugs. Stability and 100% working features is more important now than 100 more features. Many things fixed, but still a long way to go.

Options to remove without a replacement:

  • 'activate'
  • 'cdpath'
  • 'errorbells'
  • 'eventignore'
  • 'exrc'
  • 'followhints'
  • 'helpfile'
  • 'hintinputs' - what's the new default?
  • 'history' - do we really need that? I opt for a sane default (1000?)
  • 'loadplugins'
  • 'messages' - use a sane default, or maybe even all
  • 'more'
  • 'newtab'
  • 'pageinfo'
  • 'scroll' - just do :noremap <C-d> 5j
  • 'showmode'
  • 'suggestengines' - Can't we just turn on all suggest engines if the user has 'S' in his 'complete' setting?
  • 'visualbell': We either have a 'beep' or nothing, but no visual bell anymore
  • 'wildmode' : It's a big maintainence burden, especially 'longest' matching is quite complex, and probably already broken in many places
  • 'wordseparators': Is that really needed? Or is a good default enough?

In addition to this list, some options will probably stay for the forseeable future, but might be discussed again in future:

  • 'autocomplete'
  • 'linksearch'
  • 'insertmode': We need to rehink the whole textbox feature
  • 'maxitems'
  • 'runtimepath': Some people (ted, teramako) seem to need it for concurrent profiles.
  • 'titlestring'

Items to change:

  • 'sanitizetimespan' : Use other values than 0-4
  • 'showstatuslinks' : Now that Firefox4 shows the destination in the lower left corner, do we need our own setting?
  • 'status' -> 'statusitems' ? I know, 'status' is quite new, but doesn't statusitems describe better what it does?
  • 'urlseparator' -> Here to stay, but have a new (empty) default? ATTENTION: Does also affect quickmarks and other features
  • 'verbose' ? - While the feature is ok, it's levels were never really supported. So make a boolean option from it?

Items to add:

  • 'apptab': Pin or unpin tabs
  • 'autohide': Hide commandline when not in use
  • 'reusetab' option to not open a 2nd tab for exactly the same url, if it's already open
  • Something like :fmap (from feedsomekeys) to easily allow app-style web pages to work properly.

Future of existing commands/options/mappings

name maxauthority ...
:! to stay
:abbreviate make a meta-command

Commands which create output

Since our aim is a consistent Vimperator, we need to restyle many things which provide output, because due to the vim legacy we were really quite inconsistent in this regard.

Commands which create output are:

  • !
  • abbreviate (and cousins cabbrev, etc.)
  • autocmd
  • bmarks
  • buffers
  • command (but is currently broken anyway)
  • extensions
  • exusage!
  • highlight
  • history
  • jumps
  • map (and imap, etc.)
  • marks
  • messages
  • optionusage!
  • pageinfo
  • qmarks
  • scriptnames (might be removed anyway)
  • set (setglobal/setlocal as well)
  • style
  • time (with count only)
  • version
  • viusage!

Comment by annt...@gmail.com, Sep 27, 2010

Glad to hear that there will still be an option for the vim purists/experts.

Very much agree that the location bar is the place for indicators and URL. Had to turn it on so others using my laptop knew what to do - so I more than lost any space saving.

Good luck with the re-factoring.

Comment by project member 14kg...@gmail.com, Sep 27, 2010

The only thing I can think of right now is to keep version 2.4 around or something with bug fixes so that it will be compatible with ff3.6 and under for a little while till ff4 is much more mainstream.

Comment by hooloo...@gmail.com, Sep 28, 2010

I am so glad to hear that vimperator3.0 will be true.vimperator is really a good tool for our webbrowther.And here is my suggestions. 1. Is it possible use the location-bar as the command ,when done this,we can also use other tool icon ( because we have to leave the room for the location-bar ) if not ,the cmdline can be hidden to save more space for suffering. 2. In the tab function,can we use a keyboard in vimperator to control a tab wether ping it or unping it? 3. your idea;"Get rid off the status bar (maybe replacing it with a status field at the right side of the command line) ", i agreed it .if we can do this , the location is no more needed.

Comment by Leblanc....@gmail.com, Sep 28, 2010

Seriously looking forward to the next version.

I find most noobies to Vimperator are shocked by it at first, (especially if they have no vim experience; like I did at the time. But, I've taken up Vim now because of Vimperator).

Would it be crazy/ possible to have an install that offers: 1) a pro/expert/purists mode 2) a beginner mode

Getting rid/merging the status line and possible implementing a feature that moves the tabs to the status line would be awesome. The location bar or anything at the top of the browser is not needed -that just splits your attention for where to look.

All in all I hope Vimperator development continues long into the future!

Comment by graffatc...@gmail.com, Oct 19, 2010

I especially like the line where you are hoping to make this easier to hack on but I have an issue with removing tab numbers.

If you use firefox like I or my friends, the numbering of the tabs is extremely helpful. It allows us to just use 15gt and switch to different tabs as needed. Without tab numbers that isn't nearly as easy and using the mouse would be more logical... something we are not fans of.

Comment by Corey.K...@gmail.com, Oct 27, 2010

I agree with most of the changes suggested, especially the Ctrl+C/V change. I already have a mapping set up such that they function as expected in text boxes. I do wish I could edit text boxes in a pseudo-vim-esque mode, rather than having to open vim to do that.

I personally use tab numbering, as well, and it would make me sad to see it go.

Comment by sivajaya...@gmail.com, Oct 28, 2010

It would be nice to have an options for hints based on alphabets rather than numbers. Example: AA, AB, etc., that can be used by many users who aren't very comfortable touch-typing numbers. This similar to what vimium uses for chrome.

You also get more permutations with alphabets rather than the 100 we have with numbers. So, you don't have to change the hints based on visible part of the page, especially if the page has more than 100 hints to be shown.

Comment by project member stubenschrott@gmail.com, Oct 29, 2010

@sivajayaraman: That already works in our development version of vimperator 3.0, :help 'hintchars'

@tab numbers: I would keep tab numbers, if a really motivated developer comes up and fixes all remaining issues. At least in Firefox4, they are quite broken. Both 'n' and 'N' don't work well with the favicon and both move the + button to add a new tab to the wrong position. So it's rather that we see that a feature is not used that often if noone steps up and fixes the issues. And one of the main goals is to make vimp3.0 as bug free as possible. Everything which we support should JustWork?(tm) and not appear buggy. But if people who use TabNumbers? fix them (soon), they could of course stay.

Comment by erik.wes...@gmail.com, Oct 30, 2010

"Get rid off unmaintained or little used features (like tab numbers)"

No! I use the tab numbers frequently so I easily can switch to a specific tab with '<num> gt' without counting my self.

Comment by lochanb, Oct 31, 2010

Hey Martin, I'm really looking forward to your release! Tell me, could you have a focused tab move up and down the tab-order with some key-mapping or is this feature already available?

Comment by project member stubenschrott@gmail.com, Oct 31, 2010

Erik: As I said, IF somebody fixes them, they will stay. But just try them on Firefox4: They are really broken, since they a) remove the favicon of the tab completely and b) even break app tabs completely (they show the full title now instead of just the icon) and c) move the + button to the wrong position. I do not want to have such a broken feature in vimperator. So please, I see that many people like tab numbers, but so far nobody who use them have even tried to fix the issues.

Comment by project member stubenschrott@gmail.com, Oct 31, 2010

@lochanb: :help :tabmove and then just :map a key to that.

Comment by aaron.de...@gmail.com, Nov 10, 2010

I've had trouble with how Ctrl-(x|c|v) interact with web pages, so switching them back to cut/copy/paste will be greatly appreciated.

Comment by huifeng....@gmail.com, Nov 15, 2010

Is it possible to remove the caption bar in 3.0?

Comment by schweik...@gmail.com, Nov 25, 2010

I am looking forward to Vimperator 3. I already tried out the nightly and it looks very good!

One idea: often the same link target is used for different elements. For example a button image and a button text. It would be great if vimperator's hinting did choose always the same number for the same link. That way, you would have a) less numbers and b) you could recognize that the links bring you to the same place.

Comment by project member stubenschrott@gmail.com, Nov 27, 2010

@huifeng: What do you mean with the caption bar?

@schweikert: This was already thought of, but we didn't implement it, because often the URL is the same, but some clever AJAX function does different things depending on which CSS-style button you activate. So the safe way is really to add a new number for each elemeent.

Comment by schweik...@gmail.com, Nov 29, 2010

@stubenschrott: Thanks for the reply! That's really too bad... Maybe a different follow key could be used for listing new numbers for each element? I guess not many sites rely on this.

Comment by project member stubenschrott@gmail.com, Nov 29, 2010

@schweikert: No. Hints are already too complex anyway with nearly 20 extended hints, adding another one isn't going to help to make it easier, especially for a feature which doesn't work reliably on all sites and has very little benefit over the standard behavior. Sorry.

Comment by dgl...@gmail.com, Dec 7, 2010

I know it has VIM in the name and all, but... could VIM behavior just be some kind of "theme" that is applied to the engine? For example, I'm an Emacs user, and while most things are configurable already, I'd much rather have vimperator be configurable using javascript instead of having a bunch of "set" commands and the like. And I'd like search to behave more like Emacs (C-s to start search, then C-s to keep searching, without leaving the search prompt). And I'd like a saner way to define user commands, etc. Well, I think you got my point. :)

Comment by project member stubenschrott@gmail.com, Dec 7, 2010

@dgleal: Well, vimperator can be extended with plugins written in javascript. There you also have a more complex way of defining mappings, events and commands with things like commands.add(...). You might be able to make vimperator quite emacs-like, but if you really want a more emacs-clone, you should check out Conkeror: http://conkeror.org/

Comment by Mark.J.L...@gmail.com, Dec 7, 2010

I just want to say a big thanks for all the work you're doing on vimperator. I really like it!

Comment by stas.s...@gmail.com, Dec 14, 2010

Please don't kill visualbell. I never have sound on, and I always set vb on.

Comment by stas.s...@gmail.com, Dec 14, 2010

Also, as a vim/Dvorak user, I'd rather have the option of 'old-style' Ctrl-C,V,X, instead of wholesale removal of those keys. In fact, I use Ctrl-A/X and Ctrl-C all the time, and I don't see why anyone is expected to relearn those keys!

As for adding back interface elements - the main reason I like Vimperator is that it is so friendly to modern laptop screens (which are short and wide). Practically all vertical GUI elements can be removed and replaced with a very modest, text-only status bar. This leaves much more space for actual content. Whatever new design you create, I really hope that it doesn't mess this up.

In summary: if your plan to bring Vimperator into the 2010 involves breaking old keys, basic concepts (such as the status bar), etc., then PLEASE make those shifts OPTIONAL - let the users try out the new way and decide whether or not they're better (for /them/).

Thank you for your time.

Comment by project member stubenschrott@gmail.com, Dec 15, 2010

@visualbell: I will think about visualbell, it's not yet decided.

@ctrl-c,x,v: ctrl-a/x in NORMAL mode where they make sense will stay of course, ctrl-x/v only need cut/paste functionality in insert mode anyway, where we don't make proper use of them anyway. Ctrl-c is a bit harder, as that's needed in normal mode as well, but probably only when a selection is made, so maybe it's a VISUAL mode mapping.

The reason why i haven't made the ctrl-x,c,v changes is because of these small things which need lots of thinking first.

@optional: some things aren't easily possible to make optional, like the statusbar which will be removed in Firefox4 anyway. Also the problem is that features which aren't used by developers often break after some time because nobody cares about them. And to reiterate: I am a big fan of software which works well in every regard. I love e.g. Ubuntu's '100 paper cut' project which tackles the small bugs. This is only possible, if the feature set doesn't involve 1000s of unused/unmaintained things. But those that are supported should work flawlessly!

Comment by ma.chang...@gmail.com, Dec 16, 2010

Hello, the latest vimperator was updated on Nov.23, it is compatible with firefox 4.0beta8, today ff4.0beta9 was available for download, and it is not compatible with the latest vimperator nightly build, so could you please notify your update schedule for vimperator ?

Comment by ma.chang...@gmail.com, Dec 17, 2010

thank you for update! have got the latest version. it works with ff4.0beta9.

Comment by g.birram...@gmail.com, Dec 23, 2010

I could not agree more with stas.stas:

"In summary: if your plan to bring Vimperator into the 2010 involves breaking old keys, basic concepts (such as the status bar), etc., then PLEASE make those shifts OPTIONAL - let the users try out the new way and decide whether or not they're better (for /them/)."

I've been using Vim daily for over 10 years and I really find Vimperator a very useful productivity addon for Vim users because of its very close compatibility with Vim basic functions and its very minimalistic interface.

I think this product should be kept truthful to its roots and any function not related to Vim compatibility should be addressed by a separate plugin, if needed.

By the way, I use Vimperator all the time with all the bars (menu, navigation, tabs and toolbar) switched off, just the Vimperator status bar at the bottom; and the functions that I use most often are those intended for future removal.

I really hope that the new versions doesn't mess up this nice product. Please continue the good work and keep the product simple and focused on Vim users.

Best regards and happy new year!

Comment by project member Jens.K.L...@gmail.com, Dec 28, 2010

... while I could not agree more with g.birramedia!

Yep, Vimperator is "not newbie-friendly". Nor is Vim. People who prefer a "native" web browser with full mouse support and no complicated ex/vi stuff will remove the Vimperator anyway. What's wrong with you guys? You coded some very great Firefox add-on for connoisseurs and think about making it "more mainstream"?

You must be joking.

Comment by project member stepnem@gmail.com, Dec 29, 2010

Pentadactyl is already mentioned on this page, but in case some of those with tastes similar to the last few commenters missed it so far: http://dactyl.sourceforge.net/pentadactyl/faq

Comment by project member Jens.K.L...@gmail.com, Dec 29, 2010

Oh, yeah, Pentadactyl looks promising, thanks for the hint. THAT'S what I call minimalism. :)

Comment by athanhc...@gmail.com, Jan 2, 2011

in :tabopen, when there has no history, bookmark suggestions, I think it will be useful to display Google search suggestion instead of displaying "No suggestion"

Comment by project member stubenschrott@gmail.com, Jan 4, 2011

@tux: vimperator will still not be a tool for newbies, and it'll still have nearly the danger features add before so it's not getting less powerful either. If people want hard to learn software so they can feel superior to non-geeks, then, but only then, the new vimperator might not be for them. And I wouldn't call pentadactyl with it's hundreds commands and options minimal... And the new vimperator3 interface can be as minimal as you like.

Comment by project member Jens.K.L...@gmail.com, Jan 8, 2011

I love(d) Vimperator because it turned my Firefox into "title bar, browser, status line, done". Vimperator 3 is rather different. Maybe I'd still need to figure out about the new guioptions thingy once it is implemented, but the current solution - to just add a command line - takes, at least, a lot of getting used to.

Comment by project member stubenschrott@gmail.com, Jan 9, 2011

:set guioptions-=T and vimp3 is even more minimal than vimp2 (combining statusbar and command line in one line). Hiding the tab bar is just currently broken, but that's not a design decision of vimp3. It should still be doable.

And what do you mean with adding a command line? It's still here. Just press : as usual, and enter commands.

Comment by Yissakhar.Beck@gmail.com, Feb 10, 2011

I've been using Vimperator for a little while now, and it's great. After switching to the Firefox 4 beta I updated to the Vimperator 3 development version and I'm liking most of the changes thus far. Here's a few I'd personally like to see:

I'd like an option to move the command line to the top, allowing it to take the place of the regular location bar easier. Now that your not going for 100% compatibility with VIM anymore, there really isn't any reason to keep the bar confined to the bottom.

I know this has been asked for before, but I'd really like Regular Expression search capability too. There was an old extension called '/Find Bar/' that did that, but it hasn't been maintained for a while now. It would be neat to see it reimplemented as part of Vimperator. I could just install /Find Bar/ and tell it not to check the version numbers I suppose, but that brings up other problems, and it won't inside textareas or inputs, so...

Even if neither of these ever get implemented, Vimperator is still one of the best extensions available for Firefox. Thank you very much for what you've done so far, and keep up the good work!

Comment by Yissakhar.Beck@gmail.com, Feb 10, 2011

Oh, one more quick thing. How come you can't delete numbers that you've entered when in hint mode, unless those numbers didn't match the number of a hint? It seems a little inconsistent and it throws me off once in a while.

Sorry for posting twice, but I just remembered this after hitting submit. Once again, thank you very much.

Comment by chenx...@gmail.com, Mar 20, 2011

when using command 'd' to close current tab,the active tab is set to the one next to the closed one rather than the one before,i think it doesn't make much sense. most of the time i just open a link in a new tab to check something,after that,i would delete that buffer and return to that page the buffer came from ,that would be the one before not the one after. I'm wondering if anyone else have the same confuse.

Comment by project member stubenschrott@gmail.com, Mar 21, 2011

Well, usually I don't open one, but more than one tab from a page (in a new tab). Then the current behavior makes sense to read all of them before going back to the original. Since internet connections became so fast, it usually doesn't make sense to just open a single link in the background and then delete that again. Just open it in the current page and go back afterwards.

Comment by taecilla, Jun 9, 2011

Hi,

I stumble here searching for an option to merge the command line with the location bar, as hooloo...@gmail.com suggested. I love Vim, and I'm a Zathura (https://pwmt.org/projects/zathura/) user too, but I think is not needed to clone Vim in everything. The location bar is well designed and we can remove unneeded buttons.


Sign in to add a comment
Powered by Google Project Hosting