Ich habe ein paar Mappings wie folgt erstellt:
:nnoremap <buffer> <leader>xyzABC :call SomeFunc('ABC')<CR>
:nnoremap <buffer> <leader>xyzDE :call SomeFunc('DE')<CR>
:nnoremap <buffer> <leader>xyzFoo18 :call SomeFunc('Foo18')<CR>
:nnoremap <buffer> <leader>xyzBar22 :call SomeFunc('Bar22')<CR>
das funktioniert wie gewünscht.
Ich suche jetzt nach einer Möglichkeit, eine Kartenvorlage zu erstellen, mit der ich die offensichtlich redundanten Teile meiner Zuordnungen entfernen kann
:nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR>
damit ich einen beliebigen Wert als Parameter an übergeben kann SomeFunc
.
Gibt es eine solche Möglichkeit?
key-bindings
René Nyffenegger
quelle
quelle
input()
oder verwendengetchar()
. Es ist jedoch wahrscheinlich normaler, einen Befehl anstelle einer Zuordnung für etwas zu verwenden, das einen Parameter akzeptiert.Antworten:
Wie @ peter-rinckler sagte, ist es wahrscheinlich einfacher, dies mit einem Befehl zu tun:
Ermöglicht dies (im normalen Modus)
Ich mag das nicht wirklich,
input()
weil man solche Dinge nicht einfach wiederholen kann.quelle
Dank des Kommentars von Peter Rincker habe ich die Antwort gefunden:
quelle
nnoremap <silent> <leader>tn :exe "tabn" nr2char(getchar())<cr>
. Die Idee ist zu tippen<leader>tn2
, um zu Tab 2 zu navigieren.Vielleicht möchten Sie einen Blick auf SnipMate werfen , das darauf abzielt, vim TextMate-ähnliche Snippets zu geben. Es hat sich jedenfalls als sehr hilfreich für mich erwiesen.
quelle