Настройте удар и/или энергию для выполнения источника ~/.bashrc каждый раз, когда я заканчиваю редактировать его

Вы могли использовать также curl или wget наряду с bash выполнять то, что Вы хотите.

$ wget -O- http://example.com | grep "working fine" || mailx -s "Oh NO" you ...
3
03.09.2018, 15:16
2 ответа

Прямой способ:

vim ~/.bashrc && source $_

Вы можете сделать псевдоним:

alias vimbashrc='vim ~/.bashrc && source $_'

Это работает в bash или zsh. В другой оболочке вы должны использовать явное имя .bashrc, чтобы исходный код работал:

alias vimbashrc='vim ~/.bashrc && source ~/.bashrc'
2
27.01.2020, 21:19

Существует крюк, с помощью которого вы можете заставить vim выполнить команду после записи файла. Например, здесь я использую его для автоматической перезагрузки rc файла vim после сохранения:

autocmd BufWritePost $MYVIMRC source $MYVIMRC

К сожалению, это совсем не поможет вам с тем, что вы хотите сделать. Это связано с тем, что команды, которые запускаются, выполняются как дочерние процессы vim. Независимо от того, что вы там делаете, родительское окружение не будет затронуто.

Что вам действительно нужно, так это что-то на уровне оболочки. Начните с просмотра того, что вы делаете:

vim  ~/.bashrc
source ~/.bashrc

Но на самом деле вам нужна последняя только в случае успеха первой команды:

vim ~/.bashrc && source $_

Теперь все, что вам нужно - это удобная команда, которая облегчает ввод:

function vbrc () {
    vim ~/.bashrc && source $_
}

Теперь, чтобы отредактировать свой bashrc файл, просто запустите vbrc и он будет исходным кодом, когда вы закончите редактирование.

Другой удобной вещью для тестирования изменений в вашем bashrc будет запуск оболочки как подпроцесса в vim. Это позволит вам быстро протестировать сохраненные изменения в оболочке. Когда вы выпадаете из оболочки, вы снова редактируете файл.

:!bash

Вы даже можете подключить его к сохранённому файлу, чтобы каждый раз, когда вы сохраняете файл, он заставлял вас проверять результаты внутри живой оболочки. Очевидно, что это полезно только в контексте активной разработки вашего rc, так что вы, вероятно, захотите активировать это вручную, а не из вашего vimrc:

autocmd BufWritePost ~/.bashrc !bash
2
27.01.2020, 21:19

Теги

Похожие вопросы