Edytuję monit PS1 i nie chcę ciągle pobierać mojego bashrc, aby go zaktualizować (ponieważ mój bashrc resetuje również inne rzeczy). Nie chcę też kopiować i wklejać go w kółko. Czy istnieje sposób interaktywnej edycji zmiennej, na przykład przy użyciu nano
(mojego domyślnego edytora)?
PS1 jest głównie przykładem, ponieważ chcę zrobić to samo z innymi wersjami. Powodem, dla którego chcę to robić interaktywnie, jest to, że zmienna jest już dość długa i po prostu muszę w niej edytować kilka znaków. Muszę tylko zmienić to w bieżącej powłoce.
źródło
PS1='$PS1'
usuwałem cytaty, ale pisaniePS1=\'$PS1\'
działa idealnie.bind -p
, odkryłem również, że możesz rozszerzać globusy, tyldy i linie historii. Schludny!Zamiast pozyskiwać bashrc, źródłowy inny plik, który zawiera tylko zmienną.
Stwórz To:
Uwaga: jeśli zmienna zawiera pojedyncze cudzysłowy, będziesz musiał użyć polecenia, które może je uciec, np .:
Otwórz go w edytorze, np
nano /tmp/PS1
.nano
, możesz uruchomić go w innym terminalu / TTY lub użyć edytora graficznego.Wprowadź zmiany i zapisz.
Źródło:
Powtórz kroki 3 i 4 w razie potrzeby.
źródło
Zsh ma wbudowaną funkcję o nazwie,
vared
która pozwala edytować zmienną wbudowaną. Napisałem własną wersję, pierwotnie opublikowaną na Super User :Zauważ, że ma to pewne subtelne różnice w stosunku do wbudowanego Zsh, np .:
vared $
)Następnie, aby edytować PS1, po prostu uruchom
vared PS1
.źródło