Erro ao tentar adicionar marcas visíveis no vim

0

Estou tentando usar marcadores visíveis no vim.
Eu tenho o seguinte no meu arquivo .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>  

Mas quando abro o vim, recebo um erro na linha 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")

Qual é o problema com a minha sintaxe?

    
por user65971 23.06.2013 / 11:02

1 resposta

2

O erro é bastante fácil de detectar.

Você escreveu

line(.)

em vez de

line('.') or line(".")

editar

A mensagem de erro em sua pergunta estava relacionada ao erro acima, mas há um segundo erro, um espaço ausente.

  1. Sua linha:

    exe ":sign place 123 line=" . line(.) ."name=information file=" . expand("%:p")
    
  2. Primeiro erro corrigido colocando o argumento em line() entre aspas (também expand() corrigido):

    exe ":sign place 123 line=" . line('.') ."name=information file=" . expand('%:p')
    
  3. Segundo erro corrigido pela adição de um espaço ausente após a terceira aspa dupla:

    exe ":sign place 123 line=" . line('.') ." name=information file=" . expand('%:p')
                                              ^
                                              +-- added missing space
    

Devido ao espaço ausente, o valor do argumento line era algo como 26name=information e o argumento name estava ausente.

    
por 23.06.2013 / 13:33