2

私のテストから、新しい端末バッファーを開くときに nvim が .bash_profile をソースしないことは明らかです。新しい端末バッファが作成されるたびに、これを強制的に実行したいと思います。

この動作を確認するには:

  1. nvim で .bash_profile を開きます
  2. 次のような新しい変数をエクスポートします ISSOURCED
  3. ファイルを書き出す
  4. 端末バッファを開く
  5. 走るecho $ISSOURCED

また、この回答if tty -s; then echo interactive; fiに基づいて を実行して、bash がインタラクティブ モードで実行されていることも確認しました (そうです) 。

ただし、この回答shopt -q login_shell && echo 'Login shell' || echo 'Not login shell'に基づいて、実行に基づいてログインシェルではありません。これは、通常は source . 残念ながら、bashrc を別の場所に保管し、.bash_profile から取得しているため、取得されません。$HOME/.bashrc

私の現在の回避策と、それが理想的ではない理由については、以下の回答を参照してください。

4

2 に答える 2

1

これをあなたに追加してください~/.vimrc

set shell=bash\ -l

-l( ) で呼び出されると--login、bash~/.profileは起動時に (他のファイルの中で) を読み取り、そこからすべてのソースを読み取ります。

-i( ) で呼び出されると--interactive、bash~/.bashrcは起動時に (他のファイルの中で) を読み取り、そこからすべてのソースを読み取ります。

$ man bashまたは詳細については:h shell:h shellcmdflag

から取得: https://stackoverflow.com/a/9092644/1071756

于 2020-07-23T18:33:11.103 に答える
0

新しいターミナルを開くためのマッピングを設定しました。

nnoremap <leader>z :new<CR>:terminal<CR>

.bash_profile を入手するために、次のように変更しました。

nnoremap <leader>z :new<CR>:terminal<CR>source $HOME/.bash_profile<CR>c<CR>

このソリューションの問題は、このマッピング以外の方法でターミナル バッファを開こうとすると壊れることです。

于 2015-11-25T21:04:28.117 に答える