Я не большой поклонник Ctrl-n
, Я хотел бы иметь возможность использовать Ctrl-Space
. Какие-либо идеи, как я могу сделать это?
if has("gui_running")
" C-Space seems to work under gVim on both Linux and win32
inoremap <C-Space> <C-n>
else " no gui
if has("unix")
inoremap <Nul> <C-n>
else
" I have no idea of the name of Ctrl-Space elsewhere
endif
endif
Мне также нравится сопоставление Ctrl + Space.
" Remap code completion to Ctrl+Space {{{2
inoremap <Nul> <C-x><C-o>
В вашем случае вы хотите:
inoremap <Nul> <C-n>
Если вы хотите сопоставить его, скажем, с Ctrl-E, это будет примерно так:
inoremap <C-E> <C-N>
Проблема с Ctrl - Пробел заключается в том, что большинство терминалов просто увидит это как пространство. Я предполагаю, что вы используете какую-то терминальную программу внутри X; если вы используете что-то другое, вам придется самостоятельно предоставить соответствующие замены.
В строке чтения Bash обычно отображается Ctrl - V , чтобы «обрабатывать следующий ключ как буквальный». Поэтому нажатие Ctrl - V , затем Home в командной строке bash вставит ^ [[H
или что-то в этом роде в командной строке, вместо перехода к начало строки. Попробуйте нажать Ctrl - V , затем Ctrl - Пробел . Возможно, вы просто увидите пространство.
В этом случае вам придется обмануть xmodmap или написать свои собственные файлы / usr / share / X11 / xkb / *, чтобы указать X выводить что-то другое при нажатии Ctrl - ] Космос . Программам вроде Firefox все равно; они определяют, какая базовая клавиша нажата, и сами выясняют, какие модификаторы нажимаются.Но большинство программ на базе терминала будут видеть просто Ctrl - Пробел как пробел, если вы не укажете X, чтобы он обрабатывал пробел и Ctrl - Пробел по-другому.
Я сомневаюсь, что вы сможете внести это изменение только с помощью xmodmap; вам, вероятно, понадобится взломать / usr / share / X11 / xkb / * на нижнем уровне. Это сложно, и я даже не знаю, используете ли вы X в первую очередь, поэтому я просто оставлю это здесь.
Некоторые терминалы, такие как urxvt, позволяют указывать собственные сочетания клавиш. Как и Firefox, они могут определить, когда это пространство, а когда - Control-Space, даже без каких-либо специальных действий для настройки X. Таким образом, вы можете указать urxvt на вывод «\ 033I_TYPED_CONTROL_SPACE_DAMMIT» при нажатии Ctrl - Космос . А затем вы можете указать vim сопоставить , что с
.
РЕДАКТИРОВАТЬ: Я забыл, что Ctrl-пробел использовался для вывода \ 0
(я переназначил это где-то еще на моей клавиатуре). В этом случае вся сложность, которую я описал выше, не нужна. То, что я сказал, применимо к тем, кто хочет использовать более экзотическое сопоставление, например Ctrl -долгие или Alt - Пробел .