Я редактирую приглашение PS1, и я не хочу продолжать использовать мой bashrc для его обновления (поскольку мой bashrc сбрасывает и другие вещи). Я также не хочу копировать и вставлять это снова и снова. Есть ли способ редактировать переменную в интерактивном режиме, например, используя nano
(мой редактор по умолчанию)?
PS1 в основном пример, потому что я хочу сделать то же самое с другими переменными. Причина, по которой я хочу сделать это в интерактивном режиме, заключается в том, что переменная уже довольно длинная, и мне просто нужно отредактировать в ней несколько символов. И мне нужно только изменить его в текущей оболочке.
источник
PS1='$PS1'
, он удалял кавычки, но набор текстаPS1=\'$PS1\'
работает отлично.bind -p
, я также узнал, что вы можете расширить глобусы, тильды и линии истории. Ухоженная!Вместо того, чтобы использовать bashrc, создайте другой файл, который просто содержит переменную.
Создать это:
Примечание. Если переменная содержит одинарные кавычки, вам необходимо использовать команду, которая может их экранировать, например:
Откройте его в редакторе, например
nano /tmp/PS1
.nano
, вы можете запустить его в другом терминале / TTY или использовать графический редактор.Внесите свои изменения и сохраните.
Источник это:
Повторите шаги 3 и 4 по мере необходимости.
источник
Zsh имеет встроенную функцию,
vared
которая позволяет вам редактировать переменную inline. Я написал свою собственную версию, первоначально размещенную на Super User :Обратите внимание, что в этом есть некоторые тонкие отличия от встроенных в Zsh, например:
vared $
)Затем, чтобы редактировать PS1, просто запустите
vared PS1
.источник