ViVi SPR System build 0025 project:
Mail: Pass:
[ 新規アカウント作成 | パスワード忘れ ]
[ 新規SPR | SPR一覧 | コメント一覧 | statistics | 最新ビルド:2.10.106 | crash履歴 | SPR DB 一覧 | ユーザ一覧 | 使い方 | レポートの書き方 ] [ ViVi Home ]
一覧表示: [ New | Pend | Open | Reopen | Fixed | NPTF | 問題優先順 | 問題vote順 | 優先順 | vote順 | 重要度順 | Ref,ToDo | Help不備 | 対処順 ]
[ 前のSPR | 次のSPR ]
SPR#0074 0 point voted
状態:Close結果:対処優先度:C重要度:E
報告日:09/02/24build:2.09.08OS:WinXPby:オニオン
概要:Pによるペースト後のカーソル位置は、ペースト文字列の末尾に移動してほしい
詳細:■ 操作前状態:
以下の文字列をヤンク
12345

■ 具体的操作:
適当な位置で P(shift+p) でペーストする。

■ 操作後状態:
カーソル位置がペースト開始位置のままで、ペースト文字列末尾に移動しない。

■ 期待する状態:
pでのペースト同様、
ペースト文字列の末尾(12345の'5')に、カーソルが移動して欲しい。

pとPで、動作が異なるので編集を続行しづらいです。

■ 補足:
標準viはどのような動作かは知りませんが、Vimでは p/P どちらも末尾に移動します。
添付画像:
point:20対処日:09/02/24build:2.09.09close日:09/02/25
#1 つだ (09/02/24 07:17:55)
基本的に Vim の仕様にあわせる気はまったくありません。
オリジナルの vi の動作がそうであるか、末尾に移動する合理的で納得可能な理由があれば対処を検討します。
#2 つだ (09/02/24 07:37:39)
今は手元にオリジナルviがないので nvi のソース(http://www.bostic.com/vi/)を読んでいるのですが、
p/P では単にバッファ文字列をカーソル前後に挿入しているみたいです。
ってことは、挿入文字列の最後にカーソル移動する動作みたいです。

余談ですが、私はずっと p/P は paste の略だと思っていましたが、nvi のソースでは put と書いてありました。
しらんかった @@
#3 つだ (09/02/24 07:47:55)
ViVi のソースを見ると P の場合は意図的に最初にカーソル移動しています。
何か理由があったのかもしれませんが、すぐには分からないです・・・

クリップボードからのペーストは常にカーソルがペーストされた文字列の末尾に移動します。
他のアプリでもそうみたいですし、統一性を考えると常にペーストされた文字列の末尾に移動した方がよさそうに思えてきました。
#4 オニオン (09/02/24 09:41:33)
> 末尾に移動する合理的で納得可能な理由があれば対処を検討します。

こういう時に不便に感じています。

void Function(int b);
↑この関数の第一引数に、コピーした int new_arg をペーストして、カンマとスペースを挿入する。

≪編集後イメージ≫
void Function(int new_arg, int b);

pの場合は、"("にカーソルを合わせて、"pa,<space>"でできますが、
Pの場合は、"("の後の"i"にカーソルを合わせて "P"を押下するが、
以下のようになり、カーソルは"new_arg"の先頭位置なので編集を続行できません。

void Function(int new_argint b);
(カーソルは"new_arg"の先頭位置なので、区切りまで移動する術がない。カーソル移動か "fi"・・・)

ということで、末尾移動を希望します。
#5 つだ (09/02/24 10:53:46)
>>4 詳しい説明ありがとうございます。
某友人に Sun OS に添付されている /bin/vi で試してもらったところ、ペーストの最後に移動するようです。
というわけで、本件は問題とみなして対処することにします。
(ViVi で、わざわざ先頭にカーソル移動するようにコーディングしていたかは謎のまま)
#6 オニオン (09/02/24 22:59:39)
対応ありがとうございます。

2.09.09で確認しましたが、p ではペースト文字列の末尾に来ますが、
P とクリップボードからのペーストではペースト文字列の末尾の次の文字にカーソルが来ます。

p と動作は合わせられないのでしょうか?
#7 オニオン (09/02/25 09:41:13)
SPR#0487@ViVi28xx に登録してありましたので、本件クローズします。
ありがとうございました。
[ 新規SPR | SPR一覧 | コメント一覧 | statistics | 最新ビルド:2.10.106 | crash履歴 | SPR DB 一覧 | ユーザ一覧 | 使い方 | レポートの書き方 ] [ ViVi Home ]
一覧表示: [ New | Pend | Open | Reopen | Fixed | NPTF | 問題優先順 | 問題vote順 | 優先順 | vote順 | 重要度順 | Ref,ToDo | Help不備 | 対処順 ]


優先度:重要度(Severity):
 A:最優先で対処  A:通常操作でのクラッシュ・無限ループ
 B:必ず対処  B:特殊な条件、環境でのクラッシュ・無限ループ、非常に重要な動作不良
 C:原則対処  C:機能が動作しないなどの普通の動作不良
 D:簡単であれば対処 D:些細な動作不良で、簡単な代替手段があるもの
 E:NPTF候補 E:ミススペルや誤った文章など、機能そのものの動作に影響を与えない、さほど重要ではないもの
  H:ヘルプの不備
  M:メモリリーク
  P:パフォーマンス問題
  R:リファクタリング
  T:機能強化要望(Enhancement)、ToDo
  X:XT(eXtreme Toolkit)に由来する問題