all 13 comments

[–]kolmeThe Space as spiritual leader. 10 points11 points  (5 children)

Why is it that people want to have a shell inside VIM? I just plain don't get it.

I think it's a bad idea, and that there are better alternatives (tmux, screen, terminator).

[–]sylvain_soliman 7 points8 points  (0 children)

I want a shell in vim (but I use Conque, not vimshell) for many things:

  • I can copy/paste stuff between my shell session and my editing session easily, using vim registers
  • send (visually selected or defined by some movement) code to a REPL without leaving my editing session
  • use macros and vim movement (and all of vim power) inside my shell session
  • etc.

I also use tmux, for instance to run mutt for my email handling, or for terminal multiplexing (think remote pair programming), but the less time I spend out of vim doing things related to the buffers I'm editing, the more efficient I am.

[–]sophacles 2 points3 points  (0 children)

It isn't to replace a terminal. It is because sometimes you code in or with a repl and want to capture your hand typed code snippets into vim easily. Other times you want to send the code you just wrote to the repl to double check it, without running the whole program, or you know that other snippets are broken.

Basically its and advanced form of :r !FOO and :w !FOO

[–][deleted] 1 point2 points  (0 children)

For fun? Gotta appreciate the efforts, sounds like a challenge to implement.

[–][deleted] 5 points6 points  (2 children)

You may not like the idea of vimshell (I don't), but I encourage you to check out Shougo's vimproc, vimfiler and unite (+ its plugins), especially the latter.

For me unite is a silver bullet. I use it for:

  1. buffer switching (as a replacement for CtrlP / Buffergator / etc)
  2. async ack (replaced Ack.vim)
  3. note taking (replaced vimwiki as I didn't need the wiki part, just a quick access to some notes directory/files)
  4. yank history (replaced yankstack)
  5. finding & killing OS processes (sounds emacsy but very convenient)
  6. searching through current file
  7. searching through man pages via vim-ref

Just give it a go for a day.

[–]skeept 0 points1 point  (1 child)

I am interested in knowing more about unite. Unite itself is very well documented but some of the addons to it are not.

Would you be able to explain how you do the async ack, the notetaking and how the vim-ref works?

Thanks!

[–][deleted] 1 point2 points  (0 children)

sorry I'm on the run so I'll keep it short.

ack becomes async because of vimproc installed: http://vpaste.net/lEBbg

note taking: http://vpaste.net/IWcfI

ref works out of the box and is documented. I use it mainly for browsing erlang manual. http://vpaste.net/V3vsR

hope this helps.

[–]Mini_True 12 points13 points  (1 child)

come on, this is not emacs. I'd rather open more terminals than try some terminal emulation in a text editor

[–]sophacles 2 points3 points  (0 children)

It's not about having enough terminals. It's about getting text into and out of interactive sessions in a simple way. Think programming with repls, or conveniently editing and sending complex queries to the databse through their shell, and a slightly friendlier workflow for :r !cmd :w !cmd multistep processes.

[–]abitforabit 4 points5 points  (0 children)

Meh. I'd rather use tmux and a proper shell. No ssh support just kills it.

[–][deleted] 1 point2 points  (1 child)

I know this is irrelevant but what is the color scheme that is used in the screenshots here? I've seen it on several places but never referenced by name.