Pracuję nad małym skryptem Pythona, który wymaga częstego wykonywania w celu debugowania i dalszego rozwoju.
Czy mogę podzielić ekran vima i wykonać skrypt z jednej strony jednym naciśnięciem klawisza?
źródło
Pracuję nad małym skryptem Pythona, który wymaga częstego wykonywania w celu debugowania i dalszego rozwoju.
Czy mogę podzielić ekran vima i wykonać skrypt z jednej strony jednym naciśnięciem klawisza?
Dodaj tę linię do swojego .vimrc:
command R !./%
A potem możesz po prostu wpisać „: R” w Vimie, aby uruchomić skrypt ( vim-run-current-file )
Vim nie obsługuje i nigdy nie będzie obsługiwał wbudowanej powłoki, takiej jak emacs lub kate (jeśli masz na myśli to), zobacz to pytanie dotyczące przepełnienia stosu .
David Spillet ma rację, możesz uruchomić vima na ekranie GNU:
$ screen vim foo.txt
Ale to da ci tylko coś przypominającego menedżera okien w terminalu - BARDZO przydatne, gdy użyjesz go przez ssh lub na pudełku bez X, ale lokalnie możesz równie dobrze otworzyć inny xterm i przełączać się między nimi. *
W każdym razie, jeśli możesz żyć z faktem, że nie zobaczysz edytowanego pliku, patrząc na produkowany przez niego wynik, wskazówka Jacka M jest dobra, ale może być krótsza:
:map ;e :w<cr>:!python %<cr>
W tym samym celu mam to w moim ~/.vimrc
:
au BufEnter *
\if match( getline(1) , '^\#!') == 0 |
\ execute("let b:interpreter = getline(1)[2:]") |
\endif
fun! CallInterpreter()
if exists("b:interpreter")
exec ("!".b:interpreter." %")
endif
endfun
map <F5> :call CallInterpreter()<CR>
Spowoduje to uruchomienie dowolnego pliku, który ma shebang ( #!
) w pierwszym wierszu. Używa interpretera do uruchomienia pliku, więc nie musi mieć uprawnień do wykonywania.
* (ekran ma inne bardzo fajne funkcje, takie jak kopiowanie i wklejanie z wyjścia, monitorowanie ukrytych okien pod kątem aktywności / braku aktywności, możliwość korzystania z sesji z różnych terminali w tym samym czasie, możliwość wylogowania, pozostawiając wszystkie programy bieganie - to potężne narzędzie).
:map ;e :w<cr>:!python %<cr>
chce wysłać echo do mojego bufora vima, aby „potwierdzić” (?), że polecenie zostało uruchomione. Jak sprawić, by po prostu cicho wykonywał polecenie?:map <silent> ...
nie wydaje się działać.Najmniej szczegółowy sposób (który wymaga wykonania skryptu) to prawdopodobnie:
źródło
:!./%
skrypt znalazł się w bieżącym katalogu.!
vim nakazuje vim wykonać cokolwiek, co następuje jako polecenie bash, więc możesz to zrobić!echo "Hello"
.%
Rozpręża się nazwa bieżącego pliku.To może nie być podzielony ekran, ale działa mi to całkiem dobrze:
To mapuje,
;e
aby zapisać bieżący plik i wykonać go za pomocą Pythona (zakłada, że Python jest na twoimPATH
).źródło
Bexec vim plugin robi dokładnie to, co chcesz. W zestawie skróty klawiaturowe.
źródło
Istnieje podobne pytanie StackOverflow .
źródło
To jest to, czego użyłem, proszę (F5 uruchamia bieżący skrypt).
Aby zmienić Vima w potężne IDE Pythona, polecam ten samouczek:
źródło
Umieść ten mały fragment w swoim .vimrc, aby wykonać bieżący plik jednym naciśnięciem klawisza (jak
F5
) i wyświetlić wynik w nowym buforze podzielonego panelu.:!
jest w porządku, ale musisz przełączyć się na terminal, aby zobaczyć wynik.Chociaż możesz to zrobić za pomocą
ctrl-z
i przywrócić zfg
nim vima , nadal musisz dużo zmieniać kontekst.Sposób działania tego fragmentu polega na zgadywaniu pliku wykonywalnego na podstawie,
filetype
a następnie uruchamianiu go z bieżącym plikiem jako argumentem.Następnie przydatna metoda narzędzia pobiera dane wyjściowe i zrzuca je do nowego bufora.
Nie jest idealny, ale naprawdę szybki w przypadku typowych przepływów pracy.
Oto fragment skopiowany poniżej:
źródło
Nie wiem bezpośrednio o vimie, ale ogólnie możesz podzielić ekran w ten sposób za pomocą
screen
narzędzia. ctrl+ a, S(uwaga, to wielka litera S) podzieli ekran i możesz przełączać się między nimi za pomocą ctrl+ a, tab(jeśli okno jest puste, użyj ctrl+ a, naby przejść do innego otwartego okna lub ctrl+ a, caby utworzyć nowe) .Możesz podzielić ekran na więcej niż dwa i zmienić rozmiar podziałów za pomocą ctrl-a,: resize. Często używam ekranu w ten sposób i chociaż nie jest to rozwiązanie jednoklawiszowe, o które prosisz, może być bardzo wygodne.
źródło