В настоящее время мой vimrc имеет следующие ключевые отображения:ВИМ функции внешнего вызов
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>
Однако я хочу, чтобы объединить их в (два) функции, которые имеют ту же раскладку для линии против файла, я попытался следующим но 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' или': compiler rspec', если вам нужно. Я рекомендую учиться использовать список 'quickfix' для перемещения по результатам': make'. –
Я уже полностью переписал команду, но я обязательно посмотрю на конкретную загрузку файла, спасибо. – HaaR