5

現在、Vimで新しい行に移動すると(または通常モードで「p」または「o」を押すと)、素敵な自動インデントが表示されます。これは、何も追加せずに挿入モードを終了すると消えます。

ファントム文字を挿入してから削除するなど、挿入モードを終了する前に何かをバインドする方法はありますか?

4

3 に答える 3

2

ああ、2日前のようにこの正確なことについて読んだばかりですが、どこにあるのか思い出せません。

とにかく、コツは直後に文字を入力し<CR>てすぐに削除することです。それを行うにはたくさんの方法があります:

<CR>a<Esc>x
<CR>a<C-w>
<CR>a<BS>

--EDIT--

VimはVimであり、おそらく他にも多くの方法があります。

これらを自動化するには、.vimrcにマッピングを追加する必要があります。

inoremap <CR> <CR>a<BS> " insert mode mapping for <CR>
nnoremap o oa<BS>       " normal mode mapping for o

しかし、そのようなデフォルトを上書きする必要があるかどうかはわかりません。

--EDIT--

ただし、Vimのデフォルトの動作で厄介なのは、<Tab><Tab><Tab><Tab>インデントされていない行にテキストを実際に入力する前にいくつかの操作を行う必要がある==場合や、完了したとき、または次の言語の自動インデントルールに依存する場合です<CR>

これを使用<S-S>すると、正しいインデントレベルでINSERTモードになります。

于 2011-09-27T16:22:33.180 に答える
2

インデントに関して線を変更するには、いずれかccまたは通常モードで試してください。Sファントムキャラクターは必要ありません。

:h cc
:h S
于 2011-09-27T21:58:34.197 に答える
1

次のようなマッピングでうまくいくはずです。

imap <esc> <esc>:s/\s\+$//<CR>

escこれは、挿入モードで押すと末尾の文字を削除します。

于 2011-09-27T15:56:22.580 に答える