Thanks!

Štěpán Němec stepnem at gmail.com
Mon Jul 19 08:47:01 CEST 2010


Marc Weber <marco-oweber at gmx.de> writes:

> Hi list,
>
> I've been using Vim for years. However I'm at a point I think Vim will
> no longer serve (all) my needs - that's because the core is lacking
> functionality - which can be implemented - but would take a lot of
> time.

Welcome to the club. ;-)

> I want to thank you - I was very pleased seeing that these features
> just work:
>   - ctrl-vI..<esc> (instert into multiple lines)
>   - text objects
>   - all visual modes
>   - % in combination with visual mode.
>
> So Emacs comes pretty close to what I'm used to (which I use most)
>
> There is one last thing which I'm missing:
> Opening files by glob patterns:
>
> noremap :e  :e<space>**/*

Be sure to also have a look at Frank Fischer's Vim mode:

http://www.emacswiki.org/emacs/VimMode

Before some time it seemed lacking to me, but there were more commits
since then and IIRC it implements more :commands (personally I think
implementing Vim :commands is not really a good idea:

- you're using Emacs anyway, so you'll *have* to use M-x anyway and this
  only introduces more inconsistency

- using and defining usual Emacs commands makes it easier to interact
  with other Emacs libraries).

> In #emacs I was told use ido-find-file ..
> However patterns like this **/*Main.scala doen't work for me.

Yeah, I think that the double asterisk doesn't work (don't know if some
Emacs package implements it); but normal shell patterns do work, even
with plain `find-file'. Ido provides an `ido-wide-find-file-or-pop-dir'
command, bound to M-f, which uses `find' to search for a file under
current directory. I'm guessing that could help?

> creating a buffer with output of find then using gf (which works!)
> is not a perfect solution.
>
> Having gF implemented properly would be fine, because I use it often
> when reading Exception logs - I can still fallback to Vim.

Yeah, that'd be easy to implement, obviously nobody just felt the need
so far...

> Do you have some more hacks in you ~/.emacs making using Emacs easier
> for Vim addicts?

Yes.
Not sure what you'd be most interested in... Some simple examples
(assuming you use Viper/Vimpulse):

;; redefine `viper-yank-line' (equiv. of the famous `map Y y$')
(defun viper-yank-line (arg)
  "Delete to the end of line."
  (interactive "P")
  (viper-goto-eol (cons arg ?y)))

(define-key viper-vi-basic-map "ga" 'what-cursor-position)
(define-key viper-vi-basic-map "go" 'goto-char)

> Eg is there a :qa! like command (without the nasty: You have unsaved
> open files..)

Hm... Although I do often use :qa! (I have it bound to a key) in Vim, I
_never_ felt the need in Emacs :-D. Most people seem to use Emacs rather
differently, e.g. you never start Emacs to edit a file and then quit it
-- you use emacsclient for that, and then there is no such thing as
"quickly quit without saving". That being said, what I do find *very*
annoying is the default `yes-or-no-p', i.e. having to type "yes" instead
of just pressing "y" on this kind of prompts; (fset 'yes-or-no-p
'y-or-n-p) fixes that.

HTH,

Štěpán



More information about the implementations-list mailing list