Hacker News new | comments | show | ask | jobs | submit login
Review: Textadept (bahmanm.com)
38 points by amarsahinovic 1694 days ago | hide | past | web | 45 comments | favorite

No, it has no chance of replacing Vim because it doesn't run in the terminal and it doesn't come out of the box on most *nix systems. Initially I don't like the title, because it is too vague.

> The version of Textadept for the terminal requires only ncurses.

For a while, you could only get ed on most *nix systems. Doesn't mean this couldn't become a new "standard."

Vague title? In what way? It's someone's review of why they're using Textadept. (or is this a case where HN changed the title after the fact?)

The title was edited, originally it was something to the effect of "Finding a replacement for Vim".

The original title was "I've finally found an editor to replace Vim" or something close.

If his workflow doesn't require him to edit files remotely, it's a valid statement to say that he has replaced vim with textadept (and it works).

It runs on the terminal.

The author gave out his naivete here: "Textadept is easily on par with Vim, Emacs and ST." I'm sorry, I know nothing about Textadept, but if Sublime Text is on par with Vim and Emacs then I'm a hipster in love with Coldplay.

Sublime is better than Emacs and Vim!!1... in some ways.

(Fast, flawless rendering, not relying on regexps for syntax highlighting, proper fullscreen, graphical UI instead of text-based, nicest extension language...)

Anyone still willing to change editors has not yet put much of a worthwhile investment of time in a good one. Choosing an editor is probably a lot like finding a soulmate.

Vim is my primary text editor and I'll never switch to an editor that doesn't have a command grammar but there's most definitely room for improvement:

* It's difficult to add new motions to vim. EasyMotion and Surround.vim are the only two real attempts I know of. EasyMotion gets by on marks while surround.vim is baroque.

* There's little/no context awareness built into the syntax highlighting/grammar files. Textmate's scope stuff is really the best feature of the editor. If the vim maintainers/community could decide on syntax groupings and a query system was added it'd be doable but I'm not really expecting it.

* There's limited context awareness built into the mapping system. ST's system is quite nice here.

* No support for multiple cursors. The support that's built into ST is fairly primitive compared to the multicusor whitepapers from MIT (I believe around 2000) which did generic editing stuff.

* No repl. This goes against the philosophy of the editor but having a repl is really convenient when doing lisps. Foreplay is sufficient but doesn't fill me with joy.

* I've wanted to set up what I call 'regions' in the file where one part of the file is a computed version of another. The obvious use case is xml tags where editing one tag name in the pair updates the other but I think it could be generic. I had more use cases when I was thinking about it but they're not coming to mind at the moment.

I think there is potential for interesting display/visualization stuff for the HTML based editors and integration into the runtime like Smalltalk environments. I'd also like to see some sort of AST manipulation server pop up and to provide IDE-like services in a cross-editor manner. Finally, I spent time with LEO in the early 2000s and while I hated the editing, the text node organization was interesting and I haven't seen a similar attempt elsewhere.

Don't get me wrong, there ARE new things in Vim that are unique/cool like conceal and I can do fun/weird stuff with UltiSnips which I haven't been able to do with other snippet systems. I doubt I'll move off any time soon but it's far from inconceivable.

I swear I'm not trolling you, but you should check out Emacs + Evil mode. Most of the stuff you mention exists in Emacs, and Evil mode does a large chunk of what Vim does, an does it nicely (I'm a long-time Emacs user that has switched over to modal editing recently, and I haven't looked back).

In particular, the multi-cursor mode is there : http://emacsrocks.com/e13.html The stuff you call 'regions' is available for a bunch of languages with org-mode and org-babel (http://orgmode.org/worg/org-contrib/babel/intro.html).

I strongly encourage you to give it a try...

There's actually a multi-cursor plugin for vim, http://github.com/paradigm/vim-multicursor, I know nothing of it's features but it speaks something of vim's extensibility.

As for motions, what kind of motions do you think are difficult to create? I have dabbed in creating a fundamental new motion for vim which is analogous to f but takes two characters instead, and it does not rely on f's implementation to work. You can see it here http://github.com/goldfeld/vim-seek

Regarding lack of context, I agree, but I can't say I've done enough vim plugin development to say whether I think it's beneficial or detrimental to vim to be limited so.

Regions do actually sound like something with an infinite number of advanced and creative applications (stuff like Emacs org-mode). Do you know of editors that have such a feature? I'd be crazy for that.

> As for motions, what kind of motions do you think are difficult to create?

It's mostly text objects. Text objects for scope, variable references, etc. I think there are motions I have not yet discovered that operate on syntax trees. These are nonlinear the way surround is nonlinear.

I was introduced to multiple selection and generalized cursors when one of the DabbleDB guys implemented a generalized cursor editor. I thought it was awesome and did a bunch of research:



After reading a bunch, I got around to thinking what I'd have to do to implement an editor that could handle generalized cursors based on my experience with vim and hacking on it.

I came up with the idea for an edit core consisting of motions as compositions of partially applied functions. Takes a position returns a list of ranges, applying the list of ranges to an operator produces an edit. The jump from there to regions is pretty straightforward. The system also provides a clear path to how keyboard mapping would work (along with stealing the context ideas from ST).

I'm unaware of an editor that works this way but I find it difficult to believe I'm the first person to think of this. If I can successfully maneuver my job into building web development tools, I expect to gut Codemirror and replace the core operations with these primitives as a top priority but I haven't gotten there yet.

For context sensitive stuff: You can do clever stuff with it. As an example, if you're in a JSON file, after an identifier, and you type a : the editor can automatically put quotes around the key if it's not already quoted. My intro to the usefulness of context sensitive keys was that the ruby textmate bundle would insert Ruby interpolation (#{|} with | for cursor) when you hit # in a string.

Can you not do most context sensitive stuff by running regexes on current and neighboring lines?

That all sounds terrific, and if you get to implement these ideas on top of web technologies (or anywhere else would still be half as good) I'd love to hear about and possibly contribute. Do you have a blog or twitter or app.net I can follow?

You can get pretty far with regexes but you run into non hygenic macro problems. I use UltiSnips with regex snippets and python replacements and have gotten interesting stuff out of it like the JSON key quoting. The problem is that I have to remember to expand the snippet. It's the difference between having the always right indentation settings versus having the 90% right indentation settings. It doesn't seem like a lot of effort but results in a significant drop of cognitive load for me.

I'm on twitter and use the same username everywhere.

Are you aware of Evil[1] for Emacs? It also has a surround mode[2] to emulate vim's.

[1] http://emacswiki.org/emacs/Evil

[2] https://github.com/timcharper/evil-surround

I am aware of Evil. I actually like and am happy with Vim and I have enough customization invested over the last decade that porting my plugins is painful. The list was mostly just a response to the 'never switch' sentiment.

'regions' sounds like you want software generated code...which sounds more like maybe you need to think about your architecture/process a little more. You can generate code with a build step.

Code generation would be possible but in my head it's more like paredit where edits operate on the underlying structure of the code.

Going back to the XML example. The contents of the ending tag are the contents of the first WORD of the starting tag. A syntax file could set up a region between the two so that changing one tag alters the other.

Similarly a syntax file could set up a one way region from function arguments to local uses such that altering the argument name updates the local uses.

It's possible to do this via AST manipulation at build time but I don't think it's practical.

I think you want to generate your XML with a template maybe.

Why all this "you want"? I realize it's just a turn of phrase that you are probably using without thinking, but seriously: don't you think grayrest knows what he/she wants better than you do? Structure editors are extremely useful and do not solve the same problem as templates at all.

I ask developers what their favourite editor is in interviews. I don't particularly care what the answer is (although Notepad would be a bit of a black mark) but rather to see if they try to improve their productivity.

There's also people choosing a text-editor to start off with.

I wish jps (ST developer) was more responsive. There are many small bugs and inconsistencies that are dragged through the versions, even the new beta. A centralized bug tracker would be a great first step. Submit a bug, have it acknowleged by jps, track its status. At the moment, you have no idea if jps even knows of a bug. Docs are also generally poor. apart from that, I really love ST, and I cannot see anything Textadept has that would make me switch.

http://sublimetext.userecho.com/ seems to be the feature request and bug tracker, which would work well if any of these features/bugs actually got fixed (some are really old and highly requested). Usually I see minor stuff get fixed between updates, but worse is that the new features that appear in minor updates are nowhere to be seen in the top votes. One of these is preventing me from buying/using it. NP++ till then.

nothing, i repeat, NOTHING can replace vim. Learn to use it, and you feel so superior to everybody and everything around you, you might even kick walls and shopping-carts for using something different!

I am just kidding, but seriously, every time i read such "i found a vim replacement"-articles, it turns out the author was not really a vim power user. It's strange, i know.

The old "No True Vim User", eh?

As in: "No TRUE vim user would think any other program was better!"

Well in this case, the author of the article was praising (as an advantage) a TA feature that was also available in Vim (albeit via a plugin).

I would like to see articles like this demonstrate things that simply aren't possible in Vim (or something implemented with relative ease in comparison)

I may have missed it, but what features exactly does this have over Vim?

Nothing plugins can't fix

This might be a matter of packaging, then. Maybe someone should do a "distro" of vim for populations of users?

Tl;dr: An editor with lua patterns instead of regex find/replace. Thanks, I stick with (and pay for) my ST.

It doesn't even let me move without reaching to mouse or arrow keys. Hardly a vim replacement.

Great! I will try it out. It uses lpeg based lexers and a Lua api. Now my daily (coding) work is 99% Lua coding, so I feel rather comfortable with it.

I also like the file chooser (I am on Mac OS X), much faster for me than the system wide.

That's my "first 4 minutes" impression.

Nothing says "I've replaced VIM" like needing an X-11 server to edit a text file.

There's also an ncurses backend, and the OSX app does not really need X11, does it?

How often do you sit in front of a computer without X11 or another graphical interface? Many people don't edit any remote files.

And when you do, you don't need to run the editor on the machine where the file lies. What's missing is a nice integration of ssh into the editors.

I know several people that use terminal only, including myself, who use thin client devices like tablets ssh'd into a VPS.

I don't know if I am missing a setting, but here on Windows, it feels a bit like TextAdept is fighting a loosing battle with ClearType (as in, I almost feel I should be wearing 3D glasses).

On the wiki there was only one other theme available for the latest 6.3 release, so I tried an older Solarized theme, but TA crashes when I try to load it.

I feel having to press a keyboard shortcut to bring up the auto-complete menu is a step back in productivity compared to ST, but the built-in API help is a nice idea.

I see some incarnation of this story pop up every few weeks here on HN. Why do people have it in for Vim? Fast, stable, free, ubiquitous, crazy efficient -- I don't get why some people are on this mission to replace it. Hell, should you really decide to pay money for Vim you be supporting orphans in Uganda.

This is very superficial of me but ... are there any screenshots of Textadept anywhere?

The Sublime Text review linked in this one was actually more interesting.

oh well, another round of editor wars :/

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact