Set-PSReadLineOption
PSReadLine でのコマンド ライン編集の動作を カスタマイズします。
構文
Set-PSReadLineOption
[-EditMode <EditMode>]
[-ContinuationPrompt <String>]
[-HistoryNoDuplicates]
[-AddToHistoryHandler <System.Func`2[System.String,System.Object]>]
[-CommandValidationHandler <System.Action`1[System.Management.Automation.Language.CommandAst]>]
[-HistorySearchCursorMovesToEnd]
[-MaximumHistoryCount <Int32>]
[-MaximumKillRingCount <Int32>]
[-ShowToolTips]
[-ExtraPromptLineCount <Int32>]
[-DingTone <Int32>]
[-DingDuration <Int32>]
[-BellStyle <BellStyle>]
[-CompletionQueryItems <Int32>]
[-WordDelimiters <String>]
[-HistorySearchCaseSensitive]
[-HistorySaveStyle <HistorySaveStyle>]
[-HistorySavePath <String>]
[-AnsiEscapeTimeout <Int32>]
[-PromptText <String[]>]
[-ViModeIndicator <ViModeStyle>]
[-ViModeChangeHandler <ScriptBlock>]
[-PredictionSource <PredictionSource>]
[-PredictionViewStyle <PredictionViewStyle>]
[-Colors <Hashtable>]
[<CommonParameters>]
説明
このコマンドレットは Set-PSReadLineOption
、コマンド ラインを 編集するときに PSReadLine モジュールの動作をカスタマイズします。 PSReadLine の設定を表示するには、次を使用しますGet-PSReadLineOption
。
このコマンドによって設定されたオプションは、現在のセッションにのみ適用されます。 オプションを保持するには、プロファイル スクリプトに追加します。 詳細については、シェル環境のabout_Profilesとカスタマイズを参照してください。
例
例 1: 前景色と背景色を設定する
次の使用例は、灰色の背景に緑色の前景テキストを含むコメント トークンを表示するように PSReadLine を設定します。 この例で使用したエスケープ シーケンスでは、32 は前景色を表し、47 は背景色を表します。
Set-PSReadLineOption -Colors @{ "Comment"="`e[32;47m" }
前景色のみを設定できます。 たとえば、コメント トークンの明るい緑色の前景テキストの色: "Comment"="`e[92m"
例 2: ベル スタイルを設定する
この例では、 PSReadLine は、ユーザーの注意を必要とするエラーまたは条件に応答します。 BellStyle は、1221 Hz で 60 ミリ秒の可聴ビープ音を発するように設定されています。
Set-PSReadLineOption -BellStyle Audible -DingTone 1221 -DingDuration 60
Note
この機能は、プラットフォーム上のすべてのホストで機能しない場合があります。
例 3: 複数のオプションを設定する
Set-PSReadLineOption
では、ハッシュ テーブルを使用して複数のオプションを設定できます。
$PSReadLineOptions = @{
EditMode = "Emacs"
HistoryNoDuplicates = $true
HistorySearchCursorMovesToEnd = $true
Colors = @{
"Command" = "#8181f7"
}
}
Set-PSReadLineOption @PSReadLineOptions
ハッシュ テーブルは $PSReadLineOptions
、キーと値を設定します。 Set-PSReadLineOption
では、キーと値@PSReadLineOptions
を使用して PSReadLine オプションを更新します。
PowerShell コマンド ラインで、 $PSReadLineOptions
ハッシュ テーブル名を入力するキーと値を表示できます。
例 4: 複数の色オプションを設定する
この例では、1 つのコマンドで複数の色の値を設定する方法を示します。
Set-PSReadLineOption -Colors @{
Command = 'Magenta'
Number = 'DarkGray'
Member = 'DarkGray'
Operator = 'DarkGray'
Type = 'DarkGray'
Variable = 'DarkGreen'
Parameter = 'DarkGreen'
ContinuationPrompt = 'DarkGray'
Default = 'DarkGray'
}
例 5: 複数の種類の色の値を設定する
この例では、PSReadLine に表示されるトークンの色を設定する方法について、3 つの異なるメソッドを示します。
Set-PSReadLineOption -Colors @{
# Use a ConsoleColor enum
"Error" = [ConsoleColor]::DarkRed
# 24 bit color escape sequence
"String" = "$([char]0x1b)[38;5;100m"
# RGB value
"Command" = "#8181f7"
}
例 6: ViModeChangeHandler を使用して Vi モードの変更を表示する
この例では、Vi モードの変更に応じて、カーソル変更 VT エスケープを出力します。
function OnViModeChange {
if ($args[0] -eq 'Command') {
# Set the cursor to a blinking block.
Write-Host -NoNewLine "`e[1 q"
} else {
# Set the cursor to a blinking line.
Write-Host -NoNewLine "`e[5 q"
}
}
Set-PSReadLineOption -ViModeIndicator Script -ViModeChangeHandler $Function:OnViModeChange
OnViModeChange 関数は、Vi モード (insert と command) のカーソル オプションを設定します。
ViModeChangeHandler は、プロバイダーをFunction:
使用して OnViModeChange をスクリプト ブロック オブジェクトとして参照します。
詳細については、「about_Providers」を参照してください。
例 7: HistoryHandler を使用して履歴に追加されたコマンドをフィルター処理する
次の例は、git コマンドを AddToHistoryHandler
履歴に保存しないようにする方法を示しています。
$ScriptBlock = {
Param([string]$line)
if ($line -match "^git") {
return $false
} else {
return $true
}
}
Set-PSReadLineOption -AddToHistoryHandler $ScriptBlock
scriptblock は、コマンドgit
が $false
. これは、AddToHistory 列挙型を返すのSkipAdding
と同じ効果があります。 コマンドが開始 git
しない場合、ハンドラーは戻 $true
り、PSReadLine はコマンドを履歴に保存します。
例 8: CommandValidationHandler を使用して、実行前にコマンドを検証する
この例では、CommandValidationHandler パラメーターを使用して、実行前にコマンドを検証する方法を示します。 この例では、具体的には、コマンドgit
のチェックをサブ コマンドcmt
に置き換え、完全な名前commit
に置き換えます。 これにより、サブコマンドの短縮形エイリアスを作成できます。
# Load the namespace so you can use the [CommandAst] object type
using namespace System.Management.Automation.Language
Set-PSReadLineOption -CommandValidationHandler {
param([CommandAst]$CommandAst)
switch ($CommandAst.GetCommandName()) {
'git' {
$gitCmd = $CommandAst.CommandElements[1].Extent
switch ($gitCmd.Text) {
'cmt' {
[Microsoft.PowerShell.PSConsoleReadLine]::Replace(
$gitCmd.StartOffset, $gitCmd.EndOffset - $gitCmd.StartOffset, 'commit')
}
}
}
}
}
# This checks the validation script when you hit enter
Set-PSReadLineKeyHandler -Chord Enter -Function ValidateAndAcceptLine
例 9: PromptText パラメーターの使用
解析エラーが発生すると、 PSReadLine はプロンプトの一部を赤で変更します。 PromptText パラメーターは、PSReadLine にプロンプト文字列の一部を赤にするよう指示します。
たとえば、次の例では、現在のパスの後に大きい文字 (>
) とスペースが続くプロンプトを作成します。
function prompt { "PS $pwd> " }`
Set-PSReadLineOption -PromptText '> ' # change the '>' character red
Set-PSReadLineOption -PromptText '> ', 'X ' # replace the '>' character with a red 'X'
最初の文字列は、解析エラーが発生したときに赤にするプロンプト文字列の部分です。 2 番目の文字列は、解析エラーが発生したときに使用する代替文字列です。
パラメーター
-AddToHistoryHandler
PSReadLine 履歴に コマンドを追加する方法を制御する ScriptBlock を 指定 します。
ScriptBlock は、コマンド ラインを入力として受け取ります。
ScripBlock は、AddToHistoryOption 列挙型のメンバー、それらのメンバーの 1 つの文字列名、またはブール値を返す必要があります。 次の一覧では、使用可能な値とその効果について説明します。
MemoryAndFile
- コマンドを履歴ファイルと現在のセッションに追加します。MemoryOnly
- 現在のセッションのみの履歴にコマンドを追加します。SkipAdding
- 現在のセッションの履歴ファイルにコマンドを追加しないでください。$false
- 値SkipAdding
が .$true
- 値MemoryAndFile
が .
Type: | Func<T,TResult>[System.String,System.Object] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AnsiEscapeTimeout
このオプションは、入力がリダイレクトされるときに Windows に固有です 。たとえば、以下で実行 tmux
されている場合や screen
、
Windows でリダイレクトされた入力では、多くのキーがエスケープ文字で始まる文字のシーケンスとして送信されます。 1 つのエスケープ文字の後にさらに多くの文字と有効なエスケープ シーケンスを区別することはできません。
前提は、端末がユーザーが入力したよりも速く文字を送信できることです。 PSReadLine は、完全なエスケープ シーケンスを受け取ったことを終了する前に、このタイムアウトを待機します。
入力時にランダムまたは予期しない文字が表示される場合は、このタイムアウトを調整できます。
Type: | Int32 |
Position: | Named |
Default value: | 100 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BellStyle
さまざまなエラーおよびあいまいな条件に PSReadLine がどのように応答するかを指定します。
有効な値は次のとおりです。
- 可聴:短いビープ音。
- ビジュアル: テキストが短時間点滅します。
- なし: フィードバックはありません。
Type: | BellStyle |
Position: | Named |
Default value: | Audible |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Colors
Colors パラメーターは、PSReadLine で使用されるさまざまな色を指定します。
引数はハッシュ テーブルで、キーは要素を指定し、値は色を指定します。 詳細については、「about_Hash_Tables」を参照してください。
色には、ConsoleColor の値 (たとえば[ConsoleColor]::Red
)、有効な ANSI エスケープ シーケンスのいずれかを指定できます。 有効なエスケープ シーケンスは、ターミナルによって異なります。 PowerShell 5.0 では、赤いテキストのエスケープ シーケンスの例を次に示 $([char]0x1b)[91m
します。 PowerShell 6 以降では、同じエスケープ シーケンスです `e[91m
。 次の型を含む他のエスケープ シーケンスを指定できます。
PSReadLine 2.2.0 でのカスタマイズを ListView
サポートするために、次の 2 つの色設定が追加されました。
ListPredictionColor - 先頭
>
文字と末尾のソース名の色を設定します (例[History]
: . 既定では、前景色として使用DarkYellow
されます。ListPredictionSelectedColor - リスト アイテムが選択されていることを示す色を設定します。 既定では、背景色として使用
DarkBlack
されます。256 色
24 ビットカラー
前景、背景、またはその両方
逆、太字
ANSI カラー コードの詳細については、Wikipedia の記事 「ANSI エスケープ コード」を参照してください。
有効なキーは次のとおりです。
- ContinuationPrompt: 継続プロンプトの色。
- 強調: 強調色。 たとえば、履歴を検索するときの一致するテキストなどです。
- エラー: エラーの色。 たとえば、プロンプトに表示されます。
- 選択: メニュー選択または選択したテキストを強調表示する色。
- 既定値: 既定のトークンの色。
- コメント: コメント トークンの色。
- キーワード: キーワード (keyword) トークンの色。
- 文字列: 文字列トークンの色。
- 演算子: 演算子トークンの色。
- 変数: 可変トークンの色。
- コマンド: コマンド トークンの色。
- パラメーター: パラメーター トークンの色。
- 型: トークンの種類の色。
- 数値: トークンの色を指定します。
- メンバー: メンバー名トークンの色。
- InlinePrediction: 予測候補のインライン ビューの色。
- ListPrediction: 先頭
>
文字と予測ソース名の色。 - ListPredictionSelected: リスト ビューで選択した予測の色。
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CommandValidationHandler
ValidateAndAcceptLine から呼び出される ScriptBlock を指定します。 例外がスローされた場合、検証は失敗し、エラーが報告されます。
例外をスローする前に、検証ハンドラーはエラーの時点にカーソルを置いて、修正を容易にすることができます。 検証ハンドラーは、コマンド ラインを変更して、一般的な文字体裁エラーを修正することもできます。
ValidateAndAcceptLine は、機能しないコマンドで履歴が乱雑にならないようにするために使用されます。
Type: | Action<T>[CommandAst] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CompletionQueryItems
プロンプトなしで表示される完了項目の最大数を指定します。
表示する項目の数がこの値を超える場合、 PSReadLine は完了項目を 表示する前に yes/no を求めます。
Type: | Int32 |
Position: | Named |
Default value: | 100 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ContinuationPrompt
複数行の入力が入力されたときに、後続の行の先頭に表示される文字列を指定します。 既定値は二重より大きい記号 (>>
) です。 空の文字列が有効です。
Type: | String |
Position: | Named |
Default value: | >> |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DingDuration
BellStyle が可聴に設定されている場合のビープ音の継続時間を指定します。
Type: | Int32 |
Position: | Named |
Default value: | 50ms |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DingTone
BellStyle が可聴に設定されている場合のビープ音の音色を Hertz (Hz) で指定します。
Type: | Int32 |
Position: | Named |
Default value: | 1221 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EditMode
コマンド ライン編集モードを指定します。 このパラメーターを使用すると、次によって Set-PSReadLineKeyHandler
設定されたすべてのキー バインドがリセットされます。
有効な値は次のとおりです。
- Windows: キー バインドは、PowerShell、cmd、および Visual Studio をエミュレートします。
- Emacs: キー バインディングは Bash または Emacs をエミュレートします。
- Vi: キー バインドは Vi をエミュレートします。
現在構成されている EditMode のキー バインドを表示するために使用Get-PSReadLineKeyHandler
します。
Type: | EditMode |
Position: | Named |
Default value: | Windows |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ExtraPromptLineCount
余分な行の数を指定します。
プロンプトが複数行にまたがる場合は、このパラメーターの値を指定します。 このオプションは、PSReadLine が出力を表示した後にプロンプトを表示するときに、追加の行を使用できるようにする場合に使用します。 たとえば、 PSReadLine は入力候補の一覧を返します。
このオプションは、以前のバージョンの PSReadLine よりも少なく必要ですが、関数を使用する場合に InvokePrompt
便利です。
Type: | Int32 |
Position: | Named |
Default value: | 0 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HistoryNoDuplicates
このオプションは、取り消し動作を制御します。 重複するコマンドは履歴ファイルに引き続き追加されます。 このオプションを設定すると、コマンドを呼び出すときに最新の呼び出しのみが表示されます。 繰り返しコマンドが履歴に追加され、呼び戻し中の順序が保持されます。 ただし、通常、履歴を呼び出したり検索したりするときに、コマンドを複数回表示する必要はありません。
既定では、グローバル PSConsoleReadLineOptions オブジェクトの HistoryNoDuplicates プロパティは True
. プロパティ値を変更するには、SwitchParameter の値を次-HistoryNoDuplicates:$False
のように指定する必要があります。 SwitchParameter-HistoryNoDuplicates
のみを使用して戻True
すことができます。
次のコマンドを使用して、プロパティ値を直接設定できます。
(Get-PSReadLineOption).HistoryNoDuplicates = $False
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HistorySavePath
履歴を保存するファイルへのパスを指定します。 Windows または Windows 以外のプラットフォームを実行しているコンピューターは、ファイルを異なる場所に格納します。 ファイル名は、たとえばConsoleHost_history.txt
変数に$($Host.Name)_history.txt
格納されます。
このパラメーターを使用しない場合、既定のパスは次のようになります。
Windows
$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\$($Host.Name)_history.txt
Windows 以外
$env:XDG_DATA_HOME/powershell/PSReadLine/$($Host.Name)_history.txt
$HOME/.local/share/powershell/PSReadLine/$($Host.Name)_history.txt
Type: | String |
Position: | Named |
Default value: | A file named $($Host.Name)_history.txt in $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine on Windows and $env:XDG_DATA_HOME/powershell/PSReadLine or $HOME/.local/share/powershell/PSReadLine on non-Windows platforms |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HistorySaveStyle
PSReadLine で履歴を保存する方法 を 指定します。
有効な値は次のとおりです。
SaveIncrementally
: 各コマンドの実行後に履歴を保存し、PowerShell の複数のインスタンス間で共有します。SaveAtExit
: PowerShell の終了時に履歴ファイルを追加します。SaveNothing
: 履歴ファイルは使用しないでください。
Note
HistorySaveStyle をSaveNothing
同じセッションで後で設定SaveIncrementally
した場合、PSReadLine はセッションで以前に実行したすべてのコマンドを保存します。
Type: | HistorySaveStyle |
Position: | Named |
Default value: | SaveIncrementally |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HistorySearchCaseSensitive
ReverseSearchHistory や HistorySearchBackward などの関数では、履歴検索で大文字と小文字が区別されることを指定します。
既定では、グローバル PSConsoleReadLineOptions オブジェクトの HistorySearchCaseSensitive プロパティは False
. この SwitchParameter を使用すると、プロパティ値 True
が . プロパティ値を元に戻すには、SwitchParameter の値を次-HistorySearchCaseSensitive:$False
のように指定する必要があります。
次のコマンドを使用して、プロパティ値を直接設定できます。
(Get-PSReadLineOption).HistorySearchCaseSensitive = $False
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HistorySearchCursorMovesToEnd
検索を使用して履歴から読み込むコマンドの末尾にカーソルが移動することを示します。
このパラメーターを$False
設定すると、上矢印または下矢印を押したときの位置にカーソルが再メイン。
既定では、グローバル PSConsoleReadLineOptions オブジェクトの HistorySearchCursorMovesToEnd プロパティは False
. この SwitchParameter を使用して、プロパティ値 True
を . プロパティ値を元に戻すには、SwitchParameter の値を次-HistorySearchCursorMovesToEnd:$False
のように指定する必要があります。
次のコマンドを使用して、プロパティ値を直接設定できます。
(Get-PSReadLineOption).HistorySearchCursorMovesToEnd = $False
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumHistoryCount
PSReadLine 履歴に保存 するコマンドの最大数を 指定します。
PSReadLine の履歴は、PowerShell 履歴とは別です。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumKillRingCount
キル リングに格納されるアイテムの最大数を指定します。
Type: | Int32 |
Position: | Named |
Default value: | 10 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PredictionSource
予測候補を取得する PSReadLine のソースを指定します。
有効な値は次の通りです。
- なし - 予測 IntelliSense 機能を無効にします (既定)。
- 履歴 - 予測 IntelliSense 機能を有効にし、PSReadLine 履歴を唯一のソースとして使用します。
- プラグイン - 予測 IntelliSense 機能を有効にし、唯一のソースとしてプラグイン (
CommandPrediction
) を使用します。 この値は PSReadLine 2.2.0 で追加されました - HistoryAndPlugin - 予測 IntelliSense 機能を有効にし、履歴とプラグインの両方をソースとして使用します。 この値は PSReadLine 2.2.0 で追加されました
Type: | Microsoft.PowerShell.PredictionSource |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PredictionViewStyle
予測テキストの表示スタイルを設定します。 既定値は InlineView です。
- InlineView - 現在のスタイル 。魚殻や zsh と同様です。 (既定値)。
- ListView - 候補はドロップダウン リストに表示され、ユーザーは UpArrow と DownArrow を使用して選択できます。
このパラメーターは PSReadLine 2.2.0 で追加されました
Type: | Microsoft.PowerShell.PredictionViewStyle |
Position: | Named |
Default value: | InlineView |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PromptText
このパラメーターは、PromptText プロパティの値を設定します。 既定値は "> "
です。
PSReadLine は、プロンプト関数を分析して、プロンプトの一部の色のみを変更する方法を決定します。 この分析は 100% 信頼できません。 PSReadLine が予期しない方法でプロンプトを変更する場合は、このオプションを使用します。 末尾の空白文字を含めます。
このパラメーターの値には、1 つの文字列または 2 つの文字列の配列を指定できます。 最初の文字列は、解析エラーが発生したときに赤に変更するプロンプト文字列の部分です。 2 番目の文字列は、解析エラーが発生したときに使用する代替文字列です。
Type: | String[] |
Position: | Named |
Default value: | > |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ShowToolTips
可能な入力候補を表示すると、入力候補の一覧にヒントが表示されます。
既定では、このオプションは有効になっています。 このオプションは、以前のバージョンの PSReadLine では既定では有効になっていませんでした。 無効にするには、このオプションを $False
.
既定では、グローバル PSConsoleReadLineOptions オブジェクトの ShowToolヒント プロパティは True
. この SwitchParameter を使用すると、プロパティ値 True
が . プロパティ値を変更するには、SwitchParameter の値を次-ShowToolTips:$False
のように指定する必要があります。
次のコマンドを使用して、プロパティ値を直接設定できます。
(Get-PSReadLineOption).ShowToolTips = $False
Type: | SwitchParameter |
Position: | Named |
Default value: | True |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ViModeChangeHandler
ViModeIndicator が設定Script
されている場合、指定されたスクリプト ブロックはモードが変更されるたびに呼び出されます。 スクリプト ブロックには、型 ViMode
の引数が 1 つ用意されています。
このパラメーターは PowerShell 7 で導入されました。
Type: | ScriptBlock |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ViModeIndicator
このオプションは、現在 の Vi モードのビジュアル インジケーターを設定します。 挿入モードまたはコマンド モード。
有効な値は次のとおりです。
- なし: インジケーターはありません。
- プロンプト: プロンプトの色が変更されます。
- カーソル: カーソルのサイズが変更されます。
- スクリプト: ユーザー指定のテキストが出力されます。
Type: | ViModeStyle |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WordDelimiters
ForwardWord や KillWord などの関数の単語を区切る文字を指定します。
Type: | String |
Position: | Named |
Default value: | ;:,.[]{}()/\|^&*-=+'"--- |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
None
このコマンドレットは、出力を返しません。
関連リンク
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示