Hi List,
I have been recently using the conceal feature a lot. It's very fun. However 
it's still missing in some places for what I want (and looking at the list, 
other people, too), so I thought I'd chime in.

I think the following conversation is the current status of the issue:

On Sunday, August 21, 2011 5:53:27 PM UTC+2, Bram Moolenaar wrote:
> Marcin Szamotulski wrote:
> 
> > With the conceal feature enabled it happens that a long line that fills
> > several screen lines (without conceal) is break at exactly the same places
> > when conceal is not enabled. For example look at the following line with the
> > following settings: set ft=tex, set cole=2
> > \(\bigcap_{i\in I}\;A\otimes I_i\ni\sum_{l=1}^n a_l\otimes b_l & 
> > \;\Leftrightarrow\;\forall_{i\in I}\ \sum_{l=1}^n a_l\otimes b_l\in 
> > A\otimes I_i\notag\)
> > 
> > It would be nice if vim could fill whole the lines, i.e. break them in
> > more accurate places when conceal is enabled.
> 
> This is intentional.  Without this cursor movements would be messed up,
> as the screen line depends on how text is concealed, which requires
> syntax parsing, which is slow.
> 
> There still is the bug that cursor positioning with the mouse doesn't
> work properly.  To fix that requires something similar as what is
> required for this feature.  Perhaps someone can make that work, it's not
> going to be easy.

(this is from the thread "idea for wrapping lines and conceal feature")

So: we have the conceal feature, we haven't touched how movements work.

For what I want, I would like conceal to work in the ways I describe below. I 
am not sure what the full implications of this are, so I thought I'd use this 
place as a voicing board.

(1) wrapping happens after concealment. Reason is that this picture looks sort 
of stupid: http://i.imgur.com/6iyCu.png

For me, Vim is all about ease of use and readability.
(2) movement and editing happens after concealment. This is a tough one.

For a simple example, I have a syntax for overstriking. This means that A^HA 
gets displayed just as a bold "A" char.

If I then have this file:
1. ABC
2. A^HABC

and my cursor is on line 1, char 3, then pressing j should move me to C on line 
2.

If my cursor is on line 2, over the "A" (remember, line 2 gets displayed as 
"ABC"), then pressing X will delete the A^HA and leave me with "BC" as line 2.

If my cursor is on line 1, char 1 ("A"), and I press ^V to go into visual block 
mode, then lj, then I would like the visual region to select AB on line 1 and 
A^HAB on line 2. This means that normal visual block selections are not 
rectangular anymore (although they aren't now, either, really, if you select on 
lines of varying lengths)


I am not sure whether (2) would break any useful behaviour? If so, maybe it's a 
good idea to have a separate set of commands that happen "after concealment"? 
E.g. <visual-block-mode-after-concealment>, <j-after-concealment>, 
<k-after-concealment>, etc.


Thanks for your opinions.

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui