我对Vim很新,但这是我一直想知道的事情。
假设您正在使用rspec.vim插件,并且您想要运行规范。您将RunCurrentSpecFile()函数映射到<Leader>s
。
因此,如果您对规范进行了更改,则需要5次击键才能重新运行它:
<Esc>:w<Leader>s
但是你什么时候想要运行规范而没有首先保存文件?那么为什么不映射<Leader>s
以便它保存文件然后运行规范。所以你节省了两次击键:
<Esc><Leader>s
我不是在.vimrc
询问这样做的机制,我相信这很简单。我在质疑为什么我从来没有看到任何人用这种方式配置Vim。我缺少一些缺点吗?
答案 0 :(得分:0)
在您的功能中添加exec "w"
RunCurrentSpecFile()
这是我的 RunResult 功能:
function! marslofunc#RunResult()
let mp = &makeprg
let ef = &errorformat
let exeFile = expand("%:t")
exec "w"
if "python" == &filetype
setlocal makeprg=python\ -u
elseif "perl" == &filetype
setlocal makeprg=perl
elseif "ruby" == &filetype
setlocal makeprg=ruby
elseif "autohotkey" == &filetype
setlocal makeprg=AutoHotkey
endif
set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
silent make %
copen
let &makeprg = mp
let &errorformat = ef
endfunction
可以查看详细信息here
答案 1 :(得分:0)
正如我对Vim的了解越来越多,我也想知道如何加快我的工作流程并获得与你相同的想法。我通过将此行添加到.vimrc来实现此行为:
let g:rspec_command = ":w | !clear && echo rspec {spec} && rspec {spec}"
如果您使用弹簧加速测试(我绝对推荐),请使用:
let g:rspec_command = ":w | !clear && echo bin/rspec {spec} && bin/rspec {spec}"