現在のv3では、絵文字は2つのセルを占めるようです。 矢印キーを使用すると、1つではなく2つのセルがジャンプします。 削除すると、2つのセルもクリアされます。
これをmacOS / bashで再現することはできません。 絵文字の幅を微調整(1以外にする)しない限り、このようなことが起こるとは思いません。 再現手順の詳細があれば便利です。
複製(OSX、MacOS High Sierra)
私がいるので、あなたはすでにMacOS High Sierraを使用していますか? node-ptyにも関連している可能性があります- Terminal.app
に絵文字を挿入すると、絵文字の後にスペースが自動的に追加されます。さらに、そのスペースを選択できません。HighSierraが脅威を与えるようです。倍幅の文字として..
MacOS HighSierraのTerminal.app
これは、ターミナルで絵文字をより良くしようとしたハイシエラのことかもしれませんか? Electronアプリでのレンダリングが台無しになっているため、現在更新できません。
私はアップグレードしたとは言いたくありませんが、今ではこれらすべてのクロムベースのアプリでレンダリングの不具合がたくさん発生しています😤
ええ、シエラでも同様のことが起こったので、更新する前にフィードバックを注意深く追跡しました。
Terminal.appには、適切なワイド文字として扱われる素晴らしい絵文字エクスペリエンスがあることに気付きました。可能であれば、おそらくそれを行うことができます😄
UAX#11東アジアの幅、リビジョン31で絵文字_東アジアの幅_(倍幅)が変更され、wchar.hのwcswidth
は文字列の幅を返します。 macOS HighSierraがアップデートをサポートしていたと思います。
xterm.jsのwcwidth
内のsrc/CharWidth.ts
は、まだサポートしていません。
@ mandel59情報をありがとう!
@ mandel59この問題は絵文字に固有のものだと思います
参照: https :
VS Codeの問題: https :
どうやらフラッターランはこの振る舞いを示しています
これは、Flutterを必要としない(ただしDartは必要です)、私たちが見ているものの小さなDart再現です:
import 'dart:async';
import 'dart:io';
// Windows console font has a limited set of Unicode characters.
final _animation = Platform.isWindows
? <String>[r'-', r'\', r'|', r'/']
: <String>['🌕', '🌖', '🌗', '🌘', '🌑', '🌒', '🌓', '🌔'];
final _backspace = '\b' * _animation[0].length;
main() {
int ticks = 0;
void update(Timer timer) {
if (ticks % 50 == 0) {
stdout.write('\nDoing thing... ');
}
stdout.write('$_backspace${_animation[ticks++ % _animation.length]}');
}
new Timer.periodic(const Duration(milliseconds: 100), update);
}
.dart
ファイルとして保存し、 dart xxx.dart
ます。 このコードは、この文字に対して2つのバックスペースを発行します。これは、標準のmacOS端末では文字を正しく削除します。 ただし、VS Codeターミナルでは、絵文字と別の文字をバックスペースします。 絵文字が行の先頭にある場合、これは何もしませんが、そうでない場合、レンダリングは文字によってゆっくりと左に忍び寄ります(そしてアイコンの右半分はその後に残ります)。
バックスペースから* _animation[0].length
を削除して、常に単一のバックスペースを実行すると、VS Codeターミナルでは正常に機能しますが、macOSターミナルでは十分なバックスペースがなくなります(したがって、衛星は右に忍び寄ります) !)。
https://github.com/Microsoft/vscode/issues/60470に記載されているように、ヘブライ語/アラビア語にも適用され
Ubuntu18.04のVSCode1.31.1でこの問題が発生します。
矢印キーを使用してコマンド履歴を上下にスクロールすると、実行したいコマンドに到達したときにその可能性が判読できないように、アーティファクトが取得されます。
また、アーティファクトを取得した後、表示される内容がxtermのメモリにあるものと異なるため、コマンドの編集にはバグがあります。
手順:
プロンプトに絵文字を追加しました:
上矢印を1回押して、コマンドnpm i
プロンプトに追加された不正なn
注意してください。
.bashrc
のプロンプトから絵文字を削除し、用語を再読み込みすると、バグはなくなります。
まず最初に、皆さんの素晴らしい仕事に感謝したいと思います。
macOS Mojave10.14.3のVSCode1.31.1でも同じことが起こります。 @juliuseckerが言及したn
ことは、彼が説明したとおり、私にも起こります。
@juliuseckerが述べたのと同じバグがあります。
VSCodeバージョン1.33.1(1.33.1)51b0b28134d51361cf996d2f0a1c698247aeabd8 2019-04-11T08:14:39.158Z
システムバージョン:macOS 10.14.4(18E226)
zsh 5.7.1(x86_64-apple-darwin17.7.0)
VSCodeとPowershellで再現するのは非常に簡単です。
"Emoji Normal"
"😊1😊2😊3😊4"
"Emoji with Padding Spaces - What it should look like"
"😊 1😊 2😊 3😊 4"
このアイテムに割り当てられているリソースはありますか? この問題のスレッドで見られるように、他のプログラム(Hyperなど)で多くのリグレッションが発生しているように見えます。
@Tyriarはい、ちょっと、pplがそれに直面する可能性が最も高い例です-emojis:smile_cat:
これは問題をよく説明していて、#1709が解決策を詳しく調べているので、両方を開いたままにしておくと思います。さらに、これには多数の賛成票があります。
次のバージョンのWindows10で複製できます。
上記は、VScodeビルトインターミナルで見たものです。
上記は、テキストファイル内の同じテキストをVSコードで開いたときに表示されるものです。
問題は約2年になりますが、更新はありますか?
@jerchはすぐにそれを手にATMをたくさん持っています。 このための大きな障害の1つは、現在リリースされている新しいアドオンシステムでした。
https://github.com/xtermjs/xterm.js/issues/1709は基本的に同じものであり、問題のカウントダウンを維持したいので、終了します。
最も参考になるコメント
Ubuntu18.04のVSCode1.31.1でこの問題が発生します。
矢印キーを使用してコマンド履歴を上下にスクロールすると、実行したいコマンドに到達したときにその可能性が判読できないように、アーティファクトが取得されます。
また、アーティファクトを取得した後、表示される内容がxtermのメモリにあるものと異なるため、コマンドの編集にはバグがあります。
手順:
プロンプトに絵文字を追加しました:
上矢印を1回押して、コマンド
npm i
プロンプトに追加された不正な
n
注意してください。.bashrc
のプロンプトから絵文字を削除し、用語を再読み込みすると、バグはなくなります。