4 ms·
> If I were going to change any single thing about Vim, it would be to make MzScheme scripting support a first class citizen, and slowly re-engineer the backend
by guns 14y ago
> If I were going to change any single thing about Vim, it would be to make MzScheme scripting support a first class citizen, and slowly re-engineer the backend to be more Emacs styled. Core C (or whatever, but C out of momentum) functions with the rest of the system build up in Scheme.
Thank god there are people who share this vision! I have solemnly promised to myself that I will write a new vim in exactly this fashion if no one has done so in the next 10 years.
One thing that I don't understand about contemporary developers is the aversion to running their editors in a terminal. The benefits of doing this are significant (e.g. session management with tmux, remote pair programming via the same), but programmers leave them behind for what is ultimately just eye candy.
The major reasons for this are the difficulty in binding complex key chords in a terminal, and the poor implementation of OS X's Terminal.app (both of which can be worked around today with a little work, and a proper X terminal). If this terminal-based workflow is going to thrive in the future, what will need to be modernized is the terminal.¹
So you heard it here first: if a new vim built atop a Lisp interpreter running on a new data-centric, mixed character-grid/HTML5-webview terminal emulator does not appear in the next 10 years, I'm on the job.²
¹ Some excellent musings on the subject: http://lubutu.com/idea/ivo http://lubutu.com/idea/ivo
² This would all be easier if I could love to learn Emacs, but Vim modal editing is a pernicious addiction.
- merlincorey 14y agoI heard you like Vim, but want an emacs-backend, without all the work. http://emacswiki.org/emacs/ViperMode http://emacswiki.org/emacs/ViperMode You're welcome :D
- jamesrcole 14y agoI haven't used it myself, but I've heard a number of people say that it's not really the same. I think their complaint was that it's a somewhat superficial emulation.
- Derbasti 14y agoEvil is better than Viper and Vimpulse in every way.
- tikhonj 14y agoHave you tried evil[1]? I've heard good things about it (even from Vim people), so maybe it's a good compromise between Emacs and Vim. [1]: http://emacswiki.org/emacs/Evil http://emacswiki.org/emacs/Evil
- akkartik 14y agoThat's a great article. Do you know when it was written? It's weird how it's just dangling there with all of 2 sentences of context at http://lubutu.com http://lubutu.com. Also, how do you do the superscripts?!
- guns 14y agoArticle was submitted by the author about a year ago: http://news.ycombinator.com/item?id=3300264 http://news.ycombinator.com/item?id=3300264 > Also, how do you do the superscripts?! Unicode. In my case I input them in vim by way of vimperator. You can input them in vim using the digraph feature (try <C-K>11 in insert mode). My vimrc actually parses my ~/.inputrc to extract the keybindings I use to input Unicode characters in bash and every other program that uses readline, allowing me to use the same keys for Unicode chars in every context that I input text. https://github.com/guns/meinhaus/blob/guns/etc/inputrc#L144 https://github.com/guns/meinhaus/blob/guns/etc/inputrc#L144 https://github.com/guns/meinhaus/blob/guns/etc/vim/local/commands.vim#L501 https://github.com/guns/meinhaus/blob/guns/etc/vim/local/com...
- Erwin 14y agoThe Compose key in in X11 does the same, but globally. I think it's not bound by default; I have it on the right extra Windows key. Compose, then 1 then ^ generates a super-scripted ¹. /usr/share/X11/locale/en_US.UTF-8/Compose has a list, mostly filled with obscure stuff like ㊷.
- padraigm 14y agoAs tikhonj mentioned, Emacs evil-mode is very likely exactly what you're looking for. I had considered myself a hardcore vim user, but I felt the call of Slime and org-mode. When I finally took a serious look at Emacs, I became convinced that Emacs with evil-mode is the ultimate editor for vim lovers.
- guns 14y agoWhat concerns me about vim emulation modes is the uncanny valley mentioned by another poster. Working in a second-class interface doesn't sound that great. However, that's pretty strong praise, so I promise I'll give it a shot before trying to birth a new editor into the world.
- aerique 14y agoI've used Emacs for the last 10+ years first with my own custom keybindings and recently with keybindings with 'default' CUA bindings like you find them in almost any other modern application. Before I switched to Emacs I used vi/Vim for almost 10 years. Also, even when I had switched to Emacs I still used Vim on the commandline and on remote servers but not in any advanced way. I tried out evil-mode a couple of weeks ago just on a lark and I am staying with it. You really get the best of both world[1] this way. It might be a little strange at times but I wouldn't describe the usage as a second-class interface. Just different. I'd rather describe the default Emacs keybindings as a second-class interface :-) [1] this will not mean much if you've never used Emacs
- Evbn 14y agoI hate how editing in a terminal is "single-threaded" so I can't edit code while running it and examining output.
- emidln 14y agoI was about to disagree with you, but after running Conque in a vsplit, I found that it only processed changes in insert mode.
- snogglethorpe 14y agoAnother problem with running in a terminal is the lack of good integration with window-system cut/paste (e.g., where you can use editor commands to select text, copy it, and paste it in some other app, getting the actual text instead of just what's displayed on the terminal). I often run Emacs in a remote screen session (well actually I open a terminal frame in my already-running window-system Emacs), and this is by far the biggest annoyance for me.
- exDM69 14y ago> Another problem with running in a terminal is the lack of good integration with window-system cut/paste (e.g., where you can use editor commands to select text, copy it, and paste it in some other app, getting the actual text instead of just what's displayed on the terminal). This works quite nicely in Vim (even when running in console) with X11. You can access both X11 clipboards from Vim if it was compiled with that option (if you use binaries, most likely it is). The registers for X11 clipboard are "* and "+.
- snogglethorpe 14y agoSure, if you also have an X display-connection to the same machine where the terminal itself is running available and advertised. Unfortunately in many running-inna-terminal scenarios, you don't have such a thing...
- qznc 14y agoImplemented with Python: http://vixn.org/ http://vixn.org/
- jayferd 14y agoI'm on it too :) - ping me if and when you get started with this project. My pet peeve has always been the crappiness of VimL, and the internal confusion between the scripting language and command mode. I've started designing a language (and have a toy implementation) whose goal is to be as powerful on the command-line as a shell language, but also super-easy to write large plugins in.