Linux shell (bash) on vi's splitview

别说谁变了你拦得住时间么 提交于 2019-12-30 01:59:19

问题


I've been searching with no results for an integration of bash inside vi, as featured in emacs; the problem is: I have vi open with 2 views, one open with :split command, and I want to use bash through the second view, while I'm editing a file in the first; if I do :sh while editing the second view, the whole session pauses and a bash shell is opened, but I'm not able to edit the file and use the shell at the same time.. I don't want to use !<command> or external programs such as "terminator".. Is there a solution? Thx


回答1:


Have you tried looking for third-party Vim plugins? Conque Shell looks like it might do the job.




回答2:


I'm afraid this feature isn't available in (presumably) Vim. It is on the list of possible new features. See here http://www.vim.org/sponsor/vote_results.php. At the current time of writing this is feature number two, add IDE features. If you want to vote for this feature you will need to sponsor Vim.




回答3:


I use VIM in conjunction with tmux, which handles window splits very well. I just transitioned to this workflow from a combination of terminal and GVIM, though, and I encountered your question in looking for a piece missing from my old workflow.

I could run GVIM from the command line with the "--servername" flag and add files to that window with the "--remote-tab" flag. Now that I'm living entirely in the terminal with tmux, I don't seem to have the same option, so BBW. :/




回答4:


I just wrote myself a plugin for that purpose, see http://www.vim.org/scripts/script.php?script_id=4887

It won't work under Windows. On the other hand, it uses the Unix philosophy: two FIFOs, some tricky interaction between background processes. It doesn't require python or whatever. It allows to execute either a shell or any interpreter for a programming language. You can see a video of it with GNU APL working in a buffer here.

Like IPython, you work on your own buffer and see the output in a scratch buffer.

Since I spent much time on Stackoverflow studying the answers of the three following pages:

  • Linux shell (bash) on vi's splitview
  • How do I run a terminal inside of Vim?
  • Vim: Run selected code in a persistent REPL-environment

I will post the same answer on the three pages; I hope nobody will be hurt by this triple post, but really they ask something close and someone else could find my answer interesting for his/her own purposes by browsing the web and finding any of these three pages.




回答5:


As a new (and maybe better) answer, may I suggest you to have a try to the amazing neovim fork of vim? It is a newer project; I tried it myself and found no compatibility issue with vim (including the use of sophisticated plugins) and it has exactly what you are asking for.




回答6:


neovim now support terminal emulation. More details at help nvim-terminal-emulator in nvim



来源:https://stackoverflow.com/questions/3222974/linux-shell-bash-on-vis-splitview

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!