12 ms·
Neovim now has builtin terminal emulation via libvterm
- grimgrin 12y agoThis will be used for :! and :shell commands. * :term [prog/args] will open a new special buffer "connected" to a pseudo terminal running prog/args * any command that would enter insert mode will focus the terminal buffer instead. * when focused a new mode is entered where all keys are passed directly to the program. The <c-g><esc> combination will return to normal mode. * new terminal-only mappings can be added with the "t" prefix(eg: tnoremap <c-a> <c-g><esc> exit terminal focus using ctrl+a) Someone asked: "I really don't know how I would use this feature but it's impressive how well it works." tarruda replies: "With time, the numerous use cases for this feature will be clear, but here's one idea: This allows another level of integration between text mode programs and Neovim. For example, we'll be able to make gdb respond to nvim mappings and change file/line numbers when a breakpoint is hit(Technically this might be possible with tmux but not without numerous hacks)" If you want to try this out yourself and have installed neovim with brew, do this: brew tap neovim/homebrew-neovim brew edit neovim At the top of the recipe, change the head: #head "https://github.com/neovim/neovim.git" head "https://github.com/tarruda/neovim.git", :branch => "builtin-terminal-emulation" And then: brew install --HEAD neovim -or- brew reinstall neovim
- CUViper 12y agoOn debugging, traditional vimmers might want to try Conque GDB: http://vim.sourceforge.net/scripts/script.php?script_id=4582 http://vim.sourceforge.net/scripts/script.php?script_id=4582 But honestly, even though I've kept this installed, it still feels foreign enough that I usually just run gdb (or cgdb) in a separate terminal anyway. If I ever make the jump to neovim, I'll be curious to see how much of a native feel can be given to things like this.
- zokier 12y ago> when focused a new mode is entered where all keys are passed directly to the program. The <c-g><esc> combination will return to normal mode. Is there a mode (planned) that would have local line editing? Something like having a buffer where you can compose your line and then send it to running program. Or can you do that already?
- bch 12y agoNot neovim tested (I'm an nvi user), but: [editeditedit]; # <--- on an empty line <command-mode on your crafted line> 0"ay$ ;# go to start of line, in a buffer named "a" yank to EOL @a ;# <-- execute the buffer "a" Example line: :r!ls -ld <splat>^M ^-- enter ed mode, read contents of command "ls -ld <splat>"[enter] Is that close (or adaptable?) to what you're thinking of? EDIT: Test in vim (it works) and change the "[shift 8]" to <splat> (HN html renderer was swallowing the "[shift 8]")
- saidajigumi 12y agoThis promises to be incredible for all of the use cases where folks currently remote-control tmux windows, etc. When considering things like debugger integration, this cracks the door to some features previously owned well only by GUI IDEs. I think the killer feature here is not just terminal-in-vim, but the full emulation aspect. When I used to use Emacs extensively, I could never really get into eshell because it ignored terminal emulation. It was OK for some things, but mostly just threw a wrench in my normal shell workflows.
- jmgrosen 12y agoTo note: Emacs supports full terminal emulation too, with `ansi-term`. It's a little janky switching between line/char mode, but I use it as my default terminal. Of course, if you use Vim, this looks great too! I just don't want anyone to be dissuaded from Emacs for this reason ;)
- saidajigumi 12y agoThanks for the info. It's been many years since I tried shell use under Emacs; I should have figured there'd be a better solution by now!
- deleted 12y ago[deleted]
- geofft 12y agoThis is, of course, equivalent to curl | sudo sh in terms of security properties. (Which is not a complaint; I'm pretty okay with curl | sudo sh, because I'm okay with so many other equivalent things, like this.)
- je42 12y agowhats the status of neovim at the moment ? has it reached a level such that you can use as an editor on a daily basis ?
- fizzbatter 12y agoI've been using entirely Neovim for around 4 months now. The only issue i experienced was two plugins (out of many) that had slight issues. One was an issue with Powerline, and i forget the other. Note that i had wanted to get rid of powerline anyway, so i didn't bother trying to get it to work. As a side effect, various things seemed to become much faster, such as Vundle installs. I assume this is due to some async work, but i never really looked into it, so this is very anecdotal. Overall it's been a seamless transition. I haven't even bothered to keep up to date with the repo master, simply because it has worked so well i haven't needed to. Really enjoy this project, can't recommend it enough :)
- yodsanklai 12y ago> Really enjoy this project, can't recommend it enough :) Genuine question, why is it so great? any reason to switch to it?
- lojack 12y agoOne of the big reasons is it has multithreading. So, you know when you have a plugin that's doing something and the whole editor locks up so you can't do anything... with NeoVim there's a way to prevent that from occurring.
- shmerl 12y agoDoes neovim support 24 bit color themes for terminals which support it like Konsole?
- xvilka 12y agoNot yet https://github.com/neovim/neovim/issues/59 https://github.com/neovim/neovim/issues/59
- new299 12y agolibvterm is really awesome and a very powerful library it's great to see it getting more use. I've previously used it for a graphical terminal project (http://41j.com/hterm http://41j.com/hterm) and via Emscripten to create a web-based ssh client (https://minaterm.com https://minaterm.com). It's been very easy to work with in both cases.
- tambourine_man 12y agoDon't know if you're aware, but the naked domain (https://minaterm.com https://minaterm.com) is not working, while https://www.minaterm.com https://www.minaterm.com is.
- andrewchambers 12y agoIt looks great, though light on documentation.
- new299 12y agoThanks, yes at present both projects are mostly proof of concepts. I'd want to see if they gain any general interest before putting much more time into them and improving documentation (and to be frank general quality of the code).
- sigzero 12y agoHow is the Windows side coming along?
- bjg 12y agoBuilds and Runs apparently: https://github.com/neovim/neovim/pull/810#issuecomment-74986872 https://github.com/neovim/neovim/pull/810#issuecomment-74986...
- bstar77 12y agoHas anyone played with Atom NeoVim? That looked like the most promising gui based approach. I'm sticking with macVim in the near term, but I'd love to play with Atom. https://www.youtube.com/watch?v=lH_zb7X6mZw https://www.youtube.com/watch?v=lH_zb7X6mZw
- xiaq 12y agoThis is another proof of how editors and terminal multiplexers should really be just one thing. Editors are replicating terminal multiplexer functionalities - tabs, windows, and now with terminal emulation they have become terminal multiplexers. Terminal multiplexers are also replicating editor features (copy-mode of tmux, for example). Unfortunatly neither has reached a state to completely supersede the other - I always find vim's window-manipulating commands obscure, and copy-pasting with tmux is never as satisfactory as in vim. I suspect that such a state will never be reached, since both party are still keeping their narrow mindsets - vim still tries to remain an editor, and tmux still tries to remain a terminal multiplexer. The world can benefit from something that is built as both an editor and a terminal multiplexer from the very beginning. There is acme (http://en.wikipedia.org/wiki/Acme_%28text_editor%29 http://en.wikipedia.org/wiki/Acme_%28text_editor%29), but we need something slightly more elaborate and friendlier to the keyboard. (There is also emacs, which is both an editor and a terminal multiplexer. But it is also a news reader, a web browser, and a million other things. Something that is "just" both an editor and a terminal multiplexer is probably better for the reset of us.)
- hsitz 12y ago"I always find vim's window-manipulating commands obscure. . . ." What's obscure? I assume you're talking about the keys mapped to the commands, which can easily be changed to whatever you want them to be. Trivial. Other than that, the operations themselves just seem to be basic stuff, splitting windows, closing windows, moving between windows. The common and obvious manipulations.
- chongli 12y agoRemapping default key commands is a fraught problem. Doing so acclimates the user to a custom environment which is not strictly a superset of the default environment. This makes it very difficult to switch to other environments and remain productive. Defaults enjoy privileged status.
- rane 12y agoPersonally as a developer (not a sysadmin), I choose to be more productive 99% of the time than eschew customizations because I might vim in remotely here and there.