我确信这已经得到了解答,但对谷歌来说查询有点过于复杂.
简而言之,我试图从一些代码中删除许多弃用的方法.所以我正在浏览文件,当我看到一个我要删除的方法时,我将删除每一行,直到我看到一行以制表符开头,然后是字符串"def".
我在想VIM应该让我创建一个简单的宏来做到这一点,但诀窍是逃避我.
这是我要删除的东西.
def Method_to_Delete(self):
"""
@return Control ID :
@author
"""
results = {}
results['xx'] = "thingy"
results['yy'] = 'thingy2'
return results
def Method_to_Keep(self):
"""
This is a method that does something wonderful!!!
@return Control ID :
@author
"""
results = {}
results['xxx'] = "WhooHoo!"
results['yyy'] = 'yippee!!'
return results
Run Code Online (Sandbox Code Playgroud)
我希望将光标放在"def Method_to_Delete"的行上并做一些将删除但不包括"def Method_to_Keep"的内容
必须有比多个"dd"命令更好的方法.
gun*_*uns 14
Vim搜索实际上是文本对象!这意味着您可以简单地:
d/\s*def
Run Code Online (Sandbox Code Playgroud)
然后,只需.
根据需要重复该命令.
Pet*_*ker 12
使用:delete
带有范围的ex命令
:,/Keep/-1d
Run Code Online (Sandbox Code Playgroud)
说明
:.,/Keep/-1delete
.,/Keep/-1
是delete
命令行动的范围.
表示当前行..
可以假设和删除/Keep/
搜索匹配"Keep"的行/Keep/-1
搜索匹配的行然后减去一行:delete
可以缩短为 :d
有关更多帮助请参阅
:h :range
:h :d
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3464 次 |
最近记录: |