`~/.vimrc`チェック

`~/.vimrc`チェック

~/.vimrc私のファイルが正しいことを確認し、デフォルトでファイルを実行したいとvim思います。 Enterキーを押す以外はquitほとんどできます。vim -c quit例えば、

> cat ~/.vimrc
echoerr 'test'

> vim -c quit
Error detected while processing /home/josh/.vimrc:
line    1:
test
Press ENTER or type command to continue

Enterキーを押さずにこれを行う方法はありますか?私はこれを実行できると思いますecho | vim -c quitが、よりエレガントなソリューションを期待しています。

ベストアンサー1

try-catchブロックを使用してエラー(例外に変換された)をキャッチし、すべての例外で失敗する可能性があります。

$ cat vimrc-fail                                                
echoerr 'test'                                 
$ cat vimrc-pass
echo 'test'
$ vim -u NONE -c 'try | source vimrc-pass | catch | cq | endtry | q'; echo $?  
0
$ vim -u NONE -c 'try | source vimrc-fail | catch | cq | endtry | q'; echo $?
1

~から助ける:

:try                            :try :endt :endtry E600 E601 E602
:endt[ry]               Change the error handling for the commands between
                        ":try" and ":endtry" including everything being
                        executed across ":source" commands, function calls,
                        or autocommand invocations.

そしてから:echoerr:

try条件内で使用すると、このメッセージはエラー例外として発生します(参照:エコを試してみてください)。

その他の注意事項:

  • -u NONEデフォルトのvimrcsインポートの防止
  • :cqVim がゼロ以外の終了状態を返すようにします。

最後のエラーメッセージ(現在は実際には例外)を取得するには、次を使用します。v:exception:

$ vim -u NONE -c 'try | source vimrc-fail | catch | silent exec "!echo " shellescape(v:exception) |cq | endtry | q'; echo $?
Vim(echoerr):test
1

おすすめ記事