I finally decided to try out Vim, as I am getting increasingly frustrated by GUI editors. So far, I'm loving it, but I can't find any help for a issue I'm having...
I am trying to map the command :Pyrun to :!python % in Vim using cmap. The mapping shows up fine if I type :cmap. However, on typing :Pyrun, I get this error message:
Not an editor command: Pyrun.
Here is what I'm trying in .vimrc:
:autocmd FileType python :cmap Pyrun<cr> !python %<cr> :autocmd FileType python :cmap Intpyrun<cr> !python -i %<cr> What can I do to solve this problem?
You can run the shell commands from inside of Vim by just using :! before the command, : means you have to be in command mode. Just after being in command mode, the ! or bang operator will execute the command typed after it from the terminal(Linux/ macOS) or your default shell(Windows -> CMD/Powershell).
Ctrl+f will search within the file ctrl+shift+f will search in all the files in the folder tree.
I personally prefer another approach. First create a function receiving the command arguments and then create a command to call the function:
fun! DoSomething( arg ) "{{{ echo a:arg " Do something with your arg here endfunction "}}} command! -nargs=* Meh call DoSomething( '<args>' ) So it would be like
fun! Pyrun( arg ) "{{{ execute '!python ' . expand( '%' ) endfunction "}}} command! -nargs=* Pyrun call Pyrun( '<args>' ) But, there's a better way to do it in Vim. Use makeprg:
makeprg=python\ % Just type :make to run your current Python file. Use :copen to show error list.
I would try something like this in your .vimrc or your ftplugin/python_ft.vim
command Pyrun execute "!python %" command Intpyrun execute "!python -i %" Then :Pyrun and :Intpyrun should work
You could then map a function key to each
map <F5> :Pyrun<CR> map <F6> :Intpyrun<CR>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With