我有一个大文件,其中包含许多共享相同模式的行,如下所示:
dbn.py:206 ... (some other text) <-- I am here
dbn.py:206 ... (some other text)
...
(something I don't know) <-- I want to jump here
Vim是否有快速跳转到dbp.py:206
继承结束的地方?
答案 0 :(得分:5)
/ ^\(dbn.py\)\@!
匹配第一行,该行不以转义括号内的文本开头。
如果您想快速访问此内容,可以添加一个vmap
,它会将视觉上选定的文字拉出来并将其插入正确的位置(但首先使用escape(var, '/')
将其删除。
试试这个vmap:vmap <leader>n "hy<Esc>/^\(<C-R>=escape(@h,'/')<CR>\)\@!<CR>
在视觉上选择要跳过的文本时按n,您应该放在下一行不以选择开头的位置。
答案 1 :(得分:1)
我只是编写一个函数来选择相同的行:
nnoremap vii :call SelectIdenticalLines()<CR>
fun! SelectIdenticalLines()
let s = getline('.')
let n = line('.')
let i = n
let j = n
while getline(i)==s && i>0
let i-=1
endwhile
while getline(j)==s && j<=line('$')
let j+=1
endwhile
call cursor(i+1, 0)
norm V
call cursor(j-1, 0)
endfun
当你想挤出几条空线时很方便。 它在emacs中的作用类似于 C-x C-o 。
答案 2 :(得分:0)
一个选项是转到文件的底部并向后搜索您想要的最后一行,然后按下一行:
G ?^dbn\.py:206?+1