我有一个大文件,其中有很多行共享相同的模式,如下所示:
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
结束的地方的方法?
我有一个大文件,其中有很多行共享相同的模式,如下所示:
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
结束的地方的方法?
/^\(dbn.py\)\@!
匹配不以转义括号内的文本开头的第一行。
如果您想快速访问它,您可以添加一个vmap
猛拉视觉选择的文本并将其插入到正确的位置(但首先使用escape(var, '/')
.
试试这个 vmap:vmap <leader>n "hy<Esc>/^\(<C-R>=escape(@h,'/')<CR>\)\@!<CR>
在视觉上选择你想跳过的文本时按 n,你应该被放置在下一个不以选择开头的第一行。
我只是写了一个函数来选择相同的行:
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
当你想挤几个空行时,它很方便。它的行为就像C-x C-o在 emacs 中一样。
一种选择是转到文件底部并向后搜索所需的最后一行,然后向下搜索:
G ?^dbn\.py:206?+1