2

Hi Im trying to write my first vim script. I want to write a function that will comment out PHP code by the block or curly brackets.

Here is what I've come up with, but I can't get it to work:

: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
4

1 回答 1

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

另外,考虑使用echom而不是echo. 因为echom将消息保存在消息历史记录中,您可以稍后使用 重新阅读:mess

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

ctrl-v%I//<esc>

于 2013-05-16T23:44:03.030 回答