3 votes

Dans vimrc, comment puis-je enchaîner plusieurs instructions dans une commande Leader ?

Dans mon .vimrc j'ai :

map <Leader>c :GitGutterToggle<CR>
map <Leader>n :set invnumber<CR>

Existe-t-il un moyen de combiner les deux en une seule entrée Leader ?

Par exemple :

map <Leader>c :GitGutterToggle && :set invnumber<CR>

J'ai essayé ce qui précède, et ses variantes, sans succès.

Merci.

5voto

muru Points 180007

Vim utilise | à la chaîne des ex-commandes. De :h cmdline-lines :

                                                        :bar :\bar
'|' can be used to separate commands, so you can give multiple commands in one
line.  If you want to use '|' in an argument, precede it with '\'.

These commands see the '|' as their argument, and can therefore not be
followed by another Vim command:

Elle est suivie d'une liste de commandes, qui n'est pas inclure :map ou ses variantes. Vous devrez donc utiliser \| . Plus loin dans l'aide, on trouve une note sur :map ce qui conduit à :h map_bar :

                                                        map_bar map-bar
Since the '|' character is used to separate a map command from the next
command, you will have to do something special to include  a '|' in {rhs}.
There are three methods:
   use       works when                    example      
   <Bar>     '<' is not in 'cpoptions'     :map _l :!ls <Bar> more^M
   \|        'b' is not in 'cpoptions'     :map _l :!ls \| more^M
   ^V|       always, in Vim and Vi         :map _l :!ls ^V| more^M

(here ^V stands for CTRL-V; to get one CTRL-V you have to type it twice; you
cannot use the <> notation "<C-V>" here).

All three work when you use the default setting for 'cpoptions'.

Donc, en supposant que vous n'avez pas modifié cpoptions :

map <Leader>c :GitGutterToggle <bar> :set invnumber<CR>

Notez que vous devez utiliser noremap (et le plus spécifique nnoremap , vnoremap etc.) pour que vous ne soyez pas surpris par vos mappings.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X