Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
VimSpeak (github.com/ashleyf)
105 points by DanielRibeiro on May 6, 2013 | hide | past | favorite | 41 comments


People. On your front page, you must always say what your thing is. Referring to some other thing that I've also never heard of is not telling me what your thing is.

This drives me insane.


I wrote a description and made a pull request to fix this: https://github.com/AshleyF/VimSpeak/pull/1


I thought this was just a text-to-speech plugin until I saw the video. I almost didn't watch the video for that reason.


The VimGolf example is incredibly cool.

http://toogl.es/#/view/qy84TYvXJbk


http://www.youtube.com/watch?v=qy84TYvXJbk noscript blocked your link for me.


This is so freaking cool. Don't know if I'd use it all day, might end up switching RSI for a sore throat, but sure is cool.

Maybe on a smart phone… without the virtual keyboard, the entire screen is free for displaying code. And typing on that tiny thing isn't that great anyway.

The thought of using Vim while laying on the couch is also enticing. Your significant other may think you finally lost your mind after hearing you speak to your editor, though.


Or combine with Google Glass and code while walking in the woods :)


This is exactly the sort of nightmare Glass gives me when I dream of it.


As a replacement for walking in the woods unaided it'd be terrible, but as a replacement for sitting in a cubicle it might not be so bad.


The README should really say what VimSpeak is. I don't want to have to watch a video about another similar application just to figure out what this is.



For everyone thinking this is a text-to-speech plugin for vim (boring): it is not. It's a voice controlled vim (quite cool).


A similar project using Emacs and really clever use of Python and Dragon Naturally Speaking SDK was my favorite presentation at PyCon this past year.

https://www.youtube.com/watch?v=8SkdfdXWYaI


Wow this is timely for me, yesterday I was thinking about doing exactly this. I had no idea it could be done in so little code.

I'm thinking along slightly different lines: a short syllable for each key, optimized for easy pronunciation in frequent combinations, so I can speak the commands really quickly. I figure it won't be any harder to learn than Vim was in the first place.


I always worried how I would code if suddenly lost the use of my hands. This gives me hope it wouldn't be a life-ending disaster!


How can I make this work on Windows and Linux? Is the code F#?


Yes, it's F#. I just got it running in Visual Studio. I suspect the speech recognition library is Windows-only.


Speech recognition is cute as a tech demo, but I doubt it'll be very useful in the Real World.


Tavis Rudd is using it in the real world, and says he's faster with it than typing. There's a link to his presentation on the github page.

He advocates it for anyone, but for people with RSI it'd especially be a godsend.


That's awesome! Tavis's emacs setup is amazing!


Amazingly awesome!


The 80 year old editor that just will not die. Which reminds me I need to fill my lamp with kerosene. Wouldn't wanna adapt to electric powered lighting.


You got downvoted because you criticize something which you obviously have no clue of. The reason why vim, in its various incarnations, is still being used is because vim is not an editor, vim is a highly powerful text manipulation language. The main implementation of said language being Vim, with implementations for lots of other editors (Sublime, Xcode, Eclipse, even Emacs).

If I'd find a better text manipulation language than vim, I'd switch in a heartbeat. I've yet to find one.


Please. vim is an editor. Whether vim is a language, which has an implementation known as vim which is an editor, is irrelevant. I referred to the implementation. And it was clear I was referring to the editor.

You might wanna correct Wikipedia and tons of other sources that all refer to vim the editor. Cuz they are all wrong, per your definition.


Yes, and no. I was referring to your criticism that people still use it. See, people do not use it because it is vim, the editor, but because it is vim, the text manipulation language. Really. There's nothing great about the editor itself, it is rather clunky, lacks solid UI abstractions, blocks the UI while it is busy doing something, has an awful scripting language (vim script), and more. If you take away the text manipulation language, nobody would use it.

Another point validating that is that people write vim-layers for all kinds of editors and IDEs. They don't port the editor (i.e. the weird UI blocking, or the text mode, or the other things or even vim script), they port the text manipulation language.

Coming back to what I originally said: You seem to not get vim, and how it allows to easily modify text with a manipulation language (not a programming language!). Say I'm at the beginning of a line: #[exampleObject: obj displayTitle: @"this is the title"]; [delegateDoSomethingWith: @"this is the title"]; Say I want to take the 'this is the title', and change the contents to 'new title. In the vim-language, that's the following code (cursor pos is the #): /@"<CR>2lci"new title<ESC>n2l. or Vj:s/this is the title/new title/<CR> This is a simple example, but for moving around text and manipulating it (i.e. everything after you wrote the initial code / function class / whatever) it is beyond fantastic.

What's not so good, as outlined above, is vim the editor, simply because it is old and doesn't have a more modern UI, etc. There're many projects that tried to address this, but everyone, so far, failed to implement the text manipulation language as deeply as in the reference implementation vim. What comes close is evil for emacs.


With facts in hand, no, vim is not a text manipulation language. vim script is: http://en.wikipedia.org/wiki/Vim_script

I never referred to vim script. I referred to vim. To quote you, "you obviously have no clue" that vim is an editor, which contains vim script.


Dude. He's right.

Vim is clunky, I'll admit it, but it is a text-manipulation language separate from vim script.

Vim-the-language looks like this:

  ci)char* arg<ESC>/func<CR>V}:s/param/arg/g<CR>


That's kinda looks like what I have to type in to go to the end of a single line in Vim. ;-)


Actually, the vim language utilizes regular expressions, so end of a single line is $ while ^ is the beginning of the line. Just like the regex: "/^[0-9]*$"


Vim is usually fairly efficient in what it makes you type, just not always as consistent as I'd like.


The difference between this and kerosene is that there are real reasons to use electricity rather than kerosene, whereas the only reason you have not to use emacs or vim is some kind of personal preference, not the lack of some modern text editing technology.


Bait taken. Side bet won. Point proven. Thou shalt not criticize VI/VIM/Emacs or anything remotely Linux related on HN.

Now let's see if we can get enough downvotes to put me in negative territory.


http://ycombinator.com/newsguidelines.html

Please avoid introducing classic flamewar topics unless you have something genuinely new to say about them.

and

Please don't bait other users by inviting them to downmod you.

Somehow, I don't think your being downvoted was a result of your non-constructive "criticism".


Could you possibly imagine that keyboards are even older than vim ? And people still use it. Incredible. :-)


In the absence of another more advance means of communicating with a computer, keyboards are all we have. Mice help, new touch screens help, but the big one (I think) could be voice. And I have no idea what Google Glass uses, but that's another potential example.

With VIM, it's not that it's an editor, or old, but downright archaic. Folks just won't let go.


Further to the point made about vim being a text manipulation language - it's very well defined.

Voice control is a more advanced means of communicating with a computer, keyboards are not all we have anymore. What you're saying is contradicted by what's demonstrated right here.

Voice works right now with vim's text manipulation language, have a look at the vim golf example. This ancient technology could be used to make voice editing a reality for people who would rather learn 'delete five lines' than "5dd". I haven't yet seen another editor that would allow code be manipulated this was with voice controls, besides emacs. It's a testament to the configurability and extensibility of vim that it can stay current in this manner.

VimGolf is basically a challenge to make certain edits with as few vim commands as possible.

Unless I am mistaken, google glass uses the android voice recognition software.


Open source is only as old as its latest commit.

https://code.google.com/p/vim/source/list

Which, in this case, seems to be 5 hours.


Also, one of the last commits (patch 924) is a HUGE deal for someone like me who has written plugins in python (global, window and buffer-level options can be now set using vim's python API). Let's hope mappings come next!


It's fine for you to use whatever tools you want, even if they are under-powered toys. But qualitative hand-waving like 'archaic' shouldn't be confused with an objective disadvantage.


http://delvarworld.github.io/blog/2013/03/16/just-use-sublim...

I would love to take credit for having read that prior to using the word archaic. I didn't. I formed my own opinion. I just happened to find that blog post a few minutes ago while searching on Sublime Text 2. The fact that he expresses my thoughts much more elegantly than me fills me with envy.

But he's correct.


Did you miss the part where he says over and over how he uses vim?

Did you read the replies on reddit where this was originally posted to where there are rebuttal to the author's claims?

http://www.reddit.com/r/vim/comments/1aq1lx/just_use_sublime...

http://vpaste.net/fA7rH

Vim is a text editor and that's it. If you want it do be an IDE you're going to have a bad time. I'd recommend this piece on Unix as IDE

http://blog.sanctum.geek.nz/series/unix-as-ide/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: