Come saltare direttamente a un numero di colonna in Vim


234

A volte per scopi di debug devo fare l'eccitante lavoro di guadare attraverso il codice javascript minimizzato. Le linee sono larghe fino a 600 colonne. La libreria di segnalazione delle eccezioni è abbastanza gentile da fornirmi le esatte coordinate del crash sotto forma di numero di riga e numero di colonna. Tuttavia, non riesco a trovare un modo per saltare direttamente al numero di colonna, anche se posso saltare alla riga così facilmente.

Come posso farlo?


Sembra uno strumento che deve essere inventato. "Deminifica il mio js e, mentre ci sei, salta nel punto identificato da questo numero di colonna."
dnellis74,

2
@ dnellis74 Questo strumento esiste. Si chiama "sourcemaps";)
Burgi

//, @Burgi, può riassumere e collegare 3 parole?
Nathan Basanese,

Risposte:


333

Il |comando fa quello che vuoi, come in 30|ti porterà alla colonna 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
Tenere presente, per uso generale, che si tratta della colonna dello schermo , non della colonna reale . Ciò significa che i <Tab>personaggi otterranno risultati diversi. Se questi personaggi saranno lì, vorrai invece |30lho |29lo 029lo qualcosa del genere.
Chris Morgan,

25
Puoi anche passare un numero prima di vari comandi di movimento, ad es. 50hSi sposteranno 50 caratteri a sinistra.
AB

7
:set nowrappuò anche aiutare a ridurre la confusione tra le linee dello schermo e le file.
David Pope,

4
@DavidPope: nota che in questo caso "colonne dello schermo" significa che è ancora relativo all'inizio della linea. g0raggiunge "inizio della riga dello schermo corrente".
Chris Morgan,

10
La documentazione di Vim è divertente: "Ceci n'est pas une pipe" :-)
Avinash Meetoo,

45

Puoi usare la cursorfunzione. Ad esempio, per saltare alla colonna 25 della riga 15, è possibile utilizzare :call cursor(15,25).


2
Questo dà una risposta alla domanda ed è conveniente avere l'alternativa al comando Ex per lo scripting. Notare che se il numero di riga è zero, il cursore rimarrà nella riga corrente.
Giles Gardam,

Ciò è particolarmente utile per l'apertura di Vim da altri strumenti, poiché questa chiamata può essere eseguita dalla riga di comando:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves,

5

Una risposta alternativa che funziona per me su Mac OS è utilizzare il comando che sposta il cursore verso destra (cioè l). Quindi, se il cursore si trova sulla prima colonna e si desidera posizionare il cursore sulla colonna 50 della riga corrente, utilizzare il comando:

49l
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.