我正在尝试在 vim 中使用可见标记。我的文件
中有以下内容:.vimrc
sign define information text=!> linehl=Warning texthl=Error
exe ":sign place 123 line=" . line(.) ."name=information file=" . expand("%:p")
map <F7> :exe ":sign place 123 line=" . line(".") ."name=information file=".expand("%:p")<CR>
但是当我打开 vim 时,我收到一行错误exe ":sign etc
line 30:
E15: Invalid expression: .) ."name=information file=" . expand("%:p")
E116: Invalid arguments for function line(.) ."name=information file=" . expand("%:p")
E15: Invalid expression: ":sign place 123 line=" . line(.) ."name=information file=" . expand("%:p")
我的语法有什么问题?
答案1
这个错误很容易发现。
你写了
line(.)
代替
line('.') or line(".")
编辑
问题中的错误消息与上述错误有关,但还有第二个错误,缺少空格。
您的线路:
exe ":sign place 123 line=" . line(.) ."name=information file=" . expand("%:p")
通过将参数放在
line()
引号中来纠正第一个错误(expand()
也已修复):exe ":sign place 123 line=" . line('.') ."name=information file=" . expand('%:p')
通过在第三个双引号后添加缺失的空格来更正第二个错误:
exe ":sign place 123 line=" . line('.') ." name=information file=" . expand('%:p') ^ +-- added missing space
由于缺少空格,参数的值line
类似于26name=information
并且name
参数丢失。