57

編集中の行の現在の行番号を出力するキーマッピングはありますか? または、さらに良いことに、キー マッピングの出力に基づいて式を作成できますか?

1行番号を取得して、編集中の現在のテキストに追加したい。

4

6 に答える 6

51

「出力」とはどういう意味ですか?できるよ:

:echo line(".") + 1

現在の行番号に1を加えたものを表示するには、次のようにキーストロークをバインドできますmap

:noremap <F1> :echo line(".") + 1<cr>

実際にデータをバッファに挿入するには:

:noremap <F1> :execute "normal! i" . ( line(".") + 1 )<cr>
于 2013-02-21T01:31:00.273 に答える
51

Ctrl+G行番号と、カーソルがある列さえも教えてくれます。それをテキストとしてドキュメントに出力するつもりなら、私が知っていることではありません。

于 2013-02-21T01:27:11.667 に答える
7

答えは別の答えへのコメントで@ZyXによって与えられました:

<C-r>この種のもののために挿入モードになっています:

nnoremap <F1> i<C-r>=line('.')+1<CR><Esc>

于 2013-02-23T22:07:59.157 に答える
2

で現在のカーソル位置の視覚的な幅を取得できますvirtcol('.'); 式レジスタを介してバッファに挿入します。たとえば、挿入モードで<C-R>=virtcol('.')<CR>

行内に全角文字<Tab>や印字不可文字が含まれる場合は、文字数とは異なる幅となりますのでご注意ください。

于 2013-02-21T07:50:29.270 に答える