我在rspec
运行vim
测试时经常使用的简单工作流程如下:
15: it "my example test" do
16: expect(1 == 1).to be true
17: end
要运行此测试,您可以执行以下操作:
!rspec %:15
这会将rspec
作为external command运行。 %
扩展为当前文件名,:15
告诉rspec
仅运行测试行15
,而不是文件中的所有测试。
这种技术在正常情况下工作正常。但是,如果您尝试在行80-89
上运行测试,则会发生奇怪的事情:
84: it "my other test" do
85: expect(4 > 3).to be false
86: end
!rspec %:84
这会运行命令rspec [filename]4
- 即:8
个字符消失! (并且您收到“找不到文件”错误。)
避免此问题的解决方法是在输入TAB
后按%
,这会立即将%
扩展为完整路径名。
然而,这种奇怪的vim
行为背后的原因是什么?它是一个错误还是一个功能?
答案 0 :(得分:0)
另一个人,related question让我找到答案。
通过在:help filename-modifiers
中运行vim
,您可以找到答案以及更多详细信息。以下是关键点的摘要:
文件名修饰符可在
"%"
,"#"
,"#n"
,"<cfile>"
,"<sfile>"
,"<afile>"
或{{1}之后使用}}
"<abuf>"
将路径转换为8.3短格式(目前仅在MS-Windows上)。将作为现有路径的路径行动。
:8
是唯一的数字文件名修饰符。如果您希望完全禁用此功能,则可以在没有8
功能的情况下编译vim
。