回答:
あなたがすべきことは、一連のコマンドに特定のキーのimapを作成することです。この場合、コマンドはあなたを通常モードにドロップし、現在の単語を削除してから挿入に戻します:
:imap <C-d> <C-[>diwi
imap <C-d> <C-o>diw
動作します。また、<Esc>がほぼ常に行う、取り消しポイントは作成されません。
ノーマルモード:
daw : delete the word under the cursor
caw : delete the word under the cursor and put you in insert mode
da)
してきましたci)
が、これについて考えたことはありません!
.vimrc
:そうのようなファイル nmap <Leader>d daw
やnmap <Leader>c caw
aw
はオブジェクト選択の一例です。ビジュアルモードでオブジェクトの選択を試して、オブジェクトの効果を確認できます。vimdoc.sourceforge.net
それだけだと思います daw
daw - delete a word
a
がコマンドであることを知ってAppend text after the cursor [count] times.
いますが、どうやってdaw
働くのですか?
d
は、「削除」することを指示します。'a'は一種のパラメーターであり、区切り文字を含む削除を指定します。最後に、 'w'はparameter
、word
ユニットが削除されることを指定します。
dw
とはdaw
?
dw
、カーソルから単語の末尾までが削除されますが、単語daw
全体とスペースが削除されます。diw
周囲の空白に触れずに単語全体を削除します。
以下は通常モードで機能します:ほとんどの削除では通常モードである必要があるというDan Olsonの回答に同意します。詳細は以下をご覧ください。
カーソルが単語内にある場合:単語内
diw
を削除するには(スペースを含まない)
daw
、単語の周囲を削除するには(次の単語の前にスペースを含める)。
カーソルが単語の先頭にある場合は、を押しdw
ます。
これは、通常の移動数を加算することで乗算できます。たとえば、2wは2ワード前に移動するため、d2wは2ワードを削除します。
挿入モード^ w
Vimでの移動にhjklを使用するアイデアは、ホームローに手を置いたほうが生産性が高いということです。単語の終わりに^ wを使用すると、単語をすばやく削除できます。挿入モードになっている場合は、テキストを入力し、矢印キーを使用して、家の行の哲学に反した単語の真ん中で終わります。
通常モードで単語を変更したい場合は、単語を完全に変更したい場合c
はd
(削除)ではなく(変更)を使用し、i
押して戻る必要なく、挿入モードに再度入ることができます。タイピングに。
のような意味ですか?
dw
dw
ハイフンやその他の句読点を過ぎても削除されません。
それは問題だった挿入モードでそれを行うための組み込みの方法があるようには見えません。他の回答のいくつかは、通常モードに対して正しいだけでなく、カスタムマッピングを作成して挿入モードで機能を追加できることを指摘しています。
正直なところ、ほとんどの削除は通常モードで行う必要があります。^ Wについてはきちんと把握していますが、escよりも通常モードにして、より強力な削除コマンドを自由に使えるようにしたい状況を考えることができるかどうかはわかりません。
この点で、Vimは他の多くのエディター(TextMateを含む)とは大きく異なります。生産的に使用している場合は、挿入モードであまり時間をかけないことに気付くでしょう。
単語を削除する方法はたくさんあるので、それらを説明しましょう。
あなたが編集すると仮定します:
foo-bar quux
カーソルが「バー」の「a」の上にあるときにコマンドを呼び出します。
foo-bquux # dw: letters then spaces right of cursor
foo-quux # daw: letters on both sides of cursor then spaces on the right
foo- quux # diw: letters on both sides of cursor
foo-bquux # dW: non-whitespace then spaces right of cursor
quux # daW: non-whitespace on both sides of cursor then spaces on the right
quux # diW: non-whitespace on both sides of cursor
受け入れられた答えは単語の削除を繰り返すことを試みるとき失敗します、代わりにこの解決策を試してください:
" delete current word, insert and normal modes
inoremap <C-BS> <C-O>b<C-O>dw
noremap <C-BS> bdw
CTRL-BackSpaceをマップし、通常モードでも動作します。