zoukankan      html  css  js  c++  java
  • vimdiff vimmerge 配置及使用

    1 Set up vimdiff

    The vimdiff as a merge tool will display several buffers to show the yours/theirs/original changes.

    The key point is to set up the vimdiff so that the buffer number in the vimdiff status line is visible.

    First, add following code into your ~/.vimrc

    set laststatus=2 "show the status line
    set statusline=%-10.3n  "buffer number

    Second, if you know the buffer number, you can use hot key like ",2" (press comma first, then press two as quickly as possible) to pull change from buffer number two.Add below code into your ~/.vimrc to set up hot keys:

    map <silent> <leader>1 :diffget 1<CR> :diffupdate<CR>
    map <silent> <leader>2 :diffget 2<CR> :diffupdate<CR>
    map <silent> <leader>3 :diffget 3<CR> :diffupdate<CR>
    map <silent> <leader>4 :diffget 4<CR> :diffupdate<CR>

     注意: 设置hot key的时候,需要将<leader>替换为你需要设置的前导符号,例如如果设置 ",2" 为获取buffer 2 的内容,那么你需要将 <leader>设置为 ','

     即:

    map <silent> ,1 :diffget 1<CR> :diffupdate<CR>
    map <silent> ,2 :diffget 2<CR> :diffupdate<CR>
    map <silent> ,3 :diffget 3<CR> :diffupdate<CR>
    map <silent> ,4 :diffget 4<CR> :diffupdate<CR>

    2 Set up git tool

    To use vimdiff as default merge tool:

    git config --global merge.tool vimdiff
    git config --global mergetool.prompt false

    3 Resolve merge conflict

    Bob and Chen has edited same files. So please merge branch "bob" into "master" at first. Then merge from "chen". The merge conflicts will be created.

    git branch         # double check that we got three local branches: master, bob, chen
    git checkout master    # set master branch as main branch
    git merge bob       #this is ok, because bob is the first one to merge changes
    git merge chen       # now some conflicts created because Bob has already edited and merged same files

              Here is the explanation of each buffer:

     
    BufferExplanationBuffer Number
    THEIRS contents of the file on the current branch 2
    BASE common base for the merge 3
    YOURS contents of the file to be merged. 4
    MERGED The file containing the conflict markers. You need edit and commit this file. 1

      You could use hot key ",2" (comma + two) ",3" (comma+three) ",4" (comma+four) to pick the content you want to use

       (either THEIRS or BASE or YOURS) to replace the marked conflict in MERGED buffer whose buffer number is one.

      Or you can edit the content directly in MERGED buffer. Anyway, git only care about the the file binding to MERGED buffer.

      Any other buffer will be ignored by git.

      You can use hot key "[c" and "]c" to navigate to previous/next conflict (including the conflict resolved by git automatically) in current file which is binding   to MERGED buffer.

      After finishing editing of the conflicting file in MERGED buffer, you can use hot key ":xa" to exit vimdiff. Git will open next conflicting file with vimdiff   automatically.

      When you have resolved all the conflicts, follow the hint of git to commit your changes.

  • 相关阅读:
    Spark源码分析之-scheduler模块
    YARN
    java.lang.NoClassDefFoundError 怎么解决
    rdd
    Apache Spark探秘:三种分布式部署方式比较
    Sqrt函数的实现方法
    golang 自旋锁的实现
    支付宝往余额宝转钱怎么保证一致性
    mysql 面试题
    TCP 进阶
  • 原文地址:https://www.cnblogs.com/yaozhongxiao/p/3869862.html
Copyright © 2011-2022 走看看