我有一大堆我需要在迁移文件,视图,区域设置文件等之间移动的变量名称。如何从正则表达式中拉出/打印匹配,并且只匹配正则表达式的匹配?
我不想重新键入所有这些,也不想复制,粘贴和修剪,因为我已经完成了太多工作。
我一直试图通过一个正则表达式来解决这些问题,但是每次我尝试这样做时,整行都会被打印出来,而不是我想以':'开头的变量名,并以'\ s结尾'如::姓名,电子邮件,:home_phone等。
我怎样才能得到这些只是提取出我想要的?
我一直在努力做到这一点与vim:
:%s/:.*\s/y
这里的输入文件:
这是我想获得:
:name
:email
:home_phone
:cell_phone
:other_phones
:last_position_candidate_id
:last_position_title
:last_position_company_id
:last_position_start_date
:last_position_salary
:last_position_medical_insurance
:last_position_christmas_bonus
:last_position_annual_bonus
:last_position_vehicle
:last_position_other_benefits
:conversational_english
:written_english
:vehicle
你使用的是不精确的术语:yanking意味着复制到一个寄存器(保持文本完好),但你显示的是尝试替换,这意味着实际上改变了缓冲区中的内容(切掉你不想要的东西)。两者实际上可以结合(但这是一个高级的水平)。这完全取决于你想要对文本做什么。 –
我想保留这个文本不动,但我想在新文件中重复使用大部分文本。我可以将我想要的部分抽出到VIM寄存器中,然后切换到新文件或复制文件并提取我想要重复使用的那部分文本。这是不准确的,因为我可以做到这一点。 Yanking更好,因为它涉及的步骤较少。 – ovatsug25
感谢您的澄清。除非你一直这样做,克隆和替代品更容易;你已经有了答案。当你想通过映射来自动化整个过程时,Yank只会更好,但它更复杂,因此不适合从内存中打字。 –