Como pular diretamente para um número de coluna no Vim


234

Às vezes, para fins de depuração, tenho que fazer o trabalho emocionante de percorrer o código javascript minificado. As linhas têm até 600 colunas de largura. A biblioteca de relatórios de exceção tem a gentileza de fornecer as coordenadas exatas da falha na forma de número da linha e número da coluna. No entanto, não consigo encontrar uma maneira de pular diretamente para o número da coluna, mesmo que eu possa pular para a linha tão facilmente.

Como eu posso fazer isso?


Parece uma ferramenta que precisa ser inventada. "Deminifique meus js, e enquanto estiver nisso, pule para o local identificado por este número de coluna."
dnellis74

2
@ dnellis74 Essa ferramenta existe. É chamado de "sourcemaps";)
Burgi

//, @Burgi, resumo e link para 3 palavras perigosas?
Nathan Basanese

Respostas:


333

O |comando faz o que você deseja, pois 30|o levará à coluna 30.

                                                        bar
|                       To screen column [count] in the current line.
                        exclusive motion.  Ceci n'est pas une pipe.

http://vimdoc.sourceforge.net/htmldoc/motion.html#bar


41
Esteja ciente, para uso geral, que esta é uma coluna da tela , não uma coluna real . Isso significa que os <Tab>caracteres obterão resultados diferentes. Se esses personagens estiverem lá, você desejará |30lhou |29lou 029lou algo assim.
31712 Chris Morgan

25
Você também pode passar um número antes de vários comandos de movimento, por exemplo 50h, moverá 50 caracteres para a esquerda.
AB

7
:set nowraptambém pode ajudar a reduzir a confusão entre linhas de tela e linhas de arquivo.
David Pope

4
@ DavidPope: observe que, neste caso, "colunas da tela" significa que ainda é relativa ao início da linha. g0alcança "início da linha de tela atual".
31312 Chris Morgan

10
A documentação do vim é hilária: "Ceci n'est pas une pipe" :-)
Avinash Meetoo

45

Você pode usar a cursorfunção Por exemplo, para pular para a coluna 25 da linha 15, você pode usar :call cursor(15,25).


2
Isso dá uma resposta à pergunta e é conveniente ter a alternativa do comando Ex para scripts. Observe que se o número da linha for zero, o cursor permanecerá na linha atual.
Giles Gardam

Isso é especialmente bom para abrir o Vim de outras ferramentas, pois essa chamada pode ser feita na linha de comando:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves

5

Uma resposta alternativa que funciona para mim no Mac OS é usar o comando que move o cursor para a direita (ou seja l). Portanto, se o cursor estiver na primeira coluna e você desejar colocá-lo na coluna 50 da sua linha atual, use o comando:

49l
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.