On Tue, 29 Mar 2011, Steve wrote:


Hi Christian,

Thank you for your answer.

Le 23-03-2011, à 17:57:53 +0100, Christian Brabandt a écrit :

On Wed, March 23, 2011 3:20 pm, Steve wrote:

In French, we do not write "word" or 'word', we write « word », with a non-breakable space after « and before ». Until now, I do:

<c-k><<<c-k>NSword<c-k>NS<c-k>>>

which is really not convenient. I'd like a function, say Guillemets(), which does that automatiquelly. I would then map it to a function key FN (or whatever else) and just call it in normal mode. Problem, I really don't have the necessary skills to do that.

Anybody could help?

Does those two mappings help you?

:imap <expr> " getline('.')[col('.')-2]=~'\S' ?  ' »' : '« '
:imap <expr> ' getline('.')[col('.')-2]=~'\S' ?  ' »' : '« '

In fact, both don't do anything. I replaced <expr> by <F10> or <Leader>gu, but nothing happens.

'<expr>' isn't something to be replaced.  See:

:help :map-<expr>

(Basically, without the '<expr>' in front, you'll get the mappings as literal commands, which is not what you want.)

These mappings are to the keys <"> and <'>. If you want them mapped to something else, change those single characters. But you probably don't want to do that. These are :*i*map commands (i = insert). So, they're active while in Insert mode. They change the meanings of the keys <"> and <'> to "smartly" insert guillemets.

E.g. typing: Hi, "this is in quotes," and "so is this".

You end up with: Hi, « this is in quotes, » and « so is this ».

Give it a try, but you'll probably want to set up some kind of toggle so that the mappings aren't active 100% of the time.

--
Best,
Ben

--
You received this message from the "vim_use" 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

Reply via email to