O Vim não pula para a linha correta da tag escolhida em: tselect match list

0

Quando eu digito :tselect pool , há correspondências listadas como esperado:

  # pri kind tag               file
  1 F C m    poll              pika/adapters/select_connection.py
               line:238 class:IOLoop
               def poll(self):
  2 F C m    poll              pika/adapters/select_connection.py
               line:544 class:_PollerBase
               def poll(self):
  3 F C m    poll              pika/adapters/select_connection.py
               line:682 class:SelectPoller
               def poll(self):

mas qualquer número que eu escolher, o vim sempre vai para a linha da primeira escolha, neste caso, a linha 238. Eu tentei :tn / :tp , o número da tag irá mudar, mas ainda na mesma linha. / p>

linhas correspondentes no arquivo tags :

poll    pika/adapters/select_connection.py      /^    def poll(self):$/;"       m       line:238        class:IOLoop
poll    pika/adapters/select_connection.py      /^    def poll(self):$/;"       m       line:544        class:_PollerBase
poll    pika/adapters/select_connection.py      /^    def poll(self):$/;"       m       line:682        class:SelectPoller

meu ~/.ctag :

--recurse
--links=no
--fields=+n

a versão ctags é Exuberant Ctags 5.8 .

    
por georgexsh 17.11.2017 / 12:18

1 resposta

1

De acordo com outra resposta sobre SO , para trabalhar com o vim, eu devo usar ctags -n ou --excmd=number , depois de adicionar essa opção a ~/.ctags , ele funciona bem agora.

--excmd=number force ctags usam apenas o número da linha no arquivo de tags para localização, mesmo que exista uma coluna line: , mas aparentemente o vim não consegue reconhecê-la.

é assim que tags aparece agora:

poll    pika/adapters/select_connection.py      238;"   m       line:238        class:IOLoop
poll    pika/adapters/select_connection.py      544;"   m       line:544        class:_PollerBase
poll    pika/adapters/select_connection.py      682;"   m       line:682        class:SelectPoller

a principal diferença é a terceira coluna, que vim chamou {tagaddress} :

{tagaddress} The Ex command that positions the cursor on the tag. It can be any Ex command, although restrictions apply (see |tag-security|). Posix only allows line numbers and search commands, which are mostly used.

Acredito que essa é a razão pela qual o padrão não funciona.

    
por 17.11.2017 / 12:46

Tags