После поиска бит в сети кажется, что я не могу сопоставить Ctrl Space с чем-либо/alot. Есть ли способ сделать это сегодня, то, что я нашел, обычно было 2 года.
Как сопоставить ctrl x ctrl o ctrl space в терминале vim?
Ответ 1
Я столкнулся с той же проблемой, короткий ответ - да, вы можете, и не только в версии gui. Добавление этого на вас .vimrc
достаточно:
inoremap <C-Space> <C-x><C-o>
inoremap <[email protected]> <C-Space>
Ответ 2
Проблема заключается в том, что Terminal.app не правильно интерпретирует <C-Space>
, и Vim понимает его как <[email protected]>
, который является встроенным отображением (:help [email protected]
).
Возможно, в вашем .vimrc может быть что-то вроде следующего:
if !has("gui_running")
inoremap <[email protected]> <C-x><C-o>
endif
который, похоже, работает здесь, но мне не нравится идея переопределения встроенных модулей.
Вместо этого вы должны попробовать с <Leader>
(:help leader
), это дает вам огромные возможности для определения ваших собственных сопоставлений и (в зависимости от выбранного вами mapleader
) не будет мешать ярлыкам OS/app/ограничения и, следовательно, быть более портативными.
С этим в моем .vimrc:
let mapleader=","
inoremap <leader>, <C-x><C-o>
Я просто нажал ,,
, чтобы завершить имена методов.
Ответ 3
nitpicker нарушил решение pablox. Суть решения заключалась в переназначении. Поэтому, когда вы отключите переназначение, это не сработает.
Если вы действительно хотите вставить noremap
, это выглядит так:
inoremap <expr><C-space> neocomplete#start_manual_complete()
imap <[email protected]> <C-Space>
Что будет не работать: inoremap <[email protected]> <C-Space>
', потому что часть <C-Space>
не будет переназначена сама.
Ответ 4
- Вы пробовали
:inoremap <c-space> <c-x><c-o>
? - Выполняет ли Ctrl X Ctrl O что-либо при вводе в режиме вставки? Установлен ли
omnifunc
?
Ответ 5
Добавьте следующий код в ~/.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 <[email protected]> <C-Space>
Источник: https://coderwall.com/p/cl6cpq
Ответ 6
Чтобы разместить как Windows, так и Linux, я применил это к ~/.vimrc
if has("unix")
inoremap <[email protected]> <c-x><c-o>
elseif has("win32")
inoremap <C-Space> <c-x><c-o>
endif