Autocmd ignoriert die Zuordnung?

398
omnesia

Der Einfachheit halber habe ich UMSCHALT + TAB in meiner .vimrc-Datei "unindenting" zugeordnet:

nnoremap <S-Tab> << inoremap <S-Tab> <C-D> 

Dies funktioniert gut, wenn ich es selbst beim Editieren verwende. Daher wollte ich dieses Mapping auch für autocmd:

autocmd FileType html inoremap ;p <p><Enter><Tab>INDENTED<Enter><S-Tab></p> 

Das wird aber nicht funktionieren. Ich verwende jetzt <C-D>direkt:

autocmd FileType html inoremap ;p <p><Enter><Tab>INDENTED<Enter><C-D></p> 

Das funktioniert gut und ist noch kürzer, also kein Problem.


Dies ist daher eher eine Frage aus Neugier, warum autocmd mein Mapping nicht verwenden kann, obwohl es sich im richtigen Modus befindet.

1

1 Antwort auf die Frage

2
Heptite

In diesem Fall ist das autocmdfür das Problem nicht relevant.

Sie verwenden die "no" -Variante von Map-Befehlen, die Vim ausdrücklich anweist, keine anderen Zuordnungen auszulösen, wenn das erste Mapping ausgelöst wird. Entfernen Sie den "nore" Teil Ihres Kartenbefehls, um das zu tun, was Sie erwartet haben:

imap ;p <p><Enter><Tab>INDENTED<Enter><S-Tab></p> 

Sehen: :help nore

Danke für die Klarstellung. Ich hatte im Hinterkopf, dass "no" das Überschreiben der gleichen Zuordnung nur verbietet. Natürlich macht es viel mehr Sinn, als es tatsächlich ist. omnesia vor 6 Jahren 0