Intereting Posts
Один лайнер, соответствующий именам файлов с регулярными выражениями? SSHD алгоритм кэширования дисков vs bcache / LVM Каков самый маленький дистрибутив Linux по размеру установки? Выполнение `ls` с` –color = auto | always` требует разрешения на выполнение Добавить текст между несколькими строками с sed, если предыдущая строка не соответствует шаблону Bluetooth: невозможно подключиться к Интернету на ноутбуке от Nokia N73 Отладка сценариев оболочки: проверка синтаксиса без выполнения ^ x ^ y unix трюк для всех экземпляров последней команды? Где можно установить глобальные параметры Java? Где я могу поместить настройки, которые запускаются с помощью root, и последние от начала ОС до ее завершения? Как я могу проверить разрешение на чтение файлов / proc / * / *? ZFS Snapshot для резервного копирования с резервным копированием Что происходит, когда я запускаю `su` как root? Понимание файлов символов (или символов) fetchmail видит почту, но не извлекает ее – постоянный «временный сбой поиска»

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

Я хотел бы выполнять source ~/.bashrc каждый раз, когда я заканчиваю редактирование файла с помощью vim:wq После :wq vim command).

Как мне настроить vim или bash таким образом?

Прямой способ сделать это:

 vim ~/.bashrc && source $_ 

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

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

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

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

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

 autocmd BufWritePost $MYVIMRC source $MYVIMRC 

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

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

 vim ~/.bashrc source ~/.bashrc 

Но на самом деле вам нужно только последнее, если первое будет успешным:

 vim ~/.bashrc && source $_ 

Теперь вам нужна удобная команда, которая упрощает ввод:

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

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

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

 :!bash 

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

 autocmd BufWritePost ~/.bashrc !bash