Я не могу найти решение для короткого стиля VIM для этого. Вот почему вот скрипт vim.
function! s:escape(line)
return escape(a:line, '[]*')
endfunction
function! s:highlight_similar(pattern, extraction)
let sorted = sort(getline(1, '$'))
let matched_lines = {}
let pattern = '^\s*\(\w\+\)\s\+\(\w\+\).*$'
let previous_part = ''
let previous_line = ''
for i in range(0, line('$') - 1)
let line = sorted[i]
if line !~ a:pattern
continue
endif
let part = substitute(line, a:pattern, a:extraction, '')
if empty(part)
continue
endif
if part == previous_part
let matched_lines[s:escape(line)] = i
let matched_lines[s:escape(previous_line)] = i
else
let previous_part = part
let previous_line = line
endif
endfor
let @/ = join(keys(matched_lines), '\|')
endfunction
И определение команд, которые должны быть в одном файле
command! -nargs=0 HighlightTwoWords
\call <SID>highlight_similar('^\s*\(\w\+\)\s\+\(\w\+\).*$', '\1 \2')
command! -nargs=0 HighlightTwoRows
\call <SID>highlight_similar('^\s*\(.*\)\s*$', '\1')
И после использования команды «HighlightTwoWords» вы сможете использовать «n» и «N» для перемещения по интересующим вас строкам. Или с помощью команды «hls [earch]» вы можете выделить эти строки. 1007 *