[描述]经常有这种需求: 在Linux命令行中,希望不脱离Vim运行试验下当前编辑的脚本文件(如有时候print一个东西)
单个语言如Python的我知道,<leader>r :!python %<cr>
<leader>r :!python %<cr>
我知道在Vim能调用shell,但是多个语言统一映射到一个快捷键(初步拟定为<Leader>r)如何做?
基本思路是使用autocmd根据当前缓冲的文件的类型或者语法的类型添加不同的map命令。
autocmd
map
例如,如果只需要编译/执行当前文件,则可以在你的vimrc文件中为每个不同的文件类型添加如下内容:
vimrc
autocmd FileType sometype nnoremap <buffer> <F5> :w<CR>:!somecompiler % <CR>
对 python 来说,就是
autocmd FileType python nnoremap <buffer> <F5> :w<CR>:!python % <CR>
其中<F5>可以改成其他你想映射的键位,如<leader>r。
<F5>
<leader>r
如果你需要跨平台,可以参考这里。
如果你需要更高级的功能,如多文件编译、运行文件中的部分代码等,就需要自己写 VIM 脚本了。python 的可以参考这里。
在vim的fplugin目录中创建文件 [语言名].vim然后把对应语言的配置写到这个文件中,vim就会根据文件后缀自动加载这些配置
[语言名].vim
给文件加执行权限,文件头加上#!/bin/bash #!/usr/bin/python #!/usr/bin/ruby 每次要运行的时候 :./ 这个文件就好了。
推荐你使用vim-quickrun
map <leader>r :QuickRun<CR>
基本思路是使用
autocmd
根据当前缓冲的文件的类型或者语法的类型添加不同的map
命令。例如,如果只需要编译/执行当前文件,则可以在你的
vimrc
文件中为每个不同的文件类型添加如下内容:对 python 来说,就是
其中
<F5>
可以改成其他你想映射的键位,如<leader>r
。如果你需要跨平台,可以参考这里。
如果你需要更高级的功能,如多文件编译、运行文件中的部分代码等,就需要自己写 VIM 脚本了。python 的可以参考这里。
在vim的fplugin目录中创建文件
[语言名].vim
然后把对应语言的配置写到这个文件中,vim就会根据文件后缀自动加载这些配置
给文件加执行权限,文件头加上
#!/bin/bash #!/usr/bin/python #!/usr/bin/ruby
每次要运行的时候 :./ 这个文件就好了。
推荐你使用
vim-quickrun