Po przeszukaniu trochę w sieci wydaje się, że nie mogę mapowaćCtrlSpacedo wszystkiego/dużo. Czy jest jakiś sposób na zrobienie tego dzisiaj, co znalazłem było zwykle 2 lata.
Ich bin auf das gleiche Problem gestoßen, die kurze Antwort lautet: Ja, du kannst, und nicht nur in der GUI-Version. Das Hinzufügen zu Ihnen .vimrc
ist genug:
inoremap <C-Space> <C-x><C-o>
inoremap <[email protected]> <C-Space>
Das Problem scheint zu sein, dass Terminal.app <C-Space>
nicht korrekt interpretiert und von Vim als <[email protected]>
verstanden wird, bei dem es sich um ein integriertes Mapping (:help [email protected]
) handelt.
Vielleicht könnten Sie in Ihrem .vimrc so etwas wie das Folgende machen:
if !has("gui_running")
inoremap <[email protected]> <C-x><C-o>
endif
das scheint hier zu funktionieren, aber ich mag es nicht, solche eingebauten Inserts zu überschreiben.
Stattdessen sollten Sie es mit <Leader>
(:help leader
) versuchen. Es gibt Ihnen riesige Möglichkeiten, Ihre eigenen benutzerdefinierten Zuordnungen zu definieren, und stört (abhängig von der von Ihnen gewählten mapleader
) OS/App-spezifische Abkürzungen/Einschränkungen nicht.
Mit diesem in meiner .vimrc:
let mapleader=","
inoremap <leader>, <C-x><C-o>
Ich drückte einfach ,,
, um die Methodennamen zu vervollständigen.
Der Nitpicker brach die Pablox-Lösung. Der Kern der Lösung war nur eine Neuzuordnung. Wenn Sie die Neuzuordnung deaktivieren, kann dies nicht funktionieren.
Wenn Sie wirklich eine noremap
einfügen wollen, sieht es so aus:
inoremap <expr><C-space> neocomplete#start_manual_complete()
imap <[email protected]> <C-Space>
Was wird nicht funktionieren: inoremap <[email protected]> <C-Space>
'bewirkt, dass der <C-Space>
-Teil nicht selbst neu zugeordnet wird.
Fügen Sie den folgenden Code zu ~/.vimrc
hinzu:
" Ctrl-Space for completions. Heck Yeah!
inoremap <expr> <C-Space> pumvisible() \|\| &omnifunc == '' ?
\ "\<lt>C-n>" :
\ "\<lt>C-x>\<lt>C-o><c-r>=pumvisible() ?" .
\ "\"\\<lt>c-n>\\<lt>c-p>\\<lt>c-n>\" :" .
\ "\" \\<lt>bs>\\<lt>C-n>\"\<CR>"
imap <[email protected]> <C-Space>
Quelle: https://coderwall.com/p/cl6cpq
:inoremap <c-space> <c-x><c-o>
?omnifunc
?Um sowohl Windows als auch Linux unterzubringen, habe ich dies auf ~/.vimrc
angewendet.
if has("unix")
inoremap <[email protected]> <c-x><c-o>
elseif has("win32")
inoremap <C-Space> <c-x><c-o>
endif
Ich hatte mit diesem Satz von Zuordnungen in allen Modi unter Mac OS bessere Ergebnisse. Habe kein Windows oder Linux getestet.
Ich verstehe nicht, wie die ausgenommene Antwort im Terminalmodus funktionieren soll.
inoremap <C-space> <ESC>
vnoremap <C-space> <ESC>
cnoremap <C-space> <C-c>
" When in terminal, <C-Space> gets interpreted as <[email protected]>
imap <[email protected]> <C-space>
vmap <[email protected]> <C-space>
cmap <[email protected]> <C-space>