使用vimscript注释掉代码

时间:2013-05-16 23:17:46

标签: vim

您好我正在尝试编写我的第一个vim脚本。我想编写一个函数,用于通过块或大括号注释掉PHP代码。

这是我想出来的,但我无法让它发挥作用:

:function Mycom()
    :let b = line(".")
    :echo "this is "b
    // trying to grab the matching bracket, not sure wheather this is ok
    :%
    //keeps missing and going to end og file
    :let e = line(".")
    :echo "here is end" e
    //here is where i want to comment out the block
    :echo b,e s%^%//%
:endfunction

1 个答案:

答案 0 :(得分:5)

  • 你不应该在每一行上放置一个前导: - 除非你在Vim命令行中编写该函数,Vim会自动添加:您。 (不过在文件中编写脚本会更好;这样就可以更容易地修改和测试。)
  • Vimscript中的评论以"(双引号)开头,而不是//
  • 如果您要执行普通模式命令,例如%dd,则可以使用normal! %normal! dd
  • echo b,e s%...无效。如果您想echo该文字,请尝试echo b.','.e.' s%^%//%'

另外,请考虑使用echom代替echo。由于echom会将消息保存在消息历史记录中,因此您可以稍后使用:mess重新阅读该消息。

PS 如果光标处于打开状态{(我看到您尝试在脚本中使用%),则可以使用

ctrl-v%I//<esc>