vim 与 python: 如何映射 :silent make |处理 vimrc 中的功能键
vim with python: how to map :silent make | copen to function key in vimrc
就是这样,我的 vimrc 中有我希望它能工作的是:
set makeprg=python\ %
nmap <F5> :silent make | copen
它不起作用,它回显 :silent make 并且不 运行 或报告脚本中的错误。但是如果我只输入 Vim
:silent make | copen
我得到了我想要的结果。
我在 windows vista
上使用 GVim 7.4
我想是因为map
命令不接受管道字符作为命令分隔符并将其作为输入,所以你可以用<bar>
替换它,比如:
:nmap <F5> :silent make <bar> copen<CR>
您正在执行您的 python 代码而不是 linting。如果您想要更重的方法,快速 google 会显示 pylint and Python - check syntax and run script. There is also synstastic.vim。
您的映射存在以下问题:
- 管道
|
未转义。请改用 <bar>
。
- 作为一般经验法则应该使用
*noremap
除非使用 <Plug>
映射
- 执行命令需要在末尾加上
<cr>
- 可选择使用
:autocmd
在 :make
之后执行 :cwindow
/:copen
。例如 autocmd QuickFixCmdPost * cwindow
- 可选择为此操作创建一个新命令:
command! -nargs=* Smake silent make <args>
。现在你可以 :Smake
而不是 :make
您的新映射:
nnoremap <F5> :silent make <bar> copen<cr>
如需更多帮助,请参阅:
:h :map
:h <bar>
:h :au
:h QuickFixCmdPost
:h :cwindow
:h :cope
:h :compiler
:h write-compiler-plugin
就是这样,我的 vimrc 中有我希望它能工作的是:
set makeprg=python\ %
nmap <F5> :silent make | copen
它不起作用,它回显 :silent make 并且不 运行 或报告脚本中的错误。但是如果我只输入 Vim
:silent make | copen
我得到了我想要的结果。
我在 windows vista
上使用 GVim 7.4我想是因为map
命令不接受管道字符作为命令分隔符并将其作为输入,所以你可以用<bar>
替换它,比如:
:nmap <F5> :silent make <bar> copen<CR>
您正在执行您的 python 代码而不是 linting。如果您想要更重的方法,快速 google 会显示 pylint and Python - check syntax and run script. There is also synstastic.vim。
您的映射存在以下问题:
- 管道
|
未转义。请改用<bar>
。 - 作为一般经验法则应该使用
*noremap
除非使用<Plug>
映射 - 执行命令需要在末尾加上
<cr>
- 可选择使用
:autocmd
在:make
之后执行:cwindow
/:copen
。例如autocmd QuickFixCmdPost * cwindow
- 可选择为此操作创建一个新命令:
command! -nargs=* Smake silent make <args>
。现在你可以:Smake
而不是:make
您的新映射:
nnoremap <F5> :silent make <bar> copen<cr>
如需更多帮助,请参阅:
:h :map
:h <bar>
:h :au
:h QuickFixCmdPost
:h :cwindow
:h :cope
:h :compiler
:h write-compiler-plugin