繁体   English   中英

试图在.vimrc 中设置一个自动命令到 map 一个命令的键,但是有问题

[英]Trying to set up an autocmd in .vimrc to map a key to a command, but having problems

我正在尝试在 Ubuntu 18.04 中配置我的 vim 编辑器,以在编辑器中自动运行 python 文件。 问题似乎是,在我的戴尔 Inspiron 上,GUI 正在捕获 function 按键。 例如,按 F9 会显示我所有打开的 windows。

我也尝试过设置 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>

它们似乎都不起作用。 按下该键不会运行该命令。

任何帮助表示赞赏。

谢谢

您可以通过按<CV>后跟键(例如<F9> )将文字键插入缓冲区(此处:您的.vimrc )。 如果 function 密钥正确到达 Vim,则应插入文字<F9>字符串(4 个字符)。 如果不是这种情况,您首先需要消除周围系统的干扰。 It may be some bloatware (less likely on Linux though) that captures the function keys (uninstall it then), but I've also seen notebooks being configured with special functions (also volume / brightness up / down) on the function keys, and实际的 function 键仅通过与特殊Fn键的组合发送; 通常可以在 BIOS 中切换。 您可以测试其他应用程序(例如,浏览器应通过重新加载对<F5>作出反应,对全屏对<F11>作出反应)以查看这是否确实是一个全局问题。 当您在 Linux 上时,您也可以使用xev工具。

您的键映射本身很好。 I would recommend putting any settings, mappings, and filetype-specific autocmds into ~/.vim/ftplugin/{filetype}_whatever.vim (or {filetype}/whatever.vim (for Python mappings, I'd choose python_mappings.vim ) ; cp. :help ftplugin-name ) 而不是定义很多:autocmd FileType {filetype} ; 它更干净,扩展性更好; 不过,要求你有:filetype plugin on 覆盖默认文件类型插件中的内容的设置应将 go 改为~/.vim/after/ftplugin/{filetype}.vim

Function 键本身也应该在终端中工作,与 Shift 和 Alt 等修饰键组合通常不能。 因此,另一种方法(以获得最大的可移植性,例如当您通过 SSH 工作时)将完全跳过 function 密钥和 go 用于<Leader>映射。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM