質問

私は挿入モードに入らずに空白行を挿入したいと私は、このキーマッピングを使用します:

nomap go o <esc>

これは、空白行を作成していますが、いくつかの奇妙な行動を紹介します。私は、スマートインデントやオートインデントが設定されています。新しい行がインデントに従いますが、自動的に冗長空白を削除しても手動で行うものの、それらを削除しません。また、カーソルが各時間である単一の空白を追加します。

この動作を説明すると誰もが任意の洞察力を持っている?

役に立ちましたか?

解決

Vimはあなたのマッピングコマンドを書く方法と、の非常にのリテラルである - それはの<ESC>を行う前に、それは実際にあなたのマッピングでスペースを処理しています。言い換えれば、あなたのマッピングは、この行います:

nnoremap go o<SPACE><ESC>

あなたはそれを変更する必要があります:

nnoremap go o<ESC>

そして、あなたは、マッピングで余分なスペースを持っていないことを確認してください!

他のヒント

私は「あまりにも多くのPHP」に同意します。 これは私の.vimrcから関連するセクションです。

nnoremap <A-o> o<ESC>k
nnoremap <A-O> O<ESC>j

私はあなたが戻って(いない元の文字ではあるが)元の行にカーソルを取得するので、それは速いと思います。

いつものように、のvimのwiki の便利なヒントがあります:<のhref = "HTTPを://vim.wikia.com/wiki/Quickly_adding_and_deleting_empty_lines」REL = "nofollowをnoreferrer">すばやく追加および削除、空行がを。トリックは、新しい行を追加する前にset paste、その後set nopasteすることです。また、これはカーソルの位置を覚えて、あなたがいた場所に戻ってジャンプするマークを設定します。

nnoremap go :set paste<CR>m`o<Esc>``:set nopaste<CR>
nnoremap gO :set paste<CR>m`O<Esc>``:set nopaste<CR>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top