28

/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 neovim now, nvi (mostly the same as Joy's vi, except when it's not), elvis (also a clone with more features), vile ("Emacs like vi", a Vi-mode for Emacs), Vim-in-VSCode, and many more.

And 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?

4

4 Answers 4

32

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 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.

9
  • 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'
    Commented Feb 3, 2015 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. Commented Feb 3, 2015 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
    Commented Feb 20, 2015 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
    Commented Feb 21, 2015 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
    Commented Feb 22, 2015 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
    Commented Feb 22, 2015 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
    Commented Feb 22, 2015 at 5:37
  • @derobert so vi-like is pornography-like? You know it when you see it? :) Commented Jan 8, 2016 at 15:06
  • It would be useful if this answer could include a list of examples that match this criteria and don't match this criteria. It wouldn't have to be complete, just some examples.
    – icc97
    Commented May 16, 2021 at 10:51
0

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

4
  • 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? Commented Feb 13, 2015 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. Commented Feb 13, 2015 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
    – user486
    Commented Feb 13, 2015 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'. Commented Feb 26, 2015 at 18:52
0

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.

5
  • 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 ... Commented Feb 26, 2015 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. Commented Feb 27, 2015 at 17:46
  • It's relevant in the sense that people (experts!) actually have to answer the questions :-) Commented Mar 2, 2015 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. Commented Mar 2, 2015 at 7:16
  • @carpetsmoker How so? Is "scope creep" typical of SO spinoff sites? Commented Mar 3, 2015 at 3:04
0

So, the 'Vi and Vim' Exchange should be about:

  • vim/neovim-class Editor
    • neovim
    • vimium
    • JetBrain IntelliIDEA platforms (pycharm, webstorm)
    • elvis
    • vile
  • vimscript or Scripting
    • vim-lua
    • vim-python
    • vim-haskell
  • plugins (or extensibility)
    • (many tags here)
    • LLM-related
      • lua
      • treesitter
  • Keymapping (for vi/vim-class editors)
  • OS-specific platforms (for vi/vim-class editors)
6
  • Err.. what about Vim?
    – Friedrich
    Commented Sep 3 at 16:48
  • :-) I meant to say 'vi' as in a broader scope, but yes. 'Vi and Vim'. (edited into "vi/vim-class Editor" as pointed out by @Friedrich) Commented Sep 3 at 16:50
  • 1
    I asked because Vi was written in the 1970's while Vim is a rewrite that started in the 1990's. They do not have a single line of code in common. In fact, Vim and Neovim are more closely related than Vi and Vim.
    – Friedrich
    Commented Sep 3 at 17:09
  • Swapped out vi. Because neovim is a better "vim"-class citizen than vi. Commented Sep 3 at 17:13
  • Without increasing the scope I think we should indeed attract more experts about: Neovim, Treesitter, Lua, LSP integration, specific plugins (since some of these related questions don't find their answer). About the vim-like keymapping program I would be careful not to build up expectation on expertise we don't have (there is about 1,300 members in the community and about 15 regular experts to answer) VsCodeVim could become a first class citizen if it is proven that there are expert in the group. Commented Sep 6 at 13:10
  • After a quick search I see no VSCodeVim committer in the vi.stackexchange community :-| Commented Sep 6 at 13:19

You must log in to answer this question.

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