2017-03-31 19 views
0

私はvi/vimを編集するかもしれませんが、vimとmercurialは一緒にniceを配置しません。Mercurialコミットは「中止:編集に失敗しました:viがステータス1で終了しました」

変更をコミットしようとすると、コマンドラインがで終了した場合:

$ hg commit 
abort: edit failed: vi exited with status 1 

viは常に終了時に1を返します表示されます。

例:

$ vi 
$ echo $? 
1 
+0

'ls -l" $(command -v vi) "'は何を表示しますか? 'EDITOR = vim hg commit'は期待どおりに動作しますか? – Ryan

+0

1. ls -l "$(command -v vi)" - >/usr/bin/vi - > vim –

+0

待ち時間...どのようにviを終了しましたか? ':q'ではなく? – Ryan

答えて

0

解決の迅速ハック問題。

  1. シェルファイルを作成します

    $ sudoのviのは/ usr/local/binに/ hgedit

    のvi $ * 終了0

  2. アップデート〜/ .hgrc

    エディタ=/usr/local/bin/hgedit

+1

これは簡単な回避策ですが、vimが非ゼロステータスで終了する理由を特定することをおすすめします。たとえば、http://unix.stackexchange.com/questions/14497/why-would-vim-return-non-zero-exit-code-if-i-exit-immediately-after-opening – torek

+0

を参照してください。Mercurialはviを次のように使用します。デフォルトのエディタであるため、動作する必要があります。なぜなら、@torekが指摘するように、viが非ゼロで終了する理由は、根本原因を理解しなければならないことは明らかです。ハックは常に悪い考えです。後で価格を支払うことになります。 –

関連する問題