Skip to content
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

端末機能で起動したzshにクリップボードから貼り付けると~が入ったり最後の文字が大文字になったりする #1117

Closed
itchyny opened this issue Nov 14, 2017 · 8 comments

Comments

@itchyny
Copy link

itchyny commented Nov 14, 2017

質問・報告の内容

  • echo hello をクリップボードに入れておく
  • :terminalzsh を起動
  • クリップボード貼り付け
  • echo hello~ となる
  • bindkey -v とする
  • クリップボード貼り付け
  • echo hellO となる

Vimのバージョン

8.0.1290

( :version で確認できます)

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

  • macOS Sierra
  • zsh 5.4.2
  • zshrcは空です
  • Terminal.app (iTerm2でも再現する)

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

なし

その他

  • 貼り付けてすぐにenterを押すとhelloと表示されます (正常に見える)
  • :terminal bash on Vim on zsh on Terminal.app では再現しません。zshと相性が悪い?
@hattya
Copy link
Member

hattya commented Nov 14, 2017

~ が入るのは Bracketed Paste Mode に対応した端末エミュレーターならどれでも再現できそうです。

RLogin で Linux に SSH 接続して試してみたら再現しました。

@hattya
Copy link
Member

hattya commented Nov 14, 2017

:terminal zsh で起動後、unset zle_bracketed_paste とすれば ~ は入らなくなりますが…。

@itchyny
Copy link
Author

itchyny commented Nov 15, 2017

再現確認ありがとうございます。以下の設定でひとまず運用しようと思います。

if ! [ -z "$VIM" ]; then
  unset zle_bracketed_paste
fi

@ichizok
Copy link
Member

ichizok commented Nov 15, 2017

CSI [201~ の送信タイミングがおかしいようです。
ペースト内容の最後に付加されるべきところ、ペースト後のユーザ入力と一緒に送信され、echo back で分断されて単なる ~ になっていました。

in << CSI [200~ echo hello
out>> echo hello
in << CSI [201~
out>> ~

https://github.com/vim/vim/compare/master...ichizok:fix/terminal-bracketed-paste.diff

@itchyny
Copy link
Author

itchyny commented Nov 15, 2017

ありがとうございます。パッチをあてて問題直っていることを確認しました。すごい。

@ichizok
Copy link
Member

ichizok commented Nov 16, 2017

vim/vim#2341
投げました。

@ichizok
Copy link
Member

ichizok commented Nov 16, 2017

8.0.1299
vim/vim@a42ad57

@itchyny
Copy link
Author

itchyny commented Nov 16, 2017

ありがとうございました!

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

No branches or pull requests

3 participants