vimpulse C-o not using global marks ?!?

Štěpán Němec stepnem at
Sun Jul 25 21:18:17 CEST 2010

Vegard Øye <vegard_oye at> writes:

> On 2010-07-24 21:42, Štěpán Němec wrote:
>> Also, I'm not sure I understand what you're saying/proposing -- the
>> problem is that in Emacs the buffer-local vs. global marks
>> distinction is fundamental and very clear cut, unlike Vim, where
>> there is an explicitely defined set of jump commands, no matter
>> where they take you (see :h jump-motions), and jumps are independent
>> of marks. I don't see how you want to reconcile the two.
> I'm confused ...
> Vim's jump list is a list of positions. Emacs' mark rings are also
> lists of positions. The ordinary mark ring lists positions in the
> current buffer, while the global mark ring lists positions in all
> buffers.

Vim's jump list and Emacs' mark rings are quite different (see below).

> Every time a command calls `push-mark', it records the present
> position in these lists. It is customary for larger movement commands
> to record the position before moving point. Both Emacs' standard
> commands and those defined by Viper heed this convention.

That's a rather over-simplifying description (see below).

> The present implementation of C-o uses the ordinary mark ring and
> corresponds to Emacs' C-u C-<SPC>. A global implementation could use
> the global mark ring, corresponding to C-x C-<SPC>.

AFAICT it couldn't (see below).

> Where is the conflict/difference?

More information about the implementations-list mailing list