[過去ログ] Vim Part28 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
9
(8): 2018/05/19(土)19:47 AAS
質問です。

1: Mac でペーストするときに <b0> が入ることがあります。これを避ける方法はないでしょうか?

2: ペーストで <b0> が入ってしまうと、それ以降、すべての入力が文字として扱われてしまい編集ができなくなります。esc や ctrl-c で抜け出ることもできません。この状況でノーマルモードに戻るにはどうしたらいいでしょうか?

環境:
Mac high siera
Vim 8.1 (ターミナル版, not MacVim。homebrew でインスコ)

関連する設定
set clipboard=unnamed

再現方法:
chrome で開いたウェッブページの適当な文字をコピーして cmd+v でペースト。
すべてのケースで <b0> が混入する訳じゃないんですが稀に発生します。その場合は同じ箇所をコピーするとペースト時に必ず再現します。

解決するために調べたこと(試行):
1: register * が変更されたタイミングを検知して不要な文字を削除できないか。
au TextYankPost で試したけど、変更が検知できませんでした。

2: cmd+v を検知してどうにかできないか。
cmd+v は MacVim GUI版なら <D- で拾えるっぽいのはわかった。でも、ターミナル版では使えない模様。

試行2はまだ充分に試してはいないので、これから再度試してみます。
11: 9 2018/05/19(土)22:11 AAS
試行2 の件
MacVim で <D- で Command キーの入力が拾えるのは確認できました。
が、システムでショートカットが設定されているのは拾えないらしく <M-v <M-a <M-h> は拾えませんでした。
残念。

それと、再現可能なページが見つかりました。
このページの「Setting」のサンプルコード[*1]を、1行目 let g:nodejs... &#12316; 4行目の } のところまでをコピー(cmd+v)して、terminal版の vim に cmd+v で貼り付けると末尾に <b0> が付与されてその後操作不能なになります。
https://github.com/myhere/vim-nodejs-complete#settings

*1 ↓この部分
> let g:nodejs_complete_config = {
> \ 'js_compl_fn': 'jscomplete#CompleteJS',
> \ 'max_node_compl_len': 15
> \}

ただし、現象はterminal版では再現しますが、GUI版(MacVim)では再現しません。

わかりにくかったらすみません。

環境情報(追加):
MacVim: 8.0 (2016 Sep 12, compiled Apr 17 2018 10:25:37)
vim: 8.1 (2018 May 17, compiled May 18 2018 13:18:41)
12: 9 2018/05/19(土)22:23 AAS
> <M-v <M-a <M-h>
<D-v <D-a <D-h>の間違いです

> 1行目 let g:nodejs... &#12316; 4行目の }
波線が数値文字参照になってしまいました
13: 9 2018/05/19(土)22:35 AAS
連投すみません。

neovim でも再現しないですね。
15
(1): 2018/05/20(日)01:47 AAS
>>9
普通のSierra + Terminal + Vim 8.1 (Homevrew) で Chrome からコード4行コピーしてみたけどゴミ文字も入らないし、普通に編集続けられるな

他のブラウザからのコピー、vimの類じゃない他のエディタへのペースト時はどうなの

Cmd-V でターミナルにペーストしたときはどうだろう
$ echo “<Cmd-V>” | hexdump -C とかでゴミが見えないか

<b0>が何のコードかしらないけど、実際の特殊文字のコードなのか、表示がバグって結果とし<b0>と表示されるのか
もし実際にあるコードなら ~/.vim 以下で
$ ag “<b0>”
とかで <b0> を何かゴニョゴニョやってるプラグインが見つからないかな
16: 9 2018/05/20(日)05:57 AAS
>14
ご指摘ありがとうございます。
チェックしました。

> vimを初期化しても起きるのか
起きなかった。

> MacVimでも起きるのか
起きなかった。

> 別のブラウザでも起きるのか
再現する。
Safari, Firefox からペーストしても発生した。

> 一旦テキストエディタを経由しても起きるのか
発生する
Mac に標準で入っている Notes を経由しましたが発生しました。
17: 9 2018/05/20(日)06:01 AAS
>>14
確認ありがとうございます。

> 他のブラウザからのコピー、vimの類じゃない他のエディタへのペースト時はどうなの
他だと発生したことはないですね。

> Cmd-V でターミナルにペーストしたときはどうだろう
> $ echo “<Cmd-V>” | hexdump -C とかでゴミが見えないか
普通のターミナルだったり、 :term した時は発生しないですね。

> <b0>が何のコードかしらないけど、実際の特殊文字のコードなのか、表示がバグって結果とし<b0>と表示されるのか
> もし実際にあるコードなら ~/.vim 以下で
> $ ag “<b0>”
> とかで <b0> を何かゴニョゴニョやってるプラグインが見つからないかな
ありませんでした。
18
(1): 9 2018/05/20(日)06:11 AAS
原因がわかりました。
showmatch オプションを設定していると現象が発生しますね。

> :set showmatch

vim のソース を見て見たけど、残念ながら私には原因が追求できなさそうです。
たぶんここですよね。
https://github.com/vim/vim/blob/master/src/search.c#L2608
22: 2018/05/20(日)06:44 AAS
>>21

>>9 です。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.201s*