New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vi 互換モードで、行頭の 1 文字を c や s で変更する時に $ が表示されない #147

Closed
hdk1983 opened this Issue Jan 26, 2012 · 16 comments

Comments

Projects
None yet
4 participants
@hdk1983

hdk1983 commented Jan 26, 2012

vi 互換モードで、行頭の 1 文字 (タブを除く) を c や s で変更する時に、$ が表示されません。
cpoptions の $ がセットされている時に発生します。

再現手順:

  1. vim -u NONE で vim を起動する
  2. :set cpoptions+=$
  3. hoge という文字列を入力する (ahoge[ESC])
  4. 行頭の 1 文字だけを c または s で置き換えて編集する (0s, 0cl, 0lc0 など)
    期待される画面表示:
$oge

実際の画面表示:

oge

ソースを見ると、$ のカーソル位置が行頭になった時に、$ を表示していない時との区別がつかなくなるようです。パッチを作ってみました。
http://code.google.com/r/hdk1983-vim/source/detail?r=2791bbcc1ae2bcf990dc1927389df2faab2d0b5a

@ynkdir

This comment has been minimized.

Show comment
Hide comment
@ynkdir

ynkdir Jan 26, 2012

Member

ありがとうございます。
とりあえず動作確認しました。
LGTM

Member

ynkdir commented Jan 26, 2012

ありがとうございます。
とりあえず動作確認しました。
LGTM

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Jan 26, 2012

Member

こんばんは。GJ!
以下、個人的な意見です。
dollar_vcolの有効無効を表すフラグ変数(例えば)dollar_vcol_validを用意してそれで制御するようにした方がアドホック感がなくなって良いかなと思いました。

Member

h-east commented Jan 26, 2012

こんばんは。GJ!
以下、個人的な意見です。
dollar_vcolの有効無効を表すフラグ変数(例えば)dollar_vcol_validを用意してそれで制御するようにした方がアドホック感がなくなって良いかなと思いました。

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Jan 26, 2012

Member

個人的な意見の続きです。

もしくは
現状、「dollar_vcolが0の時無効。 >0 で有効」
となっているのを、実際は0も有効な値なので、
「dollar_vcolが-1の時無効。 >=0 で有効」
として修正するとかでしょうか。

Member

h-east commented Jan 26, 2012

個人的な意見の続きです。

もしくは
現状、「dollar_vcolが0の時無効。 >0 で有効」
となっているのを、実際は0も有効な値なので、
「dollar_vcolが-1の時無効。 >=0 で有効」
として修正するとかでしょうか。

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Jan 26, 2012

Member

@hdk1983 awesome. LGTM

私も @h-east さんの後者の意見と同じです。
あともし英語での報告をお願いするとしたら可能ですか?

Member

mattn commented Jan 26, 2012

@hdk1983 awesome. LGTM

私も @h-east さんの後者の意見と同じです。
あともし英語での報告をお願いするとしたら可能ですか?

@hdk1983

This comment has been minimized.

Show comment
Hide comment
@hdk1983

hdk1983 Jan 27, 2012

@h-east さん:
ソースコード中に if (dollar_vcol) あるいは if (dollar_vcol == 0) のように 0 かどうかの判定を行う部分が多数あり、修正内容をシンプルにわかりやすくするためこのような修正にしました。Vim のソースコードを見てこのくらいは許容されるのかなと感じたためでもあります。

@mattn さん:
私が英語で報告してもいいのですが、Vim のヘビーユーザーでもないので、慣れている方が代わりにサクッと報告してくれるとうれしいです。

hdk1983 commented Jan 27, 2012

@h-east さん:
ソースコード中に if (dollar_vcol) あるいは if (dollar_vcol == 0) のように 0 かどうかの判定を行う部分が多数あり、修正内容をシンプルにわかりやすくするためこのような修正にしました。Vim のソースコードを見てこのくらいは許容されるのかなと感じたためでもあります。

@mattn さん:
私が英語で報告してもいいのですが、Vim のヘビーユーザーでもないので、慣れている方が代わりにサクッと報告してくれるとうれしいです。

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Jan 27, 2012

Member

@hdk1983 パッチファイルの先頭に名前を乗せる事になりますが、Hideki EIRAKUさんでよろしいですか?

Member

mattn commented Jan 27, 2012

@hdk1983 パッチファイルの先頭に名前を乗せる事になりますが、Hideki EIRAKUさんでよろしいですか?

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Jan 27, 2012

Member

@hdk1983
dollar_vcolの値の有効範囲が間違っていたのでそれは全体的に修正したほうが良いと思います。
(そうしないと、後でこの部分のソースをみた人々が迷い易くなってしまうので。)
変更箇所が1000カ所あったらさすがに考えますが、20カ所なら(私なら)サクっと修正しちゃいます。

どのようなpatchにしても取り込む判断をするのはもちろんBram氏なので、私の意見はあくまでも参考意見程度に受け取って下さいー。

Member

h-east commented Jan 27, 2012

@hdk1983
dollar_vcolの値の有効範囲が間違っていたのでそれは全体的に修正したほうが良いと思います。
(そうしないと、後でこの部分のソースをみた人々が迷い易くなってしまうので。)
変更箇所が1000カ所あったらさすがに考えますが、20カ所なら(私なら)サクっと修正しちゃいます。

どのようなpatchにしても取り込む判断をするのはもちろんBram氏なので、私の意見はあくまでも参考意見程度に受け取って下さいー。

@hdk1983

This comment has been minimized.

Show comment
Hide comment
@hdk1983

hdk1983 Jan 27, 2012

@mattn さん: はい、だいじょうぶです。ありがとうございます。

@h-east さん: たしかに 1 画面におさまる程度の量ですので、この際すべて修正するほうがいいという考え方もありますね。どちらでも、Vim ハッカーの方におまかせします。

hdk1983 commented Jan 27, 2012

@mattn さん: はい、だいじょうぶです。ありがとうございます。

@h-east さん: たしかに 1 画面におさまる程度の量ですので、この際すべて修正するほうがいいという考え方もありますね。どちらでも、Vim ハッカーの方におまかせします。

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Jan 28, 2012

Member

@h-east どっちにするかはお任せします。

Member

mattn commented Jan 28, 2012

@h-east どっちにするかはお任せします。

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east
Member

h-east commented Jan 28, 2012

@mattn
patch書きました。
https://gist.github.com/1694734

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Jan 28, 2012

Member

@h-east ++

あざす。動作確認して報告しときます。
作業してもらって申し訳ないすが hdk1983 さんのクレジットにさせて貰います。

Member

mattn commented Jan 28, 2012

@h-east ++

あざす。動作確認して報告しときます。
作業してもらって申し訳ないすが hdk1983 さんのクレジットにさせて貰います。

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Jan 28, 2012

Member

@mattn OKっす。

Member

h-east commented Jan 28, 2012

@mattn OKっす。

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Jan 28, 2012

Member

報告ed

https://groups.google.com/d/topic/vim_dev/jerD6deKGH4/discussion

ヘタな英語が心苦しい...

Member

mattn commented Jan 28, 2012

報告ed

https://groups.google.com/d/topic/vim_dev/jerD6deKGH4/discussion

ヘタな英語が心苦しい...

@hdk1983

This comment has been minimized.

Show comment
Hide comment
@hdk1983

hdk1983 Jan 29, 2012

ありがとうございます!

hdk1983 commented Jan 29, 2012

ありがとうございます!

@h-east h-east closed this Feb 5, 2012

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Feb 5, 2012

Member

Patch 7.3.426で取り込まれました!
(dollar_vcolの無効判定方法がちょびっとだけ変わったけど^^)
https://groups.google.com/d/topic/vim_dev/6P7TjEfbb5s/discussion

Member

h-east commented Feb 5, 2012

Patch 7.3.426で取り込まれました!
(dollar_vcolの無効判定方法がちょびっとだけ変わったけど^^)
https://groups.google.com/d/topic/vim_dev/6P7TjEfbb5s/discussion

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn
Member

mattn commented Feb 6, 2012

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