Używam vima do tworzenia skryptów bash. Chodzi o to, że czasami nie chcę tworzyć nowego pliku, uczynić go wykonywalnym, wykonać go, a następnie usunąć. Mam na myśli skrypty, które zostaną użyte tylko raz.
Na przykład otwieram vima i wpisuję to:
#!/bin/bash
ll | while read line
do
echo $line
done
Nie zapisałem tego pliku, po prostu używam vima, aby uprościć skrypty bash. Wiem, że mogę wykonać polecenie bash poprzez !
vim. Ale co z wykonywaniem wszystkiego, co znajduje się w buforze?
command-line
external-command
bash
St.Antario
źródło
źródło
<C-x><C-e>
i wykonać go podczas zapisu, prawda?set -o vi
, możesz nacisnąć,Esc-v
aby edytować wiersz poleceń w vi. NastępnieEsc-:wq
wykonać.Odpowiedzi:
Napisałem dość obszerną odpowiedź na ten temat przy przepełnieniu stosu . Podstawową ideą jest to, że skoro w poleceniu write chodzi o zapisywanie, a nie zapisywanie , możesz zapisać tekst w buforze do zewnętrznego programu, takiego jak python lub bash. W twoim przypadku chciałbyś zrobić coś takiego:
lub
Te polecenia dosłownie zapisują tekst w buforze bezpośrednio do określonego programu
!
, co jest wygodne, ponieważ wtedy nie trzeba zapisywać pliku. Oczywiście możesz także zrobić coś takiego:który zapisuje twój plik, a następnie uruchamia go jako skrypt bash. Możesz wybrać, który z nich będzie dla ciebie bardziej sensowny.
źródło
:w !bash -a test
ale dostałem „nie można wykonać pliku binarnego”test
plikiem, działa to dla mnie dobrze. Co ma zrobić polecenie i co powinnotest
zawierać?test
zawierać?test
jest tylko argumentem-a
.test
powinien to być plik. Nie jestem do końca pewien, co robić. Jeśli próbujesz czegoś złożonego, lepiej po prostu zapisać go w pliku. Warto zadać osobne pytanie, aby podać więcej szczegółów. Prawdopodobnie byłoby to również dobre pytanie dla Uniksa i LinuksaScenariusz: pracujesz w powłoce bash. Najpierw upewnij się, że tryb edycji lokalnej to vi:
Teraz, gdy zauważysz, że pracujesz nad długim poleceniem, takim jak poniżej, naciśnij Esc+ v.
Spowoduje to załadowanie polecenia do
vi
sesji tymczasowej . Teraz możesz go edytować według własnego uznania, a nawet dodać kolejne polecenie ...Po zakończeniu edycji wpisz Esc
:wq
i polecenie (polecenia) zostaną wykonane, na przykład:źródło
Esc
klucza;)Esc
kluczy !? Jak więc mogą korzystać z Vima?Esc
klucz kiedy uruchomiony vim w terminalu.