Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 试图在.vimrc中设置autocmd以将密钥映射到命令,但遇到问题_Python_Vim - Fatal编程技术网

Python 试图在.vimrc中设置autocmd以将密钥映射到命令,但遇到问题

Python 试图在.vimrc中设置autocmd以将密钥映射到命令,但遇到问题,python,vim,Python,Vim,我试图在Ubuntu18.04中配置我的vim编辑器,以便在编辑器中自动运行python文件。问题似乎是,在我的Dell Inspiron上,功能按键被GUI捕获。例如,按F9键将显示所有打开的窗口 我也尝试过设置a-F9,但没有运气。命令本身手动工作,但当我按下映射到命令的键时,vim不会运行它 下面是我尝试过的.vimrc中的一个行示例 autocmd文件类型python nnoremap:exec'!清楚的python的shellescape(@%,1) 而且 autocmd文件类型pyt

我试图在Ubuntu18.04中配置我的vim编辑器,以便在编辑器中自动运行python文件。问题似乎是,在我的Dell Inspiron上,功能按键被GUI捕获。例如,按F9键将显示所有打开的窗口

我也尝试过设置a-F9,但没有运气。命令本身手动工作,但当我按下映射到命令的键时,vim不会运行它

下面是我尝试过的.vimrc中的一个行示例

autocmd文件类型python nnoremap:exec'!清楚的python的shellescape(@%,1)

而且

autocmd文件类型python nnoremap:exec'!清楚的python的shellescape(@%,1)

我也试过:
imap:w:!清楚的python%

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

谢谢你的帮助


谢谢

您可以按
,然后按键(例如
),将文字键插入缓冲区(此处:您的
.vimrc
)。如果该功能键正确到达Vim,则应插入文本
字符串(4个字符)。如果不是这样,您首先需要消除周围系统的干扰。可能是一些膨胀软件(在Linux上不太可能)捕获了功能键(然后卸载),但我也看到笔记本电脑在功能键上配置了特殊功能(也包括音量/亮度上/下),实际的功能键仅通过与特殊Fn键的组合发送;通常可以在BIOS中进行切换。您可以测试其他应用程序(例如,浏览器应通过重新加载对
作出反应,并通过全屏对
作出反应),以确定这是否确实是一个全球性问题。在Linux上,您还可以使用
xev
工具来实现这一点

您的密钥映射本身很好。我建议将任何设置、映射和特定于文件类型的autocmd放入
~/.vim/ftplugin/{filetype}which.vim
(或
{filetype}/which.vim
(对于Python映射,我会选择
Python\u mappings.vim
);cp.
:help ftplugin name
)而不是定义大量的
:autocmd filetype{filetype}
;它更干净,结垢更好;但要求您在上有
:文件类型插件。覆盖默认文件类型插件中内容的设置应该改为进入
~/.vim/after/ftplugin/{filetype}.vim


功能键本身也应该在终端中工作,与诸如Shift和Alt等修改键的组合通常不起作用。因此,另一种方法(为了实现最大的可移植性,例如,当您使用SSH时)是完全跳过功能键,然后进行
映射。

您可以通过按
,然后按键(例如
)将文本键插入缓冲区(这里是:您的
.vimrc
)。如果该功能键正确到达Vim,则应插入文本
字符串(4个字符)。如果不是这样,您首先需要消除周围系统的干扰。可能是一些膨胀软件(在Linux上不太可能)捕获了功能键(然后卸载),但我也看到笔记本电脑在功能键上配置了特殊功能(也包括音量/亮度上/下),实际的功能键仅通过与特殊Fn键的组合发送;通常可以在BIOS中进行切换。您可以测试其他应用程序(例如,浏览器应通过重新加载对
作出反应,并通过全屏对
作出反应),以确定这是否确实是一个全球性问题。在Linux上,您还可以使用
xev
工具来实现这一点

您的密钥映射本身很好。我建议将任何设置、映射和特定于文件类型的autocmd放入
~/.vim/ftplugin/{filetype}which.vim
(或
{filetype}/which.vim
(对于Python映射,我会选择
Python\u mappings.vim
);cp.
:help ftplugin name
)而不是定义大量的
:autocmd filetype{filetype}
;它更干净,结垢更好;但要求您在
上有
:文件类型插件。覆盖默认文件类型插件中内容的设置应该改为进入
~/.vim/after/ftplugin/{filetype}.vim

功能键本身也应该在终端中工作,与诸如Shift和Alt等修改键的组合通常不起作用。因此,另一种方法(为了实现最大的可移植性,例如,当您使用SSH时)是完全跳过功能键,然后使用
映射