質問
私は挿入モードに入らずに空白行を挿入したいと私は、このキーマッピングを使用します:
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>