在Vim脚本中查找测试名称
我已经写了一个简单的脚本,但我正在寻找一个更好的实现 这是我的理想情景。我坐在一个测试文件中,其中包含许多类似以下的测试:在Vim脚本中查找测试名称,vim,Vim,我已经写了一个简单的脚本,但我正在寻找一个更好的实现 这是我的理想情景。我坐在一个测试文件中,其中包含许多类似以下的测试: def test_cleans_number number = PhoneNumber.new("(123) 456-7890").number assert_equal "1234567890", number end def test_cleans_a_different_number number = PhoneNumber.ne
def test_cleans_number
number = PhoneNumber.new("(123) 456-7890").number
assert_equal "1234567890", number
end
def test_cleans_a_different_number
number = PhoneNumber.new("(987) 654-3210").number
assert_equal "9876543210", number
end
def test_cleans_number_with_dots
number = PhoneNumber.new("456.123.7890").number
assert_equal "4561237890", number
end
我已经编写了这个vim脚本,它允许我将光标放在测试的定义行上,它将运行该测试,并且只运行该测试:
function! RunNearestTest()
let line = getline('.')
let test_name = substitute(line, 'def ', "", "g")
exec ":!ruby " . @% . " -n " . test_name
endfunction
" run test runner
map <leader>T :call RunNearestTest()<cr>
函数!runnearestest()
let line=getline('.'))
让test_name=substitute(行'def','',“g”)
exec:“!ruby”@%。“-n”。测试名称
端功能
“运行测试运行程序”
映射T:调用RunNearestTest()
如果从脚本中看不明显,我需要测试名称来运行该测试。在第一个示例中,测试名称是test\u cleans\u number
正如我所说,这很好,但我想做的是在测试中的任何一行,它会知道跳转到前面的def
,获取test\u name
,然后运行执行。我想searchpair()
将是我的目标,但遗憾的是我找不到足够的文档
我很乐意在此提供您可能需要的任何文件或附加内容,谢谢!函数返回匹配行的编号:
function! RunNearestTest()
let line_text = getline(search('def ', 'bcW'))
let test_name = substitute(line_text, 'def ', "", "g")
exec ":!ruby " . @% . " -n " . test_name
endfunction
请参见:help search()
函数返回匹配行的编号:
function! RunNearestTest()
let line_text = getline(search('def ', 'bcW'))
let test_name = substitute(line_text, 'def ', "", "g")
exec ":!ruby " . @% . " -n " . test_name
endfunction
请参见:help search()
函数返回匹配行的编号:
function! RunNearestTest()
let line_text = getline(search('def ', 'bcW'))
let test_name = substitute(line_text, 'def ', "", "g")
exec ":!ruby " . @% . " -n " . test_name
endfunction
请参见:help search()
函数返回匹配行的编号:
function! RunNearestTest()
let line_text = getline(search('def ', 'bcW'))
let test_name = substitute(line_text, 'def ', "", "g")
exec ":!ruby " . @% . " -n " . test_name
endfunction
请参阅
:帮助搜索()
啊哈!你只是缺少了我的一个要求,在我得到由search
生成的行之后,我需要在它上面运行letgetline
,以获得文本。谢谢!哦!我出于某种原因忘记了那部分。啊哈!在我得到由search ,我需要在上面运行letgetline
来获取文本。谢谢!哎哟!我不知什么原因忘记了那部分。啊哈!你只是缺少了我的一个要求,在我获取了由search
生成的行之后,我需要在上面运行letgetline
来获取文本。谢谢你!哎哟!我忘记了那部分是为了这么久me reason.Ah-ha!你只是错过了我的一个要求,在我得到由search
生成的行之后,我需要在它上面运行letgetline
,以获得文本。谢谢!哎呀!我出于某种原因忘记了那部分。侧栏:[m
/]m
将移动到上一个/下一个方法定义侧栏:[m
/]m
将移动到上一个/下一个方法定义侧栏:[m
/]m
将移动到上一个/下一个方法定义侧栏:[m
/]m
将移动到上一个/下一个方法定义