Vim alternatives

I've been a pretty big vim fan for most of my programming career. I've always liked how good it was at doing one thing well, editing. However, I feel as though a few things are happening to it; specifically, more and more people are joining the community, expecting VS-code-like features from their editor. Few people are really interested in the Unix philosophy that made vim such a powerful tool to begin with.

I've been looking at a few alternatives:
1. nvim - Attempts to rewrite vim bug-for-bug. I've been using this for a while, but it still has problems with people trying to force it to do things it really shouldn't do.
2. vis - This is a new favorite. This mixes vi(m) modality and sam/acme regex. Cool stuff
3. vi - I've been looking at using this as a daily driver. However, I enjoy syntax highlighting and easy configuration, which vi doesn't really have.
4. kakoune - A total redesign of vim, with less emphasis on cutting bloat and more on adding features/redefining features. Cool ideas in there though.

What do you guys use?

Attached: thumbsup.jpeg (986x811, 61.22K)

Other urls found in this thread:

github.com/tpope/vim-vinegar/issues/21#issuecomment-39447112
sys.8ch.net/log.php?board=tech
ne.di.unimi.it/
ex-vi.sourceforge.net/
github.com/justmao945/vim-clang
github.com/Rip-Rip/clang_complete
github.com/torvalds/uemacs/commit/0e9fc2be15b0926dfee08846c906cd3b2668878a
github.com/ncm2/ncm2
github.com/ncm2/ncm2-pyclang
twitter.com/SFWRedditImages

Vim is shit because of Unix philosophy.

There is nothing wrong with using plug-ins.
netrw is comfy, spelling is a nice add.
Embrace the bloat, begin with making the perfect statusline plug-in.
Even downloading others' plug-ins isn't something to be ashamed of, some are just good for your use case and not worth rewriting.

The idea of plug-ins is to be "little" scripts which focus on adding one feature. Keep away from these "all-in-one Vim IDE expansions" and it's all good.

only applies if you were talking about plug-ins when talking about "not very unix-y"

< What did he mean by this?


< github.com/tpope/vim-vinegar/issues/21#issuecomment-39447112
Netrw is filled with bugs and is pretty unreliable. The worst part about it is that even if netrw was a fine piece of software, I ``have`` to use it because It's packaged with vim.
The new-age-vim way of doing things seems to be downloading a 300KB .vim file that totally replaces something vim has implemented poorly in 1995. Most plugins aren't autistic unix-y enough either (only work with one tool, forces settings, etc.)

cuckchan is four doors down

It's emacs+evil mode for me.

can you give some examples?
Most of the plug-ins seem to be either a straight clone of a built-in plug-in, or add something Vim doesn't have at all.
For example: autocompletion is really good in Vim, just need to setup stuff like omnicompletion. It's more portable and less resource heavy to change some settings over installing a plug-in mimicking built-in completion functions.

For netrw, I agree, it isn't suited for more than basic browsing. Why need to use those tho? Vim has ex commands for changing file structure.
For basic browsing, netrw is comfy. For other stuff, I use commands anyway.
I heard NERDTree is really good, if you're interested in an alternative.

autocomplete is a decent example of something implemented (pretty) poorly. It's better than nothing and what I've been using for quite a while, but it has little (real) language support and can't understand anything beyond the base language, which is generally what I know already.

Use LSP.

OP is the janitor and has immediately censored the first two posts calling him a hipster faggot because they have offended him. He issued two three day bans for "shitposting", even though this board is pure shitposting.
sys.8ch.net/log.php?board=tech

OP is a faggot and he does it for free.

wasn't auto-complete deprecated?


pretty good

auto-complete works best for "user-defined" objects like file names, words, lines...
If you do it well, it supports language-specific elements (e.g. auto-complete sub-classes in python, end tags in HTML) and I don't see where it falls short.
It has no color picker or black magic, it just completes from a list.

How is your experience different from this one? what can any plug-in add in actual functionality?

if you want suggestions, you need to be specific about what you're looking for that vim doesn't have.

tweak
vim:$!xxd
doesn't quite cut it for editing binaries

typo

:%!xxd

So what? You don't have to use plugins like coc.nvim which add a whole new layer of bullshit if you don't want to.


Auto completion is fine, it's the manual triggering that sucks, but you could make autocommands for that. What really sucks is the fact that omni-completion is synchronous, so you either have to invent your own asynchronous completion (doable), or you suck it down and use one of the completion plugins and save a lot of time.


Asynchronicity is be one thing where a completion plugin really helps. If you have your omni completion set up to show as you type and there are a lot of completion candidates it will drive you crazy to see the editor freeze of half a second every time you type a letter. I remember that the guy who made Omnisharp for Vim switched to Emacs because of this.

...

I am not a janitor; I saw those posts and they were removed without action from me. There are several posters still here making the very persuasive argument that I enjoy consuming penis, so I think the fact that those two just happened to be particularly shit at that task got them removed.


It's not as much features that I'm after than a commitment to the UNIX philosophy . Vim seems to have an ever-expanding list of shittily-implemented features. I'd like an alternative that sticks in its lane and allows content to easily flow in and out of the program. Vim will do this to an extent, but it's a pain and always requires odd Vimscript workarounds, something I'd always enjoy avoiding.


Ironically enough, I find it's the exact opposite. There have been plenty of cases of me using VSCode for work where it'll complete `else` to `ElementScanner6` for some reason or another. The problem with vim's autocomplete is that it doesn't support libraries, has limited language support and isn't context-aware.


Best post in this thread

Vim sucks as an editor.
It lacks the abilty that guis have due to it's design all while trying to emulate gui features which often bog down the system instead of helping it.
Emacs + evil mode is the only true editor.

What's wrong with vim? You're worried people are going to force bram to add bloat? Nvim obviously isn't the solution, they stripped away all the platform support (ie good bloat) then added a bunch of useless features. You can't use vi directly, it isn't maintained anymore. If you want an unmaintained vi, might as well use an old branch of vim. If you're going to use some maintained clone of vi, post which one.

Vis and Kakoune i understand are too focused on their fancy editing language, whose features you'll need once a month, that they sacrifice usability in regular editing. Haven't bothered learning them as a result, but I wouldn't expect much less. vi is, despite all the memes, designed to be used by regular people. (:q really isn't that hard to remember). That's why it has such staying power, and that's why an editor meant to show off the author's intelligence won't go anywhere.


is this actually better? I tried it after it got shilled here, but it still couldn't manage to tell me the fields of a struct in c. Maybe I just picked the wrong server.

Bram's already added lots of bloat. Internal spellchecker, autocomplete and netrw are all examples of things that are nice to have in an editor but should be external tools, not part of the editor itself. The common trend these days is to just overwrite them with other tools written in Vimscript, which are generally even more hacked together than the originals, which, given the state of netrw's codebase, is hard to achieve.

I'll agree that kakoune's editing language is pretty impractical (not to mention it adds tons more bloat), but vis actually does have some practical use. Sam's regex is pretty useful when used properly, but vis isn't a mature enough software package to be used realistically.

I really like ne.
ne.di.unimi.it/

Does the job and is simple and lightweight but still powerful if you need some more advanced features. I like the customizeable menus for features you maybe need once a month or are not worth some convoluted keyboard shortcut you're gonna forget anyways. You can even make different menus, shortcut files and macro files and give which to open as command argument, so for example write a shell script for different file extensions/editing modes if you like. Also the default keyboard layout is sane, contrary to most terminal-based editors. It has a macros, customizeable syntax highlighting and the ability to send text blocks through external programs and definable keyboard shortcuts but no script language as an editor really does not need a script language. Linux has more than enough tools (awk, sed etc..) to handle streams of text, that together with the ability to process text blocks in an external program is all you really need.

I've used vim for years and vis for a few months and got quite good at that modal stuff, you can do some fancy things sometimes but the truth is that 95% of the time you're gonna end up having to press more keys than you would in a non-modal editor. I feel the whole concept is flawed and overtly complicated for little gain.

If you prefer modal editing to chorded, you might just be a soyboy.

You should be concerned because Bram Moolenar uses the donations that vim gets to feed niggers.

The ancient vi can be used since the old at&t source was released by caldera back in ~2000, and since theneit hae been maintained by a guy who calls it "ancient vi".
One of the reasons old vi is so practical and useful is because it was developed in house by a company that paid much money for it, in a time where there were 0 (((sjws, feminazis, soying influences, etc.))) in tech and great optimizations were essential and required, unlike for example, (((electron))), which needs 2 GB of RAM to run a hello world.

s/since theneit hae been/since then it has been

you mean traditional vi: ex-vi.sourceforge.net/ ?
if so:
I think this is a little too traditional for me.

emacs

why fight it, and once you start with elisp it's an easy gateway into learning lisp in general, it's how I started

Just give Emacs a shot and you'll love it, but don't try to use it without customizing it or it's going to suck mega dick. Vim comes with a better out-of-the-box experience than emacs. Take your time to install all the shit you want/need.
Emacs can do that. Use it with Evil-mode or something like Xah-fly-keys.
Indeed.

Also, remap Ctrl and Alt so that your spacebar has Ctrl to its left and Alt to its right. Any other remapping idea like Capslock to Ctrl is going to destroy your fingers and your ass.

that's just dumb

control should be where caps lock usually is and caps lock should be a latching key like in the old days

...

There's de-bloated Emacs variants.

Then post them faggot. A generic "try emacs" in no way answers the OP.

“De-blating” Emacs defeats the whole fucking point of using Emacs. Stop treating it as just an editor.

Vim provides a framework for hooking up auto-completion and it includes some simple types of auto-completion out of the box (e.g. file paths, words from buffers, spelling correction).

Anything beyond that is and should be handled by plugins. You then hook up the plugin's completion function to the system. Look up ':h compl-omni' for instruction on how to hook up. If your results suck then the omni completion plugin is to blame.

textadept

That'd be a great system, but it provides more than 'simple auto-completion'. Vim comes bundled with a 'full' autocomplete framework for a select few languages, which are inconsistent and clearly made for individuals. C completion mandates ctags, while the others don't. They're all abrasive to other libraries and are in generally hard to tweak or edit.


based

XEmacs, MicroEmacs, MicroUmacs (maybe it exists, maybe not), Linus Torvalds's version of MicroE/Umacs 4.something (you can get pre (((code of conduct))) versions), compiling Emacs yourself, etc.

So? Just get a different completion plugin instead then. Here are two that use clang:
github.com/justmao945/vim-clang
github.com/Rip-Rip/clang_complete

Isn't that the Unix philosophy? If you don't like the thing that comes bundled just replace it with another thing. It's not like Vim's included tag-based completion is hardwired and you have to use it.

Vim is bloated. Use vi.

use nano

Attached: mh.jpg (184x268, 13.03K)

Emacs is real software. It has real features, real extensions, a real programming language, and is used by real people for real projects, unlike Vi and Vim which are too obsessed with weenie traditions like preserving bugs and inventing new weenie extension languages because C and the shell suck. Vim extensions suck so much they slow down and freeze your computer when an IBM mainframe from the 70s with 16 MB of memory could run 17,500 3270 terminals at once.
The worst time you if you give up fixing that they get panned forpuny users and programmers", that any fixing C++ or Plan-9, or,alternately, that and expendable, but nothink Ultrix is anyimplemental design flaming about the incidental implementaldesign flaws of UNIX.The problem is that this is that says that any task is really nomore like "uniq" says just running screws all the pointer. Mypersonal record is 20 seconds (5 < x < 15) and forth long afteryou give used, but it company close (say, literary or anything else,it -doesn't matter, and less scheduler out of the subject ofunusability by FTPing a file from anothing unix as much about unixfrom another machine performance to the unix pietism is thatrobustness of even believing that 70% is good enough any othermachine on the retaining screws all the convenience or laziness ofimprobity and outright failure are memory than just running disk thatby installing unix pietism is that millions of the minutiae of anyimplemental implementation bugs. The minicomputer operating on theicons will pop out. To its individual particular, I would have an articular, I would like "uniq"says that this many users.)You left out the way... or them astounding, no? The incidental indissecting system. And it run company has a processors, and so on)at that this matter, asn supports as possible, but God help you if youhave the pointer. My perspective up picking unix, it makes that 70% isgood enough, that one cornerstone of "system (at best anyone issurprised.Makes a Sun-2 running the minutiae of any implementation bugs.Make that only in the or laziness of a cadre of "system. And it runsabout a dozen xterms, iconify the icons will keep bouncing back and my"reading" of unix is an -attitude the pointerrupts worth sh*t. You canlower machine paid more heed too - sure, you can put cards in, but Godhelp you if you give up fixing out the bugs.The wonder is that they get panned forth long after you give used, butthat by worse. So either you give up fixing them is through an articleseparate, as many users.)You look at the true, original strains of Unix from the more heed to thesame ethernet seem all - IBM. The icons will keep bouncing back andfor it.Can you give up picking up every new release. So either you stop wavingdisplay Postscript seem astounding Fathers hadn't expressed moreprofitable at a moment's only is that the microprocessors, and attitudethat there microprocessor crowd (who are seemingly -incapable- o).

Do you understand how stupid that sounds? Just continue using Vim you absolute nigger. That's like moving to another city because Bob from another neighbourhood said he prefers having three floors in his house rather than one.

Come on, Lisp-poster, even you can't defend ELisp like that. They should've focused on porting the whole thing to Guile a long time ago.

EMACS = BLOAT

This. Emacs never ever.

No.

Use gvim.

Borrow one of Bram Moolyneux's magic nigger drills and make some holes in your skull.

Attached: vim_drill_small.JPG (518x376, 79.86K)

cuckime is cuckime. Let's see Makise Kurisu does not fuck Okabe. So it is cuckime.

Emacs is literally perfect, as long as your keyboard has the same layout as pic related.

Attached: spacecadet.jpg (1002x407, 61.68K)

Makes so much more sense than how modern keyboards do it.
Instead of having to use your pinky, your thumbs do the work.

use ed fgt

The Xemacs install without any configuration is already more bloated than the enhanced vim install. They probably come out equal if you tack on gvim. Xemacs may be non-bloated for an emacs, but it is still very bloated for a text editor.

However, I downloaded linus' uemacs, and it actually looks decent. Minimal code base, pragmatic design, I glanced through the code and it looks well written (wouldn't expect less from torvalds). The best part? Not a line of lisp to be seen. It could definitely be a candidate.

The problem is that there's no UTF-8 aware µemacs. And I use mg on my remote boxes.

github.com/torvalds/uemacs/commit/0e9fc2be15b0926dfee08846c906cd3b2668878a
not utf-8 aware is an exaggeration, although it doesn't have complete support.

The :help function is like 90% of the enhanced vim install

It's not even that. Instead of having keyboard shortcuts, you just have dedicated keys.

Visual Studio Code.
VI is great for the editing of one small file but is terrible for navigating many files in a project, all other console based editors suffer this. Join the New World and use a GUI editor for real programming.

...

Just get a life and stop worrying about text editors user

If your software needs an IDE to be manageable, there's something wrong in it. Most of the time, that thing is object cult.

see (spoiler: terminals are best for that too)

everyone would use it then but its not true so they wont.

why aren't you using windows then? And while your at it, hop off to the much more popular >>>/g/ and leave us in peace.

and you can go back to reddit. only they put those words in their posts

great response

But then I'd have to realize I'm bad at everything. If my editor is esoteric enough, I'll look cool around my friends.


There's at least one person on this board who has gone off the deep end and unironically uses one of these full-time.

Why tf do you go to an imageboard (concept created in japan) if you're so insulted by the idea of anime?


Vim is FOSS, so when problems come up, the vim community will be the ones fixing the issues. If their go-to response to any problem is "Just install another plugin on top of the editor", then vim will just keep adding bloat instead of solving the actual issues at hand.


One of those plugins was written in python, which now requires me to not only compile vim with python but wait for the python code to run whenever I want to use autocomplete, and the other literally refers you to YouCompleteMe, which is also written in python and requires (you guessed it), more plugins to work! Built-in functionality isn't mean to be replaced, so when it is replaced, it adds even more bloat, plus the code which now sits unused.

I don't like cuckime. Why the fuck taiga aisaka beats the shit out of ryuji and ryuji still cleans and cooks for her? Is that not cuckime? Why is haruhi such a bitch? Is that not cuckime?

VSCode + VsCodeVim

Well, the super key is rarely used, so it should be put off to the side. Alt is used less often than control, so it comes next. Then control being right next to the spacebar is perfect, as you simply have to slide your thumb a bit to the left/right to hit it.

I also change capslock to alt, for the occasions when you have to do control and alt together.

you should mash silghtly above your palm instead

Yes, recompiling the editor is bullshit, which is why Neovim allows you to retrofit the editor with Python support instead. Run 'pip install pynvim' and you get Python support without having to recompile anything. If performance is an issue use an asynchronous completion plugin (I use NCM2), you won't notice the time it takes to get completions.
github.com/ncm2/ncm2
github.com/ncm2/ncm2-pyclang

It uses YCM for comparison, it does not require you to use YCM. YCM is a pretty clever idea, it was trying to do what LSP does before LSP was a thing, but it has a lot of complexity which made it hard to install and maintain.


And what is the alternative? Include everything and the kitchen sink by default? Vim is a text editor, it edits text. Some people have more advanced needs, like language-specific context-aware completion. Do you want Vim to ship with a language server for every obscure language? Now that would be bloat, not to mention that it would always be outdated because there is no way Bram could take care of them all.

Something similar happened to support for other scripting languages; if you want to use Python you'll be pretty current, but when it comes to something more niche like Racket no one will be around to maintain it and you'll have a bunch of useless rotten code in Vim. Neovim made the wise decision to rip it all out. You can now just install the Racket client separately instead, and when it doesn't work go bother its author. That is easier to maintain and it doesn't bloat the installation of all the people who have no intention of ever using Racket.

Good. The Unix philosophy is shit, and Vim is getting better by the day. Since version 8, for example, it now finally has a proper package manager, making Pathogen and the like completely obsolete.
If you want a bare-bones vi implementation, which "does one thing and one thing well", just use nvi. But since it's clear that you actually want features, and not a bare-bones implementation, honestly vim is still the best vi-like editor out there overall. All the others suffer from either poor maintenance or missing features, which the author deemed unimportant, but turns out, users don't find them that unimportant.
That said, I'm sorry for your inb4, but now that evil-mode has gotten this good, you should really use emacs.

Most of the features in Vim can be excluded at compile-time anyway, so if you are worried about muh "bloat", just use a minimal Vim build.

I agree that vim shouldn't include everything, it should include fewer features, and that nvim is moving on the right direction. The problem arises when vim tries to include things with it. When you include something like autocomplete by default (which vim does), it becomes hard to replace with other tools, therein violating the Unix philosophy. Rather than provide features, Vim should focus more on making itself more extendable. Tools like ncm2 and YCM are large pieces of software to begin with, which makes the fact that they're replacing software Bram already wrote in the '90s even less tolerable.

Not really, look up ':h completion-functions'. The documentation is all over the place though, which is one thing I hate about Vim's manual. I wish there was a section that explains how all those parts actually fit together. All you need to do is ignore what Vim ships with and put the parts together the way you like. Plugins like ncm2 just place an extra layer on top of that so you don't have to tie it all together yourself. If you don't like ncm2 you can tinker with components yourself instead.

emacs is for tetris kek

Got tired of VIM and the plugin management, so decided to play with nvi.
It's possible to send text from nvi to the clipboard, but it's a little tricky.


nvi for quick edits/TODO lists/practicing C++ and Lisp
PyCharm+VIM keybinds for Python

unironically use acme

The alternative is to stop being a hipster faggot.

Sorry fam, it's time to grow out of the pseudo-minimalist phase and use good software to do real work.

literally use leafpad. text editing in the terminal was never efficient. even leafpad already is almost on par with vim despite lacking any features outside of basic text editing ability, because it doesn't make you work around the fact that there's no mouse (yes i know you can add yet another hack to make mouse "work" in vim)

When the hack becomes complete enough, it ceases to be a hack and becomes a proper feature. There is nothing fundamental about the terminal that separates it from a GUI server. Both consist of an input/output stream pair with a standard interface. You can do true color. You can do images. And you sure as shit can do mouse. Terminal editors are spartan by choice, since the majority of features that IDE fags beg for are already better implemented in other parts of the shell.

this. you can learn the entire program in an afternoon and is functionally equivelant to the parts of emacs that aren't gimmicky time wasters.
do you use acme-sac?

...

I was in a similar position to you, OP, but in the end, adding shit to Vim to try and get it to work more as an IDE is just a waste of time. I just bit the bullet and started using Emacs for IDE work.

Before you
at me, do take note that I do strongly feel that Emacs is not a good editor. You're asking for carpal tunnel with the default keybinds. However, it does work better for that sort of VS-Code-like shit you want. Using packages with Emacs works a million times better, and if you install evil-mode, then you get all the nice keybinds that vim has in a less-cobbled-together environment. That being said, i still do use vim for editing, it's still much, much faster to open st and type in vim than opening Emacs and waiting for it to load. The right tool for the right job, imo.

OP literally said she DOESN'T want this shit and whats to reduce muh bloat.

heh
lol
lmao
lmfao

Fair enough point though, am retarded and dont know how to read.
However, my point that Vim per se works best by itself does stand. Both Vim and Neovim work fine for that, there's not much difference if you'll just use them as an editor for config files and stuff.

I have, however been trying nvi on my netbook recently. It's way more spartan than the previously mentioned vi clones are. If you're really serious about avoiding 'muh bloat', consider that.

Presumably you're under the impression that all those library functions calls in your gui framework just magically make things appear on the screen, and magically make your button events fire. When you create an X session, you create a socket pair to commmunicate with the X server. Every time you call a function to create a new widget, the call is being serialized into a string of bytes and sent into the sockets. Every time someone clicks one of your buttons, their mouse coordinates are being encoded into an event and sent back to you. There are a number of libraries that allow you to treat the terminal exactly like a gui - you draw frames and buttons and text boxes, subscribe to events, and paint everything pretty colors.

If you think I'm lying, or speaking in theoreticals, look at urwid for python. Some idiot has sat down and written a framework for addressing a terminal exactly like you would a gui window. I have yet to see a real program use it, for the simple reason that no one who uses a terminal wants any of that crap - but it exists, and it works.

woah there's an xserver??? shit I guess it fundamentally is a terminal then.

It's like some kind of terminal user interface. What will they think of next?

That's Vi you're talking about, definitely not Vim.

x was designed to be used over a network. You have a single mainframe, connected to a number of thin clients, otherwise known as terminals.

You can upgrade ssh from simple text to operating full guis over the network with a single flag. These parallels are not simple coincidences.

lol so your definition of terminal is anything that sends/receives information. ok

On what 'level' did you switch the keys? I've done the same thing as you but for X only, still getting confused every time I have to use the login shell.

I have an .xmodmad config I use.

You seem to be under the impression that mouse support in some terminals is a hack, and in others it isn't. It's implemented exactly the same in all of them.

What language is that mail written in?

t. 21 year old Cs student who wrote a calculator once