vimrc内からvimとvimdiffを区別するにはどうすればよいですか?


10

私はvimにすべてのバッファをタブとして開く関数があります。ただし、この関数を追加した後、vimdiffもファイルを開いて、異なるタブとして比較するため、違いが表示されません。vimrcファイルを呼び出しているvimまたはvimdiffかどうかを確認する方法はありますか?

function! OpenTabs()
    let bf=len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
    if bf > 1
      exe "tab 5sball"
    endif
endfunction

バッファーとしてのタブの使用に関する関連するSOの投稿:バッファーのようなVimのタブの使用
Peter Rincker

VImが実行されgit difftoolたときにvim-workspaceによってワークスペースがロードされることを望まなかったため、この質問が見つかりましたが、この場合はlet g:workspace_session_disable_on_args = 1より適しています。
ギュンターZöchbauer

回答:


12

:help diff これをカバーします:

.vimrcファイルでは、Vimがdiffモードで起動されたときに特別なことができます。次のような構成を使用できます。

   if &diff
      setup for diff mode
   else
      setup for non-diff mode
   endif

12

あなたは&diffあなたのvimrcのようにオプションを使うことができます:

if &diff
    echo "in diff mode"
else
    echo "not in diff mode"
endif

見る :h 'diff'


スナップ!私が賛成票を投じたら、私はあなたの賛成票を投票します;)
リッチ

あぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ6秒遅かったので「送信」をクリックするのは遅かった!
投票してください

迅速な対応をありがとう!ビューとviを識別するオプションもあるかどうか疑問に思いますか?
Ankit Jain

@AnkitJainビューの場合、すべてのバッファーに'readonly'オプションが設定されているかどうかをチェックするか、エイリアスviewを設定して、起動時にチェックするvim変数を設定できます。
statox

3
@AnkitJain:h v:progname
Christian Brabandt 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.