2011-08-22 10 views
5

Pracuję prawie wyłącznie w terminalu i bardzo często potrzebuję wyświetlić pliki, które pojawiają się w stosach błędów. Bardzo powszechnym formatem jest /some/file:99, gdzie 99 jest numerem linii. Chciałbym móc skopiować tę linię i łatwo otworzyć goto w linii.Czy jest jakiś sposób, aby vim rozpoznał numery linii na końcu nazw plików?

Czego szukam to możliwość zrobienia :e /some/file:99, a vim automatycznie otworzy ten plik w linii 99. Czy coś takiego istnieje? Jeśli nie, to czy można napisać dla niego wtyczkę?

Odpowiedz

1

Wtyczka ta została zaprojektowana z tego konkretnego celu w umyśle: file:line

6

Komenda edycja może trwać opcje, więc spróbuj tego:

:e +99 /some/file 

Wystarczy znaleźć ten link:

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

Możesz przedrostek nazwy pliku z + LineNumber o zleceniu Vim przeskoczyć do danej linii po otwarciu. Na przykład vim +7 todo.list lub: e +100 traktise.txt. Jeśli pominiesz tekst lnu, tzn. Przedrostkujesz nazwę pliku przy pomocy +, Vim przeskoczy na koniec pliku.

+0

Czy byłoby możliwe przemapowanie ': e/some/file: 99' na': e +99/some/file'? A może byłby lepszy sposób, aby o tym porozmawiać? Chociaż twoje rozwiązanie jest czyste, nie ma większego znaczenia dla mojego przypadku użycia, a jedynie otwieranie pliku, to robienie ': 99' – Suan

+0

Czy polecenie gf jest tym, czego szukasz? http://vim.wikia.com/wiki/Open_file_under_cursor –

1

Skąd pochodzi /some/file:99? Czy jest to wynik jakiegoś zewnętrznego polecenia? Jeśli tak, powinieneś przeczytać dokumentację związaną z trybem quickfix. (:h quickfix).

+0

wyjścia błędów/stacktrace wydają się mieć dość standardowy format ścieżki do pliku: linenumber, to tam dostałem go od – Suan

+0

@Suan: czy masz na myśli plik zawierający błędy kompilacji otworzyć w Vimie i chcesz przejść do odpowiedniej linii pliku? –

+0

Następnie lepiej skonfiguruj 'makeprg'' i wywołaj': make'. Nie musisz używać żadnej wtyczki. Jest to funkcja wbudowana. –

2

Jeśli można przekierować /some/file:99 do pliku, a następnie można przejść do /some/file na linii 99 przez naciśnięcie gF kiedy kursor znajduje się nazwa pliku.

Powiązane problemy