1
目前我的vimrc具有以下主要映射:VIM函数外部调用
map <leader>m :w\|!clear && rspec --drb %<cr>
map <leader>k :w\|!clear && rspec --drb %:<C-r>=line('.')<CR><cr>
map <leader>c :w\|:!clear && cucumber --drb -r ./features %<cr>
map <leader>x :w\|!clear && cucumber --drb -r ./features %:<C-r>=line('.')<CR><cr>
不过,我想将它们整合成具有行VS文件相同的键盘映射(二)功能,我已经试过以下但Vim抱怨缺少括号:
function! TestCurrentLine()
let spec = '*_spec\.rb'
if !(expand("%") =~ spec)
:!clear && cucumber --drb -r ./features %:<C-r>=line('.')<CR>
else
:!clear && rspec --drb %:<C-r>=line('.')<CR>
end
endfunction
function! TestCurrentFile()
let spec = '*_spec\.rb'
if !(expand("%") =~ spec)
:!clear && cucumber --drb -r ./features %
else
:!clear && rspec --drb %
end
endfunction
map <leader>m :w\|call TestCurrentFile<cr>
map <leader>k :w\|call TestCurrentLine<cr>
任何想法?
+1对'nnoremap'。我还建议如果'filetype'没有正确设置为'cucubmer'或'rspec'来使用像这样的自动命令'autocmd BufNewFile,BufRead * _spec.rb set filetype = cucumber'。通过'set filetype?'检查文件类型。正确设置文件类型不仅仅是语法高亮。它也会让你访问':make'。如果需要,你可以直接通过':compiler cucumber'或者':'编译器rspec'来设置编译器。我建议学习使用'quickfix'列表来遍历':make'结果。 –
我已经完全重新编写了命令,但是我一定会看看文件类型特定的加载,谢谢。 – HaaR