2011-08-22 7 views
5

Lavoro quasi esclusivamente nel terminale e molto spesso ho bisogno di visualizzare i file che appaiono negli stacktraces di errore. Un formato molto comune è /some/file:99, dove 99 è il numero di riga. Mi piacerebbe essere in grado di copiare quella linea e aprire facilmente quella linea facilmente in vim.C'è un modo per far riconoscere a Vim i numeri di riga alla fine dei nomi dei file?

Quello che sto cercando è la possibilità di fare :e /some/file:99 e vim apre automaticamente quel file alla riga 99. Esiste qualcosa del genere? In caso contrario, è possibile scrivere un plugin per questo?

risposta

1

Questo plugin è stato progettato con questo scopo preciso in mente: file:line

6

il comando Modifica può prendere le opzioni, in modo da provare questo:

:e +99 /some/file 

appena trovato questo link:

http://vim.runpaint.org/basics/opening-files/

Si può anteporre il nome del file con + LineNumber per istruire Vim saltare alla linea data dopo l'apertura. Ad esempio, vim +7 todo.list o: e +100 treatise.txt. Se si omette il lenzuolo, cioè si prefissa il nome del file con +, Vim salterà alla fine del file.

+0

Sarebbe possibile rimappare ': e/some/file: 99' a': e +99/some/file'? O ci sarebbe un modo migliore per farlo? Anche se la tua soluzione è pulita, non è un gran miglioramento per il mio caso di utilizzo semplicemente aprendo il file e poi facendo ': 99' – Suan

+0

Il comando gf è quello che stai cercando? http://vim.wikia.com/wiki/Open_file_under_cursor Le uscite di errore/stacktrace –

1

Da dove proviene questo /some/file:99? È l'output di qualche comando esterno? In tal caso, dovresti leggere la documentazione relativa alla modalità di aggiornamento rapido. (:h quickfix).

+0

sembrano avere un formato standard di filepath: linenumber, è lì che l'ho preso da – Suan

+0

@Suan: vuoi dire che hai un file che contiene errori di compilazione aprire in Vim e vuoi saltare alla riga relativa del file? –

+0

Quindi dovresti configurare correttamente ''makeprg'', e chiamare': make'. Non c'è bisogno di usare alcun plugin. Questa è una funzionalità integrata. –

2

Se è possibile reindirizzare /some/file:99 a un file allora si può saltare alla /some/file alla linea 99 semplicemente premendo gF quando cursore si trova sul nome del file.