我有一个很大的python
文件如下:
@login_required
@user_passes_test(lambda u: u.is_superuser)
def foo():
//function body
@login_required
@user_passes_test(lambda u: u.is_superuser)
def foobar():
//function body
.
.
.
像这样,文件中有许多功能。我想评论包含模式login_required
或user_passes_test
的所有行。如何评论这些线?
我使用tComment插件。所以我可以使用gcc
键映射切换行注释。可以用吗?
项目中还有其他文件包含类似的功能。那么如何在项目的所有文件中注释这些行?
如果我需要取消注释这些行,我该怎么办?
:global/{pat}/{cmd}
命令将在每个匹配模式的行{cmd}
上运行命令{pat}
。您可以通过:normal
命令执行tComment命令。它们一起看起来像这样:
:g/@login_required/norm gcc
有关更多帮助请参阅:
:h :g
:h :norm
如果你想评论某些行,然后取消注释相同的行,我会在注释中使用某种“标记”来使工作更容易。
所以要评论,例如:
1,$s/^\(.*@login_require\)/#FOO \1/
然后取消注释:
1,$s/^#FOO //
您可以选择#FOO
,以免在其他地方用于其他目的。你甚至可以选择像##
这样简单的东西......真正的任何以#
开头的东西,你还没有使用过。
这不适用于VIM,但我认为更容易在所有项目中注释掉多个文件:
sed -i 's/@login_required/#login_required/g' *
或者目录中的文件:
find ./ -type f -exec sed -i 's/@login_required/#login_required/g' {} \;
包含string
的评论专栏:
:%s/\(.*string\)/# \1/c
%s
- 全球替代品\(.*string\)
- 匹配的模式# \1
- 替换,\1
是匹配的模式c
- 在替换前确认同样,要取消注释:
:%s/# \(.*string\)/\1/c