ネットで少し検索した後、何にもマップできないようですCtrlSpace。今日それを行う方法はありますか、私が見つけたのは通常2歳でした。
7 に答える
私は同じ問題に遭遇しました。短い答えは、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>
,,
メソッド名を完成させるためにヒットしました。
ニッチピッカーは pablox ソリューションを壊しました。ソリューションの核心は、再マッピングに関するものでした。そのため、再マッピングを無効にすると機能しません。
本当に をスローしたい場合はnoremap
、次のようになります。
inoremap <expr><C-space> neocomplete#start_manual_complete()
imap <C-@> <C-Space>
うまくいかないinoremap <C-@> <C-Space>
こと:<C-Space>
パーツ自体が再マッピングされないためです。
- 試しました
:inoremap <c-space> <c-x><c-o>
か? - CtrlX CtrlO挿入モードで入力すると何かしますか?
omnifunc
設定されていますか?
次のコードを に追加します~/.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>