レコーディング中に gd を使うと以降のキー入力が普通に入力した場合と同じ結果とならない #1029

Closed
slowkin opened this Issue Feb 18, 2017 · 2 comments

Comments

Projects
None yet
3 participants
@slowkin

slowkin commented Feb 18, 2017

質問・報告の内容

レコーディング中に gd を使うと以降のキー入力が普通に入力した場合と同じ結果とならない

同じ結果になってくれるとうれしいなあ

再現例

実行前


hello world

hello world


  1. hの位置にカーソルを置く

  2. レコーディングする(qa)
    wgdcwjapan�0jj
            ↑
           [ESC]

  3. リピートする(@A)

実行後


hello japan

hello world


想定結果


hello japan

hello japan


※ただし、実行前の2つ目の hello の h からリピートすると
1つ目の内容は書き変わる(cw以降が動作している)

だけど、1つ目のh位置からリピートするとcw以降が動作しない

Vimのバージョン

8.0.0134(KaoriYaVim)

OSの種類/ディストリ/バージョン

Windows 7 Professional 64bit

使用している or 関係していそうなプラグイン

なし

その他

なし

@todashuta

This comment has been minimized.

Show comment
Hide comment
@todashuta

todashuta Feb 18, 2017

Member

Issue登録ありがとうございます。この動作は仕様です。

下記の2つが関係しています。

  • レジスタはマッピングと同様に実行される (:help @)
  • マッピングでエラーが発生したら残りは実行されない (:help map-error)

今回の場合 gd の対象が見つからずエラーが発生していますので、 cw 以降が動作しないという結果になります。
(一方、実行前の2つ目のhelloのhからリピートする場合だと gd の対象が見つかるので、エラーとならず cw 以降が動作する)

Member

todashuta commented Feb 18, 2017

Issue登録ありがとうございます。この動作は仕様です。

下記の2つが関係しています。

  • レジスタはマッピングと同様に実行される (:help @)
  • マッピングでエラーが発生したら残りは実行されない (:help map-error)

今回の場合 gd の対象が見つからずエラーが発生していますので、 cw 以降が動作しないという結果になります。
(一方、実行前の2つ目のhelloのhからリピートする場合だと gd の対象が見つかるので、エラーとならず cw 以降が動作する)

@slowkin

This comment has been minimized.

Show comment
Hide comment
@slowkin

slowkin Feb 19, 2017

ご説明ありがとうございます!
エラーが発生するとそれ以降は実行されないのですね。
納得しました。

slowkin commented Feb 19, 2017

ご説明ありがとうございます!
エラーが発生するとそれ以降は実行されないのですね。
納得しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment