vim 如何将git冲突标记与%匹配

kknvjkwl  于 2022-11-11  发布在  Git
关注(0)|答案(2)|浏览(137)

在vi和vim中,%可用于查找匹配符号,例如:

/**            <- With the cursor on / ...
 * Some comment
 *
 ...
 *
 */              <- % moves the cursor to the / on this line

这适用于匹配的{}()[]对,也适用于像#ifdef这样的c条件。
有没有一个设置可以让这个在git conflict markers上运行?


# ! /usr/bin/env ruby

def hello
<<<<<<< HEAD         <- With the cursor on this line
  puts 'hola world'
=======
  puts 'hello mundo'
>>>>>>> mundo        <- % moves the cursor to this line
end

可以(以及如何)配置vi和/或vim来实现这一点吗?

9wbgstp7

9wbgstp71#

在您的启动文件(例如$HOME/.vimrc)中,您可以添加:

packadd! matchit
let b:match_words = '<<<<<<<:=======:>>>>>>>'

packadd!启用可选插件,match_words指定匹配模式。注意,这将覆盖之前对match_words的任何赋值,而此类内容通常更适合存储在文件类型插件中。直接在主启动文件中添加这两行应该可以,但可能不是最佳解决方案。(例如,如果您正在合并一个其类型已被识别的文件,则文件类型插件可能会覆盖match_words的设置)

wnavrhmk

wnavrhmk2#

假设您实际上谈论的是Vim(使其可配置),而不是vi(不可配置)。
该功能记录在:help %下:

%           Find the next item in this line after or under the
            cursor and jump to its match. |inclusive| motion.
            Items can be:
            ([{}])      parenthesis or (curly/square) brackets
                        (this can be changed with the
                        'matchpairs' option)
            /* */       start or end of C-style comment
            #if, #ifdef, #else, #elif, #endif
                        C preprocessor conditionals (when the
                        cursor is on the # or no ([{
                        is following)
            For other items the matchit plugin can be used, see
            |matchit-install|.  This plugin also helps to skip
            matches in comments.

从那里,您可以跟随'matchpairs'标签到:help 'matchpairs',这对您没有帮助,因为您只能添加像<:>这样的单个字符对。
然后,您可以遵循有前途的matchit-install标记,这应该会让您走上正确的道路。
再努力一点

相关问题