7 ms·
Emacs+Evil is the next Vim. And yes, CtrlP is probably the thing you'll miss most. But all the other things I got from switching from Vim to Emacs+Evil easily
by cies 12y ago
Emacs+Evil is the next Vim.
And yes, CtrlP is probably the thing you'll miss most.
But all the other things I got from switching from Vim to Emacs+Evil easily outweigh the missing CtrlP.
Vim was great, until I wanted to customize it heavily. It is simply not made to facilitate things like: child processes, SSH, understanding my code, a visual interface for Git.
- Symmetry 12y agoI miss CtrlP, but I miss the jump list even more.
- phaer 12y agoI haven't used CtrlP too much, but what are you missing in ido-mode or helm?
- craigching 12y agoI only discovered ido about two years ago and, man, I can't imagine emacs without it now ... and I've been an emacs user for over 20 years! Only dabbled with helm a bit, there was one helm-enabled package that I really wanted to try.
- MetaCosm 12y agoFast proper fuzzy-find completion on files, buffers and tags that works across multiple platforms and even on files not in source control. In Vim I have it bound to <leader>f, <leader>b, <leader>t -- on my multiple trips over to Emacs land -- I have tried lots of ways to get the equivalent working and always come up short.
- aaronem 12y agoLusty Explorer may well satisfy your first two requirements. I don't believe it searches tag files at present, but the capability shouldn't be too hard to add; for files and buffers, I've used it for some years, and find it quite nice.
- MetaCosm 12y agoActually, I think I have used a clone of Lusty on the Vim side and it worked nicely. Getting tags support working would be nice as well -- I really like the global tags option in CtrlP (I got this function name somewhere in an open file, take me there).
- aaronem 12y agoLusty actually originated on the Vim side, and was ported to Emacs by someone who liked the functionality. Emacs comes stock with good tags support; once you've built a tagfile, M-. on a tag will take you to its definition. (I don't use tags myself, although I really should, so I don't know whether Emacs can automate construction and update of a tagfile, but I strongly suspect it can; check the relevant documentation for details.)
- phaer 12y agoYou could mention in which ways you tried it, because helm (https://github.com/emacs-helm/helm https://github.com/emacs-helm/helm ) does all the things you mention as far as i know.
- tuhdo 12y agoIs able to use GNU Global/Cscope/Ctags to jump around Linux kernel source code, in Linux/Mac OS/Windows good enough? Like this: http://tuhdo.github.io/emacs-tutor.html#sec-8 http://tuhdo.github.io/emacs-tutor.html#sec-8
- farresito 12y agoTake a look at Projectile. It works pretty much like CtrlP.
- tokai 12y agoI thought that neovim was the next vim.
- omaranto 12y agoIt might be the next one after Evil. Evil is already here, neovim is coming.
- akerl_ 12y agoDo one thing well. My text editor shouldn't be managing child processes or SSHing or trying to be a visual Git interface, and Vim does a great job displaying my code so I can understand it.
- aaronem 12y agoEmacs does a great job at that, too. (In fact, it contains a complete Javascript parser, which is invaluable to me since that's the language around which my professional life revolves.) It also does a great job managing child processes and SSHing. (Or FTPing, or speaking whatever other protocol you need to use to access remote files.) I can't speak to it as a visual Git interface, but I don't doubt it's at least reasonably good at that, too. "Do one thing well" is a good start, sure. But why not aspire to more?
- akerl_ 12y agoIt's great to aspire to more, and that's why my system has more than one binary in $PATH. If a project wants to release an awesome $thing_doer in addition to their main tool's function, it should be a separate tool. That way I can use esshhelper and egitbrowser and eftp separately from emacs (yes, I know the names are contrived).
- __david__ 12y agoThat's how Emacs works though! There's a bunch of TeX junk in Emacs but since I never use TeX, Emacs never loads that lisp. It's just sitting around in a directory waiting in case I do need it at some point. And Emacs has a command line for its stuff: "M-x". And if you really want to have separate executables you can do that with small 'emacs --eval' wrappers.
- jff 12y agoDo you consider the shell an overly-featured program because you use it to copy/delete/create/link files, install packages, etc? No, because it's a tool which loads up other tools for your use, providing some conveniences like job control in the process. Emacs provides a lisp implementation. People have used this lisp implementation to write ftp clients, web browsers, and yes even text editing functionality; you then use emacs to load some of that lisp code and execute it. I don't say the Bourne shell fails at "doing one thing well" since people write shell scripts and run them from within the shell.
- falcolas 12y agoI tried Evil for about a month, and couldn't stand it. Some parts didn't work the same (ctags word boundaries), and the need to move back and forth between Evil mode and normal emacs mode when using other emacs plugins (it never worked quite right in plugins like magit) negated much of the benefit of having Evil mode in the first place. I'll probably be sticking with boring old Vim and the command line.
- platz 12y agoThere are many keybindings that conflict between emacs and evil/vim
- pyre 12y ago> understanding my code Both Vim and Emacs have a horrible time trying to syntax highlight Perl, but I find Vim's flaws to be more tolerable. Emacs isn't some sort of panacea.
- thebelal 12y agoI have written a good amount of perl in both Vim and Emacs and can't recall noticing bad syntax highlighting in either. Do you have an example?
- __david__ 12y agoI find Emacs's default Perl mode isn't so good. Luckily Emacs also comes bundled with cperl, which works much better in my experience. So much so that I have this in my .emacs: (defalias 'perl-mode 'cperl-mode) ; perl-mode sucks; use cperl-mode
- pyre 12y agoOne of the examples I seem to remember was string interpolation of things like: " @{[ blah() ]} " I was never an Emacs user, but paired with Emacs users quite often during a 4 year stint at a Perl shop. In Vim: my $variable = <<EOF; STUFF GOES HERE EOF Vim highlights everything from "<<EOF" to "EOF" as a string, but technically the string highlighting shouldn't start until the beginning of the next line. In the example above it's not the end of the world, but you can have examples like this: my $variable = function_call(<<EOF, $blah); EOF where ", $blah);" is highlighted as part of the string, when it isn't. [edit: I tried to replicated this, and I'm not seeing the HEREDOC portion highlighted as a string, but I also notice that Perl 5.20 has removed <<HEREDOC in favour of <<"HEREDOC" or <<'HEREDOC', so maybe that made parsing for syntax-highlighting easier.] Also in Vim: "text @{[ callFunction(sub { }) ]} text" The first '}' encountered terminates the '@{' instead of parsing matching pairs.
- klibertp 12y agoFuzzy file finder was a thing I missed the most. Fuzzy-other-things-finders like ido and helm are there and work very well, but fuzzy file finding is either slow or incomplete with most solutions. So I found one plugin I liked - https://github.com/justinweiss/fuzzy-find-in-project https://github.com/justinweiss/fuzzy-find-in-project - rewrote most of it and now I use it exclusively: https://github.com/piotrklibert/ffip https://github.com/piotrklibert/ffip It's documented in the code - more or less - and I'm very happy with it, especially with having multiple directory sets I can change between (which I implemented recently) and how fast it is (aside from initial caching done by the ruby backend). I actually never thought about releasing it publicly, so the readme is non-existent and the Ruby script is hacked with hardcoded ignores, fonts are not customizable, and it's even possible that I hacked the Ruby gem source at one point. I could clean it up a bit if there was some interest in it.
- swah 12y agoIsn't Helm, sucessor of Anything, much more than CtrlP could ever be?
- bwilliams 12y agoI tried using helm when I wanted to learn emacs and my problem is that helm is incredibly ugly, and customizing it would take a good amount of time.
- tuhdo 12y agoReally? You should checkout my guide: http://tuhdo.github.io/helm-intro.html http://tuhdo.github.io/helm-intro.html and see if Helm is ugly or not. Nothing like Helm (except itself) ever exists. Check "Why Helm is powerful" section: http://tuhdo.github.io/helm-intro.html#sec-28 http://tuhdo.github.io/helm-intro.html#sec-28
- alwillis 12y ago>Emacs+Evil is the next Vim. Actually, Vim is the next Vim--it only seems to get better and better. After switching to Vim full-time about two years ago, I recently tackled exporting the text from a 10-year old PDF to markup it up using AsciiDoc[1] so I can output HTML and ePub. It’s over 37,000 words but I was amazed how easily I was able to jump anywhere on the screen with just a few keystrokes fix all of the little things that need to be fixed in a text file. And because editing paragraphs of text is somewhat different than what I normally do (writing HTML and CSS), it was pretty cool being able to leverage the composability[2] of Vim and how seamlessly that knowledge works in new contexts. [1]: http://www.methods.co.nz/asciidoc/index.html http://www.methods.co.nz/asciidoc/index.html [2]: https://medium.com/@mkozlows/why-atom-cant-replace-vim-433852f4b4d1 https://medium.com/@mkozlows/why-atom-cant-replace-vim-43385...
- lfuller 12y agoI don't understand why people want to do this in Vim. To me, a text editor should be extremely good at text editing / analysis and nothing else. I use tmux, so all the advanced functionality of the terminal is only a single keypress away (to switch to another open terminal split).
- JelteF 12y agoI hope you do use vim splits, since you have the same (copy/paste) buffers then.
- lfuller 12y agoI do! I have both tmux and vim configured so that <C-{h,j,k,l}> will navigate through both kinds of splits.
- hollerith 12y agoWhen I visit a file in Emacs, indications appear on the screen (in the "mode line") as to which version-control system, if any, the file is under the control of and whether the file contains any non-checked-in changes. Perhaps grandparent wants something like that in Vim if it does not exist already.
- ue_ 12y agoEmacs isn't really just a text editor though, it's a Lisp environment whose primary use is as a text editor. It's possible to do many other things in it, so much so that it's joked about as being an operating system in its own right. Emacs is extremely good at text editing, but it's not just a text editor.
- JelteF 12y agoI'm not sure why you need child processes or SSH (I mean you can use vim over SSH). But have you tried syntastic for the syntax checking? And I'm not sure what kind of visual interface you want for git, bit the combination of fugitive and gitgutter (super simple but awesome) works quite well for me.