Ответ 3
Если вы хотите сопоставить его, скажем, с Ctrl-E, это будет примерно так:
inoremap <C-E> <C-N>
Проблема с Ctrl - Space заключается в том, что большинство терминалов будут рассматривать это как пространство. Предполагаю, что вы используете терминальную программу внутри X; если вы используете что-то другое, вам нужно будет предоставить соответствующие замены самостоятельно.
Bash readline обычно имеет Ctrl - V, отображаемый для "обработки следующего ключа как литерала". Таким образом, нажав Ctrl - V, тогда Home в командной строке bash будет вставлять ^[[H
или что-то подобное в командной строке, а не перейти к началу строки. Попробуйте нажать Ctrl - V, затем Ctrl - Space. Вероятно, вы просто увидите пробел.
В этом случае вам придется обманывать xmodmap или писать собственные /usr/share/X 11/xkb/* файлы, чтобы сообщить X, чтобы вывести что-то другое при нажатии Ctrl - Space. Такие программы, как Firefox, не волнуют; они обнаруживают, какой базовый ключ нажат, и выясните, какие модификаторы нажаты. Но большинство программ на основе терминалов просто видят Ctrl - Space как пространство, если вы не укажете X для обработки Space и Ctrl - Space по-разному.
Я сомневаюсь, что вы можете сделать это изменение только с помощью xmodmap; вам, вероятно, понадобится выполнить хакерство нижнего уровня /usr/share/X 11/xkb/*. Это сложно, и я даже не знаю, используете ли вы X в первую очередь, поэтому я просто оставлю его там.
Некоторые терминалы, такие как urxvt, позволяют указывать собственные привязки. Как и Firefox, они могут сказать, когда это Space и когда это Control-Space, даже если вы ничего не делаете для настройки X. Поэтому вы можете сказать urxvt вывести "\ 033I_TYPED_CONTROL_SPACE_DAMMIT", когда вы нажимаете Ctrl - Space. И тогда вы могли бы сказать vim, чтобы сопоставить это с <C-N>
.
EDIT: Я забыл, что Ctrl-Space используется для вывода \0
(я перепутал это где-то еще на моей клавиатуре). В этом случае вся сложность, описанная выше, не нужна. То, что я сказал, применимо к кому-то, кто хотел бы использовать более экзотическое отображение, например Ctrl -colon или Alt - Space.