編集が完了するたびに、source ~/.bashrcを実行するようにbashおよび/またはvimを設定します。

編集が完了するたびに、source ~/.bashrcを実行するようにbashおよび/またはvimを設定します。

source ~/.bashrcファイルの編集が終わるたびに(つまり、コマンドの実行vim後)、それを実行したいと思います。:wq vim

vimこのように設定または動作さbashせるにはどうすればよいですか?

答え1

ファイルを作成した後、vimがコマンドを実行できるようにするフックがあります。たとえば、保存後にvimのrcファイルを自動的にリロードするためにここでそれを使用しています。

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

簡単なアプローチ:

vim ~/.bashrc && source $_

エイリアスを作成できます。

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

これはbashまたはで機能しますzsh。他のシェルでは、.bashrcこれを機能させるにはソース名を明示的に指定する必要があります。

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

関連情報