By that time Emacs will have replaced temacs with Guile and someone clever will have added VimScript as a hosted language.
The keybindings would then be the only thing that the IDE changes.
Now I would pay for that feature decent sum of money :D.
Also, who says vim is running in a terminal?
I already use Tmux inside a tiling window manager and generally try to avoid manually managing panes inside Vim, mostly only tabs. There is a finite amount of hierarchical panes and tabs you can work with intuitively, before you wonder why they won't accept each others keyboard shortcuts, especially when you use the same color scheme in Vim, Tmux and Awesome.
> If I tmux then vim, I have to find some way to get the text out of tmux, and then back into vim.
That's actually a valid concern. I use piping for that, but it's not ideal at all. Maybe I will try it out.
Exactly the reason I want to manage terminals in vim. I already heavily use splitting in vim, and find it much faster and simpler to use than screen or tmux. In addition, I typically want integration between those splits, such as displaying the quickfix list in one, or showing 2-3 files in vimdiff, or yanking and pasting between files. Given that, I'd like to just open one more split in vim and have a terminal in it.
The original motivating use case for me: a vertical split, editing a manpage on one side, and showing a continuously updated render of the manpage on the other (using watch).
neovim's approach links libvterm in via C. You could potentially do so via python and ctypes instead, but then you have to count on having a vim compiled with Python support.
I think that was the main objective of the project. Would be nice to real vim in IntelliJ idea.
I'm guessing the delay you are referring to is the delay imposed by your terminal emulator (not vim) to detect the Escape key at the end that terminates visual block mode. If I'm right, you can quickly press "j" just after you press ESC, which should cancel the ESC-detection delay and cause your comment characters to appear instantly.
Edit: there's actually a few things that could be at play, including your terminal emulator, your screen/tmux (which is like another terminal editor, really), and vim's timeoutlen and ttimeoutlen settings.
set noesckeys #if 0
...code...
#endifhttps://github.com/Jaymon/vim-commentify
It's a no frills plugin that only does one thing, but it does it pretty well.
Optionally, convert the region into a separate function/method and just don't call it while checking.
Anyway, the things I appreciate more are the fast evolution and the community, no more than one year ago I tried it but was too lazy to compile, wait, configure...
This time I ran homebrew, linked my .vimrc in ~/.config/nvim/init.vim, and forgot I was using Neovim instead of Vim, except for the async compiling/linting.
From what I understand, the plugin community is generally pretty happy with neovim and find it preferable.
I've since switched all my plugins to use async versions and it's sooo fast, didn't think vim could be faster but here we are.
- vim-plug for a plugin manager (very good regardless of concurrency)
- neomake for building
- vim-go added async job support using neovim a while ago for most of its functionality, which I use for writing Go
My full inventory is here: https://github.com/shazow/dotfiles/blob/master/.vim/plugins....
rm -rf /Library/Caches/Homebrew/neovim--git
brew reinstall --HEAD neovim ==> make VERBOSE=1
Last 15 lines from /Users/jimwharton/Library/Logs/Homebrew/neovim/02.make:
"__Unwind_GetCFA", referenced from:
_lj_err_unwind_dwarf in libluajit.a(lj_err.o)
"__Unwind_RaiseException", referenced from:
_lj_err_throw in libluajit.a(lj_err.o)
"__Unwind_SetGR", referenced from:
_lj_err_unwind_dwarf in libluajit.a(lj_err.o)
"__Unwind_SetIP", referenced from:
_lj_err_unwind_dwarf in libluajit.a(lj_err.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [luajit] Error 1
make[3]: *** [src/luajit] Error 2
make[2]: *** [build/src/luajit-stamp/luajit-install] Error 2
make[1]: *** [CMakeFiles/luajit.dir/all] Error 2
make: *** [all] Error 2
I know I just need to jump into figuring out how to get the ONE version of LuaJIT that works (as I've read, there is only one) and pop that in there. unset LUA_CPATH LUA_PATH
brew reinstall --HEAD neovim
- Async /Io
- Async Jobs
- "Packages", which allow easier built-in bundling of plugins
I'm pretty excited for this release! I've been using Neovim for several months now, but really great to see mainline Vim get these (IMO long overdue) enhancements.