Live data from Hacker News

Neovim

github.com

311–320 of 372 posts

Re: Neovim

#311
post #221

Earlier quoted context omitted.

You have to admit, compared to most any tool out there, vim has one of the worst newbie experiences, given its popularity. Even a terminal window allows you to type help to get something to work with. VIM replies with "Left, end of word, Right, paste after" which in most cases is nearly a NOP. I believe what he is trying to say is that it would make sense to figure out how to make the initial experience less daunting…

The first thing that shows up in a VIM session is a small introductory text that includes type :help or for on-line help And of course the GUI also has the familiar Help menu as most common GUI apps.

Oh, yes, because showing the help entries first when entering the application clearly is the right idea.

And surely that is why all the text-entering applications in the world have followed vi's lead.

Re: Neovim

#312
post #74
post #4

It sounds like they have no interest in getting this stuff pushed back upstream? There's no mention of it on the home page. At this point it smells kind of Emacs/XEmacsish. Hope they can rally immense development effort.

The author of NeoVim (Thiago de Arruda) tried to add support for multi-threaded plugins to Vim and has been stymied[1]. I'm not sure how to get a patch merged into Vim. Bram Moolenar is the only person with commit access, and he's not a fan of most changes beyond bug fixes. My co-founder and I tried to add setTimeout & setInterval to vimscript[2]. Even six weeks of full-time effort and bending over backwards wasn't e…

Re #3. Dude - you broke my browser with that link :(

Re: Neovim

#313
post #120

Let me just say that I recently had to build a 'new' UnixWare 7.1.0 system. I was stunned and delighted that I was able to compile vim 7.4 + then-current patches. Couldn't compile git, python or a couple of other things I wanted, but at least I could use a reasonable editor.

That's awesome in a way. But this being Open Source you can just download the sources for Vim 7.4 in the future and use it on UnixWare 7.1.0.

While the rest of us (and maybe you, yourself) on Ubuntu 15.10 can use Neovim with all the cruft taken out.

Re: Neovim

#314
post #307
post #248

Earlier quoted context omitted.

Because many of the people that learned those old stuff were young when those tools were new and don't want to learn anything else. Habits die very slow.

I'm not particularly old, but I prefer using tools that are considered "old". Furthermore from where I am sitting, there seems to be no shortage of older developers who are wed to the latest fancy IDE. I don't think this is something that follows age lines. Whether or not somebody primarily has a background in the FOSS world or in the Windows universe is probably a much stronger indication of what sort of tools they…

Well, I have a background in both.

Before getting my first UNIX contact, via Xenix in 1994, I was already fully comfortable with the GUI world of Amiga and later on PCs. Including GUI alternative environments like Smalltalk and Oberon.

So, although I do master the CLI, I rather spend my time in the cosy GUI world.

Re: Neovim

#315
post #126
post #48

Earlier quoted context omitted.

Well, I can explain how I use it. I have my Sublime in legacy mode, which enables some vim like controls. And I benefit from Sublimes super fast text rendering, it's nice fonts and colors, the way it integrates with my desktop environment, how fast it interacts with plugins that spawn popups and analyze my code. And then every once in a while I need to do some cool text transformation, and it doesn't work, so I launc…

> And I benefit from Sublimes super fast text rendering, it's nice fonts and colors, the way it integrates with my desktop environment, how fast it interacts with plugins that spawn popups and analyze my code. The sentence quoted above sounds a lot like something out of a product promotion.

Well, when users are doing that, you can be sure that the competition will be in a world of pain!

Re: Neovim

#317
post #29

Thanks for trying to do what many of us secretly wished we could do but can't because of time/skill constraints. I will definitely move to NeoVim the second it's packaged (is it yet?), regardless if you've changed anything yet. I hate the ideas many programmers have about backwards compatibility, that it's more important than development speed and modern concepts. There is nothing holy about Unix era software, chance…

> We as developers in the Open Source community should be ashamed people are still using Vim to write LaTeX in Bash running on terminal emulators. (Yes, it gives me shivers just thinking about how much each of those technologies sucks when you think about how good it all could be.) Let's deconstruct each of the pieces we are supposed to be ashamed about, shall we. LaTeX the language: a wrapper language built on top o…

(My post got long, so I've put a standalone version, with better markup rendering, here: http://gist.io/9161898.)

[TikZ] is a perfect example of TeX's missed potential: it is an outstandingly well designed DSL for diagram creation, embedded in an insane macro language. The moment you try to do anything nontrivial that exploits the programmatic (rather than purely declarative) nature of TikZ you immediately run into wall after wall trying to express basic programming concepts in the host language, TeX.

For example, two common patterns I have seen frequently arise as perfect uses for a programmatic diagram description:

- using computed coordinates and transforms to construct complex paths and diagram layouts from the composition of basic geometric reasoning;

- using abstraction to tersely encapsulate common visual components, both for simple iteration over many similar components, or for higher-order encapsulation of parameterized diagram logic.

In both cases, you quickly run face first into fundamental limitations of TeX as a programming language. In particular, it is extremely painful to use for either arithmetic or control flow. This is a big enough deal in practice that core among TikZ's features are custom inline arithmetic syntax for coordinate computation, color blending, etc., and a custom `\foreach` macro, both defined not in the language, but provided as part of a specialized diagraming library, because they are fundamentally at odds with the design of the core TeX language. Even this impressive bit of TeX engineering still breaks down as soon as you try to do much more than iterate over a hard-coded constant range. (How much do you need to bracket, `\relax`, etc. the operands of your `\foreach` if it is used inside of a macro definition? Or if they are the result of computation, even as simple as basic index evaluation like `\x+1`? Now what if you want to iterate over a range which results computed in part using floating point arithmetic using one or another library?)

TeX suffers because it is at once both a relatively awkward markup language (relative to something like Markdown) and an extremely awkward programming language. Many tasks which would be trivial in any mainstream programming language are outrageously challenging and arcane in TeX. The LuaTeX effort to embed a sane, modern programming language much more centrally into the core of the TeX runtime is a fruitful direction, but it still does little to better formalize or structure the various levels of document representation for programmatic transformation: we still have a giant stack of TeX macro complexity, ultimately expanding down to very low-level page rendering descriptions, just now with the ability to register Lua callbacks at various points along the way, or use Lua scripts to generate new tokens during the expansion process.

As a clever, minimalist hack, the single-pass macro expansion semantics at the core of the language were a great way for one man to bootstrap a complex typesetting system. As an expedient hack to build an incrementally more humane document generation system atop the powerful low-level typesetting engine already available in TeX, LaTeX got a lot of mileage for relatively little cost. As an intermediate representation for modern typesetting systems, TeX could be a reasonable higher-level alternative to something like PostScript (which few bother to write by hand, but is a great low-level page description language, particular as a target for machine generation). But as either a primary programming language or a human-facing markup language, TeX is a terrible fit. Worse, the extreme difficulty of doing anything parametric in TeX makes it a bad fit for a future of many display formats and adaptive (responsive) layout, where baking tools focussed on baking a single paginated output format are less and less relevant.

The evidence for how different the world could be is not given by plain Markdown for comment boxes—that is, indeed, an apples to oranges comparison—but by the power that comes from creating an extensible and programmable document transformation system based on a well-defined document grammar (which is, in fact, a recursive data type, not tied to any one front-end syntax). That's the heart of [Pandoc]. It's not just "extended Markdown" or "a markup format converter," it's a powerful framework for document transformation, which naturally supports humane markup, while also allowing extreme extensibility via general-purpose programming languages. See the [scripting] documentation to get a sense for the model of extensibility, then recognize that this same document representation is the core of every translation and transformation Pandoc does, and how this model enables many of the same things as TeX's macros, but in a far more structured yet also programming-friendly way.

[TikZ]: http://www.texample.net/tikz/ [Pandoc]: http://johnmacfarlane.net/pandoc/ [scripting]: http://johnmacfarlane.net/pandoc/scripting.html

Re: Neovim

#318

Earlier quoted context omitted.

For one example, just off the top of my head, most any remotely technically-inclined young person in 2014 knows that you use Ctrl-Z/X/C/V/A to undo, cut, copy, paste, and select all. (Or substitute Command if you're on a Mac--same basic idea.) They've got that down cold, along with a host of other ubiquitous editing conventions--Ctrl-Left/Right to jump words, Shift-arrowkeys to highlight, Home/End to jump to the begi…

Unix was here before all those conventions you listed. So go back in time and tell Windows and Mac software vendors to stop making everyone change their muscle memory in order to use some new software... But seriously, this is a complaint I hear from undergrads in CS all the time. My answer is the same every single time: stop whining and get over it. You're a professional now, you use professional tools and sometimes…

See, this is exactly the sort of thinking that got this thread started. Yes, obviously Ctrl-C meant Break before it meant Copy. I cut my teeth on a Commodore 64, but you don't hear me saying that Shift-Run/Stop is a superior way to end programs. Older does not mean better. Technology flows like quicksilver; no one says "you're a professional now, so learn COBOL 60 and quit whining." Professionals favor efficiency. Clinging to tradition regardless of drawbacks is not professionalism.

To play devil's advocate to myself, yes, obviously just switching everything over to GUI standards overnight would cause all sorts of problems. Tradition is not inherently valuable, but standardization is. But for fuck's sake have some basic human empathy. In the context of an individual career, having to unlearn and relearn how to edit text is a pointless speedbump that gets in the way of learning actual skills. Teach students what they need to learn to survive in the world, but recognize that their complaints are valid.

Re: Neovim

#319
post #199

Earlier quoted context omitted.

For one example, just off the top of my head, most any remotely technically-inclined young person in 2014 knows that you use Ctrl-Z/X/C/V/A to undo, cut, copy, paste, and select all. (Or substitute Command if you're on a Mac--same basic idea.) They've got that down cold, along with a host of other ubiquitous editing conventions--Ctrl-Left/Right to jump words, Shift-arrowkeys to highlight, Home/End to jump to the begi…

That seems like a bit of a straw man: the official OS X native version of vim, MacVim has literally all of those key map pings by default – cmd+c to copy, cmd+a to select all, etc.

MacVim is not official and it doesn't ship with any version of OS X. It's nice that third parties have developed tools to try and bridge the gap, but it doesn't really address my original concern.

Now, the OS X Terminal (and programs run through it, including vim) does support Cmd-C (after highlighting with the mouse), Cmd-V, and Cmd-A, because the OS can treat them as raw text without the terminal knowing anything about them. It doesn't support Cmd-X, Cmd-Z, or even basic navigation keys like Home and End.

Re: Neovim

#320
post #292

Earlier quoted context omitted.

Then you did it wrong. You should have just factored your thesis in multiple files, for example used one for each chapter.

That sounds like a workaround.

I suppose you would say splitting your C++ into separate source files is a "workaround" for slow compilation times, too? It could be, but both are probably good practice anyway.
Post reply on HN