Ich beantworte diese Frage vier Jahre später, weil die Antwort eine Teillösung ist, die die ursprüngliche Frage nicht vollständig anspricht.
Ich habe genau den gleichen Wunsch wie Olibre und wollte eine Komplettlösung finden. Ich komme aus einer anderen Perspektive darauf - ich bin es gewohnt, Emacs Zeilen in Bash zu bearbeiten - aber das Problem ist das gleiche. Ich möchte das (nur) in den Vim-Einfügemodus übertragen.
Im Folgenden werden alle Schlüsselbindungsanfragen in der ursprünglichen Frage von olibre sowie einige Extras behandelt:
" Mimic Emacs Line Editing in Insert Mode Only
inoremap <C-A> <Home>
inoremap <C-B> <Left>
inoremap <C-E> <End>
inoremap <C-F> <Right>
" â is <Alt-B>
inoremap â <C-Left>
" æ is <Alt-F>
inoremap æ <C-Right>
inoremap <C-K> <Esc>lDa
inoremap <C-U> <Esc>d0xi
inoremap <C-Y> <Esc>Pa
inoremap <C-X><C-S> <Esc>:w<CR>a
Die einzigen Bindungen, die ich an dieser Stelle anscheinend nicht zur Arbeit bringen kann, sind <Alt-B>
und <Alt-F>
, die ganze Wörter überspringen würden. Immer , wenn ich binden <Esc>
, <Alt>
oder <Meta>
Kombinationen, gVim (v7.4 unter Windows) gibt akzentuierte Zeichen. Bitte zögern Sie nicht, diese Antwort zu bearbeiten, wenn Sie eine Lösung für dieses Problem haben. Ich habe Alt-Kombinationen zum Laufen gebracht, basierend auf dem Vorschlag eines anderen Beitrags , nur die Sonderzeichen zu verwenden. Ich habe sie oben eingefügt.
Bearbeiten
- (Bearbeitung erfolgt nicht durch Original-Antwortplakat) -
Unter Neovim und Windows 10 habe ich Folgendes verwendet. Unter anderen Betriebssystemen müssen Sie möglicherweise "A" in "M" ändern, da "alt" an anderer Stelle möglicherweise "meta" ist. Ich habe nicht genug damit gespielt.
inoremap <A-x> <Esc>:
inoremap <A-f> <Esc>lwi
inoremap <A-b> <Esc>bi
inoremap <A-S-f> <Esc>lWi
inoremap <A-S-b> <Esc>Bi
<Esc>pa
wäre besser für<C-Y>
<C-K>
es nicht funktionieren, wenn sich der Cursor ganz links befindet - er sollte die gesamte Zeile löschen, aberEsc>lDa
das erste Zeichen wird nicht gelöscht.Sie können jeden Befehl im Einfügemodus mit dem
:imap
Befehl einem beliebigen Befehl zuordnen oder die Eingabe mithilfe von speichern:im
. Für Ihre erste Zuordnung können Sie Folgendes eingeben (im normalen Modus)::im <C-A> <esc>^i
Das geht in den normalen Modus (mit Escape), drückt
^
für Sie und kehrt in den Einfügemodus zurück. Weitere Informationen finden Sie in der Hilfe::help :imap
oder kürzer::h :im
Beachten Sie, dass Sie möglicherweise vorhandene Tastenzuordnungen überschreiben. Fügen Sie die Befehle in Ihre
.vimrc
Konfigurationsdatei ein, wenn Sie möchten, dass sie für jedes Dokument vorhanden sind.quelle
:im <c-a>
. Wenn "Keine Zuordnung gefunden" angezeigt wird, überschreiben Sie nichts. Ich denke nicht, dass es viel robuster wird als das ...vim
Befehle ... Bitte wissen Sie, wo ich eine Liste der:im
letzten Argumente finden kann? FYI, ich bin auch mit den folgenden verwendetenbash
Befehle:M-backspace
,M-F
,M-B
,M-D
... Es wäre schön, wenn jemand bereits , dass und teilt seine Arbeit getan hat, ist es nicht? (so etwas wieevil
) Daher könnte ich seine:im
Schlüsselzuordnung wiederverwenden, ohne es selbst zu tun (fehleranfällig). Verstehst du, was ich meine?:im
. Um einen Kommentar auf höherer Ebene abzugeben: Wenn Sie Vim auf mehreren Plattformen / Computern verwenden möchten, ohne immer Ihre eigenen Plugins, Spezialmodi oder Vimrc-Dateien laden zu müssen, ist es meiner Meinung nach am besten, zu lernen / zu verwenden die Standard-Vim-Befehle so weit wie möglich. Ich habe selbst mehrere Schlüsselzuordnungen vorgenommen, versuche aber immer, die Standard-Vim-Alternative zu finden. Und es kann ziemlich schnell gehen. Eine Sache, die ich getan habe, ist die Zuordnung<esc>
zu;j
, wodurch Ihre Nr. 1-Zuordnung so einfach wie;jI
und Nr. 2 wird;jA
.Keine vollständige Antwort, aber kennen Sie den sogenannten " einfachen Modus " (
vim -y
) von Vim ? Es befindet sich standardmäßig immer im Bearbeitungsmodus und macht eine Menge von dem, was Sie wollen, und Sie müssen nichts installieren oder anpassen. Es macht STRG-A, C, V, X, Y usw. Aus der Schlüsselliste :Eine viel leistungsfähigere Version davon ist Cream , die viel mehr Tasten neu zuordnet und die grundlegenden Befehle anderen Editoren ähnelt, mit denen Sie möglicherweise vertraut sind.
Es gibt auch das Plugin Vimacs , das alle gängigen Emacs- Tastenzuordnungen ermöglicht. Es ist einfach zu installieren und kann tun, was Sie wollen (ich habe es noch nie versucht).
quelle