ネットで少し検索した後、マップできないようです CtrlSpace 何でも/たくさん。今日それを行う方法はありますか、私が見つけたものは通常2歳でした。
私は同じ問題に遭遇しました、短い答えはあなたができるはい、そしてGUIバージョンだけではありません。これをあなたに追加.vimrc
で十分です:
inoremap <C-Space> <C-x><C-o>
inoremap <C-@> <C-Space>
問題は、Terminal.appが<C-Space>
を正しく解釈せず、Vimが組み込みのマッピング(<C-@>
)である:help CTRL-@
として解釈することです。
多分あなたはあなたの.vimrcで次のようなもので行くことができます:
if !has("gui_running")
inoremap <C-@> <C-x><C-o>
endif
これは機能しているようですが、私はそのような組み込みをオーバーライドするという考えは好きではありません。
代わりに<Leader>
(:help leader
)を試す必要があります。これにより、独自のカスタムマッピングを定義する大きな可能性が得られ、(選択したmapleader
に応じて)OS /に干渉しなくなりますアプリ固有のショートカット/制限事項により、移植性が向上します。
これで私の.vimrcに:
let mapleader=","
inoremap <leader>, <C-x><C-o>
,,
を押してメソッド名を完成させます。
Nitpickerはpabloxソリューションを壊しました。ソリューションの要点は、再マッピングについてだけでした。したがって、再マッピングを無効にすると機能しません。
本当にnoremap
を投入したい場合は、次のようになります。
inoremap <expr><C-space> neocomplete#start_manual_complete()
imap <C-@> <C-Space>
何が動作するかnot機能:inoremap <C-@> <C-Space>
'<C-Space>
パーツ自体は再マッピングされません。
次のコードを~/.vimrc
に追加します。
" 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 <C-@> <C-Space>
:inoremap <c-space> <c-x><c-o>
?omnifunc
は設定されていますか?WindowsとLinuxの両方に対応するために、これを~/.vimrc
if has("unix")
inoremap <C-@> <c-x><c-o>
elseif has("win32")
inoremap <C-Space> <c-x><c-o>
endif
Mac OSのすべてのモードでこのマッピングのセットを使用した方が良い結果が得られました。 WindowsまたはLinuxをテストしていません。
例外の答えがターミナルモードでどのように機能するはずなのか分かりません。
inoremap <C-space> <ESC>
vnoremap <C-space> <ESC>
cnoremap <C-space> <C-c>
" When in terminal, <C-Space> gets interpreted as <C-@>
imap <C-@> <C-space>
vmap <C-@> <C-space>
cmap <C-@> <C-space>