次のような、同じパターンを共有する多くの行を含む大きなファイルがあります。
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
dbp.py:206
Vim で一連の処理が終了する場所にジャンプする簡単な方法はありますか?
次のような、同じパターンを共有する多くの行を含む大きなファイルがあります。
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
dbp.py:206
Vim で一連の処理が終了する場所にジャンプする簡単な方法はありますか?
/^\(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-oemacsのように動作します。
1 つのオプションは、ファイルの最後に移動し、目的の最後の行を後方に検索してから、1 つ下に移動することです。
G ?^dbn\.py:206?+1