Попытка настроить autocmd в .vimrc для сопоставления ключа с командой, но возникли проблемы - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь настроить мой редактор vim в Ubuntu 18.04 для автоматического запуска файла python внутри редактора. Кажется, проблема в том, что на моем Dell Inspiron нажатия функциональных клавиш фиксируются графическим интерфейсом. Например, нажатие F9 вызывает отображение всех моих открытых окон.

Я также пытался настроить a-F9, но безуспешно. Сама команда работает вручную, но vim не запускает ее, когда я нажимаю клавишу, которая сопоставлена ​​с командой.

Вот пример строк в .vimrc, которые я пробовал ...

autocmd filetype python nnoremap <buffer> <F9> :exec '!clear; python' shellescape(@%, 1)<cr>

и ...

autocmd filetype python nnoremap <buffer> <a-F9> :exec '!clear; python' shellescape(@%, 1)<cr>

Я также пробовал это: imap <F5> <Esc>:w<CR>:!clear;python %<CR>

Кажется, ни один из них не работает. Нажатие клавиши не запускает команду.

Любая помощь приветствуется.

Спасибо

1 Ответ

2 голосов
/ 17 октября 2019

Вы можете вставить буквенный ключ в буфер (здесь: ваш .vimrc), нажав <C-V>, а затем клавишу (например, <F9>). Если эта функциональная клавиша правильно поступает в Vim, должна быть вставлена ​​литеральная строка <F9> (4 символа). Если это не так, сначала необходимо устранить помехи от окружающей системы. Это может быть какая-то раздувающая программа (хотя в Linux она менее вероятна), которая фиксирует функциональные клавиши (затем удалите ее), но я также видел, что ноутбуки были настроены со специальными функциями (также громкость / яркость вверх / вниз)на функциональные клавиши, а фактическая функциональная клавиша отправляется только через комбинацию со специальной клавишей Fn ;это обычно может быть переключено в BIOS. Вы можете протестировать другие приложения (например, браузер должен реагировать на <F5> с перезагрузкой и <F11> в полноэкранном режиме), чтобы увидеть, действительно ли это глобальная проблема. Поскольку вы работаете в Linux, вы также можете использовать для этого инструменты xev.

С вашими сопоставлениями клавиш все в порядке. Я бы порекомендовал помещать любые параметры, сопоставления и специфичные для типов файлов autocmds в ~/.vim/ftplugin/{filetype}_whatever.vim (или {filetype}/whatever.vim (для сопоставлений Python я бы выбрал python_mappings.vim); cp. :help ftplugin-name) вместо определения лотов :autocmd FileType {filetype};он чище и лучше масштабируется;требует, чтобы у вас был :filetype plugin on, хотя. Установки, которые переопределяют материал в стандартных плагинах типов файлов, должны вместо этого вводиться в ~/.vim/after/ftplugin/{filetype}.vim.

Функциональные клавиши сами по себе также должны работать в терминалах, в комбинации с клавишами-модификаторами, такими как Shift и Alt, часто нет. Следовательно, другой подход (для максимальной переносимости, например, когда вы работаете через SSH) будет состоять в том, чтобы вообще пропустить функциональные клавиши и перейти к <Leader> отображениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...