Vim:現在の行の上に空行を挿入します(開いていない、つまり挿入モードに入らない)


21

行を開かずに(挿入モードに入らずに)現在の行の上に新しい行を挿入する方法はありますか?つまり、「O」と似ていますが、開きません。


2
「ラインを開く」とはどういう意味ですか?
マッテオリヴァ

「ラインを開く」とは、通常モードから挿入モードに移行することを意味します。これは、「O」(oh)を押すと発生します。
tmadsen

回答:



29

リクエストの定義はOです。

論理的には、上記の新しい行を挿入するときになりますO

カーソルの前に挿入するには:i
後:a
行の前(ホーム):I
行の最後に追加します。A

一番近いのはI、カーソルを行の先頭に置くことです。


たぶん私は明確ではなかった。シナリオは次のとおりです。通常モードで、通常モードのままで、現在使用している行の上に空白行を挿入したい。「O」を押すと、挿入モードになります。たぶんそれを行う方法はありませんし、それは大丈夫です、ちょうど私が尋ねると思いました:)
tmadsen

3
ちょうどそれをマップ、m`O+Esc`
ジョシュK

1
良いアイデア、それを考慮していなかった。:noremap <リーダー> O O <ESC>をしました
tmadsen

2tmadsen:この<yourkey> O <ESC>
Dzung Nguyen

9
:h append()

カーソルは移動せず、必要な数の行(空かどうかに関係なく)を挿入でき、以前の位置マークは変更されません。

call append(line('.')-1, '')

ええ、それは+1です!/ meは彼のvimrcを変更します
akira

スクリプトについては、いくつかの利点がありました。そうしないと入力するのは少しやり過ぎです。
リュックエルミット

設定方法に関係なく機能するソリューションの場合は+1formatoptions
ミカスミス

5

任意のキーまたはキーシーケンスをマップできます。

m`O<ESC>``

これにより、現在の行の上に空白行が挿入され、カーソル位置を変更せずに通常モードが維持されます。


Altキーを押しながらOにこれをマッピングするためのコマンドは次のようになりので:マップ<モリブデン> m`O <ESC> ``
K・ロビンソン

そのとおりです。
マッテオリヴァ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.