24

/bin/vi, as written by Bill Joy in the '70's is vi. And /usr/bin/vim, as written by Bram in the '90's, is vim.

But we also have nvi (mostly the same), neovim (not even sure what this is), elvis (also a clone with more features), vile (Emacs like vi, I kid you not), and perhaps a few more.

To boot, there are also a great many programs that are "vi-inspired", such as music players, web browsers, spreadsheets, etc. which all resemble the vi or Vim user interface. Is this still vi?

28

I propose a criteria like Carpetsmoker's, but with the last condition modified:

  • Its main purpose is a text-editor; anything else that has the vi user interface paradigm (so far as one exists) is far too broad a scope.
  • It must be mostly compatible with the original vi for all basic operations; where mostly is not precisely defined to allow flexibility in considering individual cases. The vi posix standard is probably a good rule-of-thumb.
  • It need not be a stand-alone program; a plugin for Visual Studio that gives vi-like behavior is on-topic, but only the vi-like behavior is.

If you want to know why Visual Studio is giving some weird error message when you try to save a file, that's for Stack Overflow or Super User. If you want to know the keys to hit to quickly change all the occurrences of "foo" to "bar" in the brace-delimited block your cursor is in, that's on-topic.

I feel this will become even more important if NeoVim succeeds in making an easily-embeddable vim. Then there will be far more fully vi-like environments which are not stand-alone.

(Note I'm leaving the 'mostly compatible' line. So the behavior being asked about still needs to be mostly compatible.)

  • 5
    The rule used in similar context elsewhere: A question about MathJaX is on-topic on TeX - LaTeX only if it is applicable to standard LaTeX as well. Similar criterion could be used here. – yo' Feb 3 '15 at 20:06
  • 2
    I put in the "stand-alone program" requirement since there are a few editors/IDE's with plugins to enable "vi-like" binds, but this is just a very thin layer on top of an editor/IDE that still very far removed from vi, and experts on vi are quite unlikely to be experts on these editors. If standard vi movements etc. work in this: great, but do we need to care about you using some random plugin for VS? It's not about the plugin or VS, as such. – Martin Tournoij Feb 3 '15 at 21:39
  • "A question about MathJaX is on-topic on TeX - LaTeX only if it is applicable to standard LaTeX as well." - one could argue a question about vim is on-topic only if it is applicable to vi. Obviously that is not the case, since it is "vi and vim", but why should vim alone have this status? – Random832 Feb 20 '15 at 16:35
  • @Random832 false analogy. The vi-vim relationship is analogous to TeX-LaTeX. MathJAX is just an implementation, and would more be like a plugin with provides vi-like behaviour - and that is already covered by a consistent view in discussions on meta. – muru Feb 21 '15 at 23:41
  • @muru Right, but I'm talking literally and vs other extended vi clones like elvis, vile, nvi, and so on. Visual select mode in vim isn't exactly "vi-like behavior". – Random832 Feb 22 '15 at 2:19
  • 1
    @Random832 the rule yo' pointed to also isn't what we're using here. If you look at both answers (which you have to, since mine builds off of Carpetsmoker's) it's pretty clear that elvis and nvi are on-topic (mostly compatible). I've never used vile, but it probably is too—as long as you're asking about the vi-like bits. Ask about elisp, and we'll tell you the wonders of Emacs or Stack Overflow. The answers intentionally leave "vi-like" and "mostly compatible" somewhat vague, as its really hard to define them. That seems to work pretty well so far. – derobert Feb 22 '15 at 5:31
  • @Random832 looking into vile more, I had thought it was an emacs plugin. Appears I was mistaken. From the description on the home page, sounds like it is "mostly compatible". – derobert Feb 22 '15 at 5:37
  • @derobert so vi-like is pornography-like? You know it when you see it? :) – Wayne Werner Jan 8 '16 at 15:06
11

I propose the following criteria:

  • Its main purpose is a text-editor; anything else that has the vi user interface paradigm (so far as one exists) is far too broad a scope.
  • It must be mostly compatible with the original vi for all basic operations; where mostly is not precisely defined to allow flexibility in considering individual cases. The vi posix standard is probably a good rule-of-thumb.
  • It must be a stand-alone program; so a plugin for Visual Studio that gives you vi-like keys doesn't count, as must questions about this plugin would require expertise in Visual Studio, and not vi (also see my answer on Should we allow evil questions?).
  • 1
    Do you consider BusyBox to be a standalone program for the purposes of this test? – 200_success Feb 3 '15 at 22:08
  • @200_success Not as such; busybox basically just puts several standalone programs together in a single binary using some clever tricks to save space. I would consider "busybox vi" to be a standalone program which is probably on-topic here (not familiar with it, as such). – Martin Tournoij Feb 3 '15 at 22:13
  • 1
    I would just say one thing: Questions about the specification of the vi commands for the purpose of implementing them elsewhere should be on-topic. – yo' Feb 20 '15 at 16:06
  • What is the purpose of your first criterion? (I ask because of the bvi question.) Note that vi itself can edit binary files using xxd. – Kyle Strand Feb 26 '15 at 18:01
-1

As a commenter mentioned, I asked a similar question on Area 51 when this site was a proposal.

  • I feel that if the program uses vi bindings natively (not through a plugin), then it should be accepted.
  • If there is a vim-inspired browser, it should be on topic with a special tag of its own.
  • Plugins for vi are on topic, as they provide additional features to the editor, but (in most ways) express those features in a vi-like manner. (Key bindings, .vimrc settings)
  • It is important to only discuss programs with stable or, the very least, beta versions present. Such versions are open to a wider audience and allows more people the chance to contribute their answer to help. Furthermore, why discuss a program with features that aren't definite, or with substantial bugs still?
  • The following programs, I feel are on topic (see below for explanation): vi, Vim, vile, elvis, and nvi.

I know a lot of people regard O'Reilly as the source for computer knowledge. (I know that's how it was in my house when growing up.) I proposed that the following editors be considered on-topic, following suit with O'Reilly's Vi/Vim Pocket Guide. As mentioned on the book's back cover:

Author Arnold Robbins has chosen ... vi, Vim, and vi's main clones -- vile, elvis, and nvi"

Interestingly enough, the pocket guide also includes ex. I also just looked up the full O'Reilly guide on Amazon. In the product description, it "solves" the question about gvim:

How to make full use of the GUI version of vim, called gvim

  • 1
    "If there is a vim-inspired browser, it should be on topic with a special tag of its own." There isn't "a" Vim-insipred browser, there are like 10 or more. So what questions can I ask about this then? How to setup my HTTP proxy? How to block ads? How to use the web inspector? How to get my CSS that's working in $other_browser to work with it? I actually built my own Vim-like webbrowser with PyQT, can I ask questions about that too? – Martin Tournoij Feb 13 '15 at 19:35
  • 2
    “ex, but after some research I understand that it is more related to emacs” — no, not at all. Ex is vi without insert mode, or more accurately, vi is ex extended to be full-screen. – Gilles Feb 13 '15 at 21:26
  • @Gilles Okay. Then my sources were wrong. For @carpetsmoker, the tag can be browser maybe? Idk I'm just trying to be fair and open, hopefully widening the user base of the site – onebree Feb 13 '15 at 22:26
  • @onebree We seem to be doing fine with the userbase we have :-) We get a fair amount of decent question, answers, and traffic so far. I don't think there is any need ti 'widening the user base'. – Martin Tournoij Feb 26 '15 at 18:52
-1

I lean (to a fault, perhaps) toward broad scoping and inclusiveness. My philosophy (which I have spontaneously developed in the last 30 seconds without putting any serious thought into it) is that vi is not just a(n ancient) editor; it's also a keyboard-based modal user interface. (That is, vi invented/introduced/popularized all the ohello<Esc>0~A!<Esc>/emacs<CR>:%s//vi/g nonsense that we've all come to know and love, and this, rather than text editing as such, is vi's real legacy.)

My intuition on this "philosophy on the legacy of vi" is based on the application of this user interface to non-text-editing contexts, such as window-managers (e.g. in i3) or web browsers (e.g. using vimium).

This is not to say that any and all questions pertaining to a vi-like user interface would necessarily be on-topic. For instance, I can't really think of any questions I would consider on-topic for i3, since the vi-like elements are pretty minimal. ("How do I remap the directional keys in i3", for instance, would definitely not be on-topic, since the i3 configuration is entirely i3-specific.)

So my personal criteria for whether or not a question is on-topic would be:

  • If it's about vi itself, it's on-topic.
  • If it's about a vi clone, i.e. a vi-like text editor (including all of the ones mentioned above), it's on-topic.
  • If it's about an extension for one of the above--e.g. a Vim plugin--it's on-topic.
  • If it's about a program (such as bvi) that is not strictly a text-editor but whose user interface is designed to closely match that of vi, it's on-topic. (Note that i3 uses elements of vi's user interface, but in general its user interface is very different.)
  • If the question is about a user-interface that is specifically designed to emulate vi--e.g., the user interface for vimium--then it's on topic. This is unfortunately a bit of a mushy criterion. I'm not sure, for instance, whether the question "how does vimium assign letters when pressing <Esc>f" would be considered on-topic, since, as far as I can tell, that feature isn't really inspired by anything in vi. (Though I suppose the question "Is there a feature in vi/vim that corresponds to Vimium's <Esc>f behavior" would probably be on-topic, since it's asking about vi directly.)

EDIT: Note that my last criterion does NOT imply that any and all questions about programs that include some vi-like UI elements are on topic--only questions about the vi-like UI elements themselves would be on topic.

  • 3
    (Part of) the problem is one of expertise. Everyone here knows at least a little bit about vi (even those just starting out), but very few people know anything about vimium. Also see my comment here ... – Martin Tournoij Feb 26 '15 at 18:51
  • 1
    @Carpetsmoker I initially upvoted your comment, but upon reflection I'm not sure how that's relevant. Sure, there may be very few people here who know much about vimium, but I'd expect a higher percentage of people here than elsewhere to know about it. As for your comment, I think I addressed that by stating that questions about vi-like user-interfaces are permissible, rather than programs that include vi-like UI elements. None of the hypothetical browser questions in your comment have to do with a vi-like UI. – Kyle Strand Feb 27 '15 at 17:46
  • It's relevant in the sense that people (experts!) actually have to answer the questions :-) – Martin Tournoij Mar 2 '15 at 7:11
  • Also, it's not like we need the traffic/number of questions at the moment, and it will be far easier to widen the scope of the site later (if we so wish) than narrow it down later. – Martin Tournoij Mar 2 '15 at 7:16
  • @carpetsmoker How so? Is "scope creep" typical of SO spinoff sites? – Kyle Strand Mar 3 '15 at 3:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .