編集中の行の現在の行番号を出力するキーマッピングはありますか? または、さらに良いことに、キー マッピングの出力に基づいて式を作成できますか?
1
行番号を取得して、編集中の現在のテキストに追加したい。
「出力」とはどういう意味ですか?できるよ:
:echo line(".") + 1
現在の行番号に1を加えたものを表示するには、次のようにキーストロークをバインドできますmap
。
:noremap <F1> :echo line(".") + 1<cr>
実際にデータをバッファに挿入するには:
:noremap <F1> :execute "normal! i" . ( line(".") + 1 )<cr>
Ctrl+G行番号と、カーソルがある列さえも教えてくれます。それをテキストとしてドキュメントに出力するつもりなら、私が知っていることではありません。
答えは別の答えへのコメントで@ZyXによって与えられました:
<C-r>
この種のもののために挿入モードになっています:
nnoremap <F1> i<C-r>=line('.')+1<CR><Esc>
で現在のカーソル位置の視覚的な幅を取得できますvirtcol('.')
; 式レジスタを介してバッファに挿入します。たとえば、挿入モードで<C-R>=virtcol('.')<CR>
行内に全角文字<Tab>
や印字不可文字が含まれる場合は、文字数とは異なる幅となりますのでご注意ください。