Compartilhar via


PSReadLine

about_PSReadLine

DESCRIÇÃO BREVE

O PSReadLine fornece uma experiência aprimorada de edição de linha de comando no console do PowerShell.

DESCRIÇÃO LONGA

O PSReadLine fornece uma experiência avançada de edição de linha de comando para o console do PowerShell. Ele fornece:

  • Coloração de sintaxe da linha de comando
  • Uma indicação visual de erros de sintaxe
  • Uma melhor experiência de várias linhas (edição e histórico)
  • Associações de chave personalizáveis
  • Modos Cmd e Emacs
  • Muitas opções de configuração
  • Preenchimento de estilo bash (opcional no modo Cmd, padrão no modo Emacs)
  • Emacs ianque/kill ring
  • Movimentação de "palavra" baseada em token do PowerShell e encerramento

As funções a seguir estão disponíveis na classe [Microsoft.PowerShell.PSConsoleReadLine].

Movimento do cursor

EndOfLine

  • Cmd: <End>
  • Emacs: <End> ou <Ctrl+E>

Se a entrada tiver várias linhas, vá para o final da linha atual ou, se já estiver no final da linha, vá para o final da entrada. Se a entrada tiver uma única linha, vá para o final da entrada.

BeginningOfLine

  • Cmd: <Home>
  • Emacs: <Home> ou <Ctrl+A>

Se a entrada tiver várias linhas, vá para o início da linha atual ou, se já estiver no início da linha, vá para o início da entrada. Se a entrada tiver uma única linha, vá para o início da entrada.

NextLine

  • Cmd: não associado
  • Emacs: não associado

Mova o cursor para a próxima linha se a entrada tiver várias linhas.

PreviousLine

  • Cmd: não associado
  • Emacs: não associado

Mova o cursor para a linha anterior se a entrada tiver várias linhas.

ForwardChar

  • Cmd: <RightArrow>
  • Emacs: <RightArrow> ou <Ctrl+F>

Mova o cursor um caractere para a direita. Isso pode mover o cursor para a próxima linha de entrada de várias linhas.

BackwardChar

  • Cmd: <LeftArrow>
  • Emacs: <LeftArrow> ou <Ctrl+B>

Mova o cursor um caractere para a esquerda. Isso pode mover o cursor para a linha anterior de entrada de várias linhas.

ForwardWord

  • Cmd: não associado
  • Emacs: <Alt+F>

Mova o cursor para a frente até o final da palavra atual ou, se estiver entre palavras, até o final da próxima palavra. Você pode definir caracteres delimitadores de palavras com:

Set-PSReadLineOption -WordDelimiters `<string of delimiter characters>`

NextWord

  • Cmd: <Ctrl+RightArrow>
  • Emacs: não associado

Mova o cursor para a frente até o início da próxima palavra. Você pode definir caracteres delimitadores de palavras com:

Set-PSReadLineOption -WordDelimiters `<string of delimiter characters>`

BackwardWord

  • Cmd: <Ctrl+LeftArrow>
  • Emacs: <Alt+B>

Mova o cursor de volta para o início da palavra atual ou, se estiver entre palavras, o início da palavra anterior. Você pode definir caracteres delimitadores de palavras com:

Set-PSReadLineOption -WordDelimiters `<string of delimiter characters>`

ShellForwardWord

  • Cmd: não associado
  • Emacs: não associado

Assim como ForwardWord, exceto os limites de palavras são definidos pelos limites de token do PowerShell.

ShellNextWord

  • Cmd: não associado
  • Emacs: não associado

Assim como NextWord, exceto que os limites de palavras são definidos pelos limites de token do PowerShell.

ShellBackwardWord

  • Cmd: não associado
  • Emacs: não associado

Assim como BackwardWord, exceto os limites de palavra são definidos pelos limites de token do PowerShell.

GotoBrace

  • Cmd: <Ctrl+}>
  • Emacs: não associado

Vá para os parênteses, chaves ou colchetes correspondentes.

Addline

  • Cmd: <Shift-Enter>
  • Emacs: <Shift-Enter>

O prompt de continuação é exibido na próxima linha e PSReadLine aguarda as chaves editarem a entrada atual. Isso é útil para inserir a entrada de várias linhas como um único comando, mesmo quando uma única linha é a entrada completa por si só.

Edição básica

CancelLine

  • Cmd: não associado
  • Emacs: não associado

Cancele toda a edição na linha, deixe a linha de entrada na tela, mas retorne de PSReadLine sem executar a entrada.

RevertLine

  • Cmd: <ESC>
  • Emacs: <Alt+R>

Reverte toda a entrada desde que a última entrada foi aceita e executada. Isso é equivalente a usar o comando Desfazer até que não haja mais nada para desfazer.

BackwardDeleteChar

  • Cmd: <Backspace>
  • Emacs: <Backspace> ou <Ctrl+H>

Exclua o caractere antes do cursor.

DeleteChar

  • Cmd: <Delete>
  • Emacs: <Delete>

Exclua o caractere sob o cursor.

DeleteCharOrExit

  • Cmd: não associado
  • Emacs: <Ctrl+D>

Como DeleteChar, a menos que a linha esteja vazia, nesse caso, saia do processo.

AcceptLine

  • Cmd: <Enter>
  • Emacs: <Enter> ou <Ctrl+M>

Tente executar a entrada atual. Se a entrada atual estiver incompleta (por exemplo, há um parêntese de fechamento ausente, colchete ou aspas), o prompt de continuação será exibido na próxima linha e PSReadLine aguardará as chaves editarem a entrada atual.

AcceptAndGetNext

  • Cmd: não associado
  • Emacs: <Ctrl+O>

Como AcceptLine, mas depois que a linha for concluída, comece a editar a próxima linha do histórico.

ValidateAndAcceptLine

  • Cmd: não associado
  • Emacs: não associado

Como AcceptLine, mas executa validação adicional, incluindo:

  • Verifica se há erros de análise adicionais
  • Valida se todos os nomes de comando foram encontrados
  • Se você estiver executando o PowerShell 4.0 ou mais recente, validará os parâmetros e os argumentos

Se houver erros, a mensagem de erro será exibida e não será aceita nem adicionada ao histórico, a menos que você corrija a linha de comando ou execute AcceptLine ou ValidateAndAcceptLine novamente enquanto a mensagem de erro é exibida.

BackwardDeleteLine

  • Cmd: <Ctrl+Home>
  • Emacs: não associado

Exclua o texto do início da entrada para o cursor.

ForwardDeleteLine

  • Cmd: <Ctrl+End>
  • Emacs: não associado

Exclua o texto do cursor até o final da entrada.

SelectBackwardChar

  • Cmd: <Shift+LeftArrow>
  • Emacs: <Shift+LeftArrow>

Ajuste a seleção atual para incluir o caractere anterior.

SelectForwardChar

  • Cmd: <Shift+RightArrow>
  • Emacs: <Shift+RightArrow>

Ajuste a seleção atual para incluir o próximo caractere.

SelectBackwardWord

  • Cmd: <Shift+Ctrl+LeftArrow>
  • Emacs: <Alt+Shift+B>

Ajuste a seleção atual para incluir a palavra anterior.

SelectForwardWord

  • Cmd: não associado
  • Emacs: <Alt+Shift+F>

Ajuste a seleção atual para incluir a próxima palavra usando ForwardWord.

SelectNextWord

  • Cmd: <Shift+Ctrl+RightArrow>
  • Emacs: não associado

Ajuste a seleção atual para incluir a próxima palavra usando NextWord.

SelectShellForwardWord

  • Cmd: não associado
  • Emacs: não associado

Ajuste a seleção atual para incluir a próxima palavra usando ShellForwardWord.

SelectShellNextWord

  • Cmd: não associado
  • Emacs: não associado

Ajuste a seleção atual para incluir a próxima palavra usando ShellNextWord.

SelectShellBackwardWord

  • Cmd: não associado
  • Emacs: não associado

Ajuste a seleção atual para incluir a palavra anterior usando ShellBackwardWord.

SelectBackwardsLine

  • Cmd: <Shift+Home>
  • Emacs: <Shift+Home>

Ajuste a seleção atual para incluir do cursor até o início da linha.

Selecionar Linha

  • Cmd: <Shift+End>
  • Emacs: <Shift+End>

Ajuste a seleção atual para incluir do cursor até o final da linha.

SelectAll

  • Cmd: <Ctrl+A>
  • Emacs: não associado

Selecione a linha inteira. Move o cursor para o final da linha.

SelfInsert

  • Cmd: <a>, <b>, ...
  • Emacs: <a>, <b>, ...

Insira a chave inserida.

Refazer

  • Cmd: <Ctrl+Y>
  • Emacs: não associado

Refazer uma inserção ou exclusão que foi desfeita por Desfazer.

Desfazer

  • Cmd: <Ctrl+Z>
  • Emacs: <Ctrl+_>

Desfazer uma inserção ou exclusão anterior.

Histórico

ClearHistory

  • Cmd: <Alt+F7>
  • Emacs: não associado

Limpa o histórico no PSReadLine. Isso não afeta o histórico do PowerShell.

PreviousHistory

  • Cmd: <UpArrow>
  • Emacs: <UpArrow> ou <Ctrl+P>

Substitua a entrada atual pelo item anterior do histórico PSReadLine.

NextHistory

  • Cmd: <DownArrow>
  • Emacs: <DownArrow> ou <Ctrl+N>

Substitua a entrada atual pelo próximo item do histórico PSReadLine.

ForwardSearchHistory

  • Cmd: <Ctrl+S>
  • Emacs: <Ctrl+S>

Pesquisa encaminhar da linha de histórico atual interativamente.

ReverseSearchHistory

  • Cmd: <Ctrl+R>
  • Emacs: <Ctrl+R>

Pesquisa para trás da linha de histórico atual interativamente.

HistorySearchBackward

  • Cmd: <F8>
  • Emacs: unbound

Substitua a entrada atual pelo item anterior do histórico PSReadLine que corresponde aos caracteres entre o início e a entrada e o cursor.

HistorySearchForward

  • Cmd: <Shift+F8>
  • Emacs: unbound

Substitua a entrada atual pelo próximo item do histórico PSReadLine que corresponde aos caracteres entre o início e a entrada e o cursor.

BeginningOfHistory

  • Cmd: unbound
  • Emacs: <Alt+<>

Substitua a entrada atual pelo último item do histórico PSReadLine.

EndOfHistory

  • Cmd: unbound
  • Emacs: <Alt+>>

Substitua a entrada atual pelo último item no histórico PSReadLine, que é a entrada possivelmente vazia que foi inserida antes de qualquer comando de histórico.

Conclusão da guia

TabCompleteNext

  • Cmd: <Tab>
  • Emacs: unbound

Tente concluir o texto em torno do cursor com a próxima conclusão disponível.

TabCompletePrevious

  • Cmd: <Shift-Tab>
  • Emacs: unbound

Tente concluir o texto em torno do cursor com a próxima conclusão anterior.

Concluir

  • Cmd: unbound
  • Emacs: <Tab>

Tente executar a conclusão no texto ao redor do cursor. Se houver várias conclusões possíveis, o prefixo inequívoco mais longo será usado para conclusão. Se você estiver tentando concluir a conclusão inequívoca mais longa, uma lista de conclusões possíveis será exibida.

  • Cmd: <Ctrl+Space>
  • Emacs: <Ctrl+Space>

Tente executar a conclusão no texto ao redor do cursor. Se houver várias conclusões possíveis, uma lista de conclusões possíveis será exibida e você poderá selecionar a conclusão correta usando as teclas de direção ou Tab/Shift+Tab. Escape e Ctrl+G cancelam a seleção de menu e reverter a linha para o estado antes de invocar MenuComplete.

PossibleCompletions

  • Cmd: unbound
  • Emacs: <Alt+Equals>

Exiba a lista de conclusões possíveis.

SetMark

  • Cmd: unbound
  • Emacs: <Alt+Space>

Marque o local atual do cursor para uso em um comando de edição subsequente.

ExchangePointAndMark

  • Cmd: unbound
  • Emacs: <Ctrl+X,Ctrl+X>

O cursor é colocado no local da marca e a marca é movida para o local do cursor.

Kill/Yankee

Kill e Yankee operam em uma área de transferência no módulo PSReadLine. Há um buffer de anéis chamado kill ring - o texto morto é adicionado ao anel de morte e o puxão copiará o texto da morte mais recente. O YankPop percorre itens no anel de morte. Quando o anel de encerramento estiver cheio, novos itens substituirão os itens mais antigos. Uma operação de encerramento imediatamente precedida por outra operação de encerramento acrescenta o kill anterior, em vez de adicionar um novo item ou substituir um item no anel de encerramento. É assim que você pode cortar uma parte de uma linha, por exemplo, com várias operações KillWord e, em seguida, puxá-las de volta para outro lugar como um único puxão.

KillLine

  • Cmd: unbound
  • Emacs: <Ctrl+K>

Limpe a entrada do cursor até o final da linha. O texto limpo é colocado no anel de encerramento.

BackwardKillLine

  • Cmd: unbound
  • Emacs: <Ctrl+U> ou <Ctrl+X,Backspace>

Limpe a entrada do início da entrada para o cursor. O texto limpo é colocado no anel de encerramento.

KillWord

  • Cmd: unbound
  • Emacs: <Alt+D>

Limpe a entrada do cursor até o final da palavra atual. Se o cursor estiver entre palavras, a entrada será desmarcada do cursor até o final da próxima palavra. O texto limpo é colocado no anel de encerramento.

BackwardKillWord

  • Cmd: unbound
  • Emacs: <Alt+Backspace>

Limpe a entrada do início da palavra atual para o cursor. Se o cursor estiver entre palavras, a entrada será desmarcada do início da palavra anterior para o cursor. O texto limpo é colocado no anel de encerramento.

ShellKillWord

  • Cmd: unbound
  • Emacs: unbound

Assim como KillWord, exceto os limites de palavras são definidos pelos limites de token do PowerShell.

ShellBackwardKillWord

  • Cmd: unbound
  • Emacs: unbound

Assim como BackwardKillWord, exceto os limites de palavra são definidos pelos limites do token do PowerShell.

UnixWordRubout

  • Cmd: unbound
  • Emacs: <Ctrl+W>

Como BackwardKillWord, exceto os limites de palavra são definidos pelo espaço em branco.

KillRegion

  • Cmd: unbound
  • Emacs: unbound

Mate o texto entre o cursor e a marca.

Copiar

  • Cmd: <Ctrl+Shift+C>
  • Emacs: unbound

Copie a região selecionada para a área de transferência do sistema. Se nenhuma região estiver selecionada, copie toda a linha.

CopyOrCancelLine

  • Cmd: <Ctrl+C>
  • Emacs: <Ctrl+C>

Copie o texto selecionado para a área de transferência ou, se nenhum texto estiver selecionado, cancele a edição da linha com CancelLine.

Recortar

  • Cmd: <Ctrl+X>
  • Emacs: unbound

Exclua a região selecionada colocando o texto excluído na área de transferência do sistema.

Ianque

  • Cmd: unbound
  • Emacs: <Ctrl+Y>

Adicione o texto morto mais recentemente à entrada.

YankPop

  • Cmd: unbound
  • Emacs: <Alt+Y>

Se a operação anterior for Ianque ou IanquePop, substitua o texto anteriormente arrancado pelo próximo texto morto do anel de morte.

ClearKillRing

  • Cmd: unbound
  • Emacs: unbound

O conteúdo do anel de encerramento está limpo.

Colar

  • Cmd: <Ctrl+V>
  • Emacs: unbound

Isso é semelhante ao Ianque, mas usa a área de transferência do sistema em vez do anel kill.

[!IMPORTANT]

Ao usar a função Colar , todo o conteúdo do buffer da área de transferência é colado no buffer de entrada do PSReadLine. Em seguida, o buffer de entrada é passado para o analisador do PowerShell. A entrada colada usando o método de colagem de clique com o botão direito do mouse do aplicativo de console é copiada para o buffer de entrada um caractere de cada vez. O buffer de entrada é passado para o analisador quando um caractere de nova linha é copiado. Portanto, a entrada é analisada uma linha por vez. A diferença entre os métodos de colagem resulta em um comportamento de execução diferente.

YankLastArg

  • Cmd: <Alt+.>
  • Emacs: <Alt+.>, <Alt+_>

Insira o último argumento do comando anterior no histórico. As operações repetidas substituem o último argumento inserido pelo último argumento do comando anterior (portanto, Alt+. Alt+. inserirá o último argumento da linha de histórico de segundo a último).

Com um argumento, a primeira vez que YankLastArg se comporta como YankeeNthArg. Um argumento negativo nas chamadas de YankLastArg subsequentes altera a direção ao passar pelo histórico. Por exemplo, se você pressionar Alt+. muitas vezes, você pode digitar Alt+- Alt+. para inverter a direção.

Os argumentos são baseados em tokens do PowerShell.

YankeeNthArg

  • Cmd: unbound
  • Emacs: <Alt+Ctrl+Y>

Insira o primeiro argumento (não o nome do comando) do comando anterior no histórico.

Com um argumento , insira o nº argumento em que 0 normalmente é o comando . Os argumentos negativos começam a partir do final.

Os argumentos são baseados em tokens do PowerShell.

Diversos

Anular

  • Cmd: unbound
  • Emacs: <Ctrl+G>

Anular a ação atual; por exemplo, interrompa a pesquisa de histórico interativo. Não cancela a entrada como CancelLine.

CharacterSearch

  • Cmd: <F3>
  • Emacs: <Ctrl+]>

Leia uma chave e pesquise encaminhamentos para esse caractere. Com um argumento , a pesquisa encaminha para a nª ocorrência desse argumento. Com um argumento negativo, pesquisa para trás.

CharacterSearchBackward

  • Cmd: <Shift+F3>
  • Emacs: <Alt+Ctrl+]>

Como CharacterSearch, mas pesquisa para trás. Com um argumento negativo, pesquisa encaminhamentos.

ClearScreen

  • Cmd: <Ctrl+L>
  • Emacs: <Ctrl+L>

Limpa a tela e exibe o prompt e a entrada atuais na parte superior da tela.

DigitArgument

  • Cmd: unbound
  • Emacs: <Alt+[0..9]>,<any char>,<Alt+->

Usado para passar argumentos numéricos para funções como CharacterSearch ou YankNthArg. Alt+- alterna o argumento para ser negativo/não negativo. Para inserir 80 caracteres '*', você pode digitar Alt+8 Alt+0 *.

CaptureScreen

  • Cmd: unbound
  • Emacs: unbound

Copia linhas selecionadas para a área de transferência em formatos de texto e RTF. Use as teclas de seta para cima/para baixo para a primeira linha a ser selecionada e, em seguida, Shift+UpArrow/Shift+DownArrow para selecionar várias linhas. Depois de selecionar, pressione Enter para copiar o texto. Escape/Ctrl+C/Ctrl+G cancelam a operação, portanto, nada é copiado para a área de transferência.

InvokePrompt

  • Cmd: unbound
  • Emacs: unbound

Apaga o prompt atual e chama a função prompt para redisplay do prompt. Útil para manipuladores de chave personalizados que alteram o estado, como alterar o diretório atual.

WhatIsKey

  • Cmd: <Alt+?>
  • Emacs: <Alt+?>

Leia uma tecla ou acorde e exiba a associação de teclas.

ShowKeyBindings

  • Cmd: <Ctrl+Alt+?>
  • Emacs: <Ctrl+Alt+?>

Mostrar todas as chaves associadas no momento.

ScrollDisplayUp

  • Cmd: <PageUp>
  • Emacs: <PageUp>

Role a tela para cima.

ScrollDisplayUpLine

  • Cmd: <Ctrl+PageUp>
  • Emacs: <Ctrl+PageUp>

Role a tela para cima em uma linha.

ScrollDisplayDown

  • Cmd: <PageDown>
  • Emacs: <PageDown>

Role a tela para baixo em uma tela.

ScrollDisplayDownLine

  • Cmd: <Ctrl+PageDown>
  • Emacs: <Ctrl+PageDown>

Role a tela para baixo em uma linha.

ScrollDisplayTop

  • Cmd: unbound
  • Emacs: <Ctrl+Home>

Role a tela até a parte superior.

ScrollDisplayToCursor

  • Cmd: unbound
  • Emacs: <Ctrl+End>

Role a tela até o cursor.

Associações de chave personalizadas

O PSReadLine dá suporte a associações de chave personalizadas usando o cmdlet Set-PSReadLineKeyHandler. A maioria das associações de chave personalizadas chama uma das funções acima, por exemplo

Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

Você pode associar um ScriptBlock a uma chave. O ScriptBlock pode fazer praticamente tudo o que você quiser. Alguns exemplos úteis incluem

  • editar a linha de comando
  • abrindo uma nova janela (por exemplo, ajuda)
  • alterar diretórios sem alterar a linha de comando

O ScriptBlock recebe dois argumentos:

  • $key - Um objeto [ConsoleKeyInfo] que é a chave que disparou a associação personalizada. Se você associar o mesmo ScriptBlock a várias chaves e precisar executar ações diferentes dependendo da chave, poderá marcar $key. Muitas associações personalizadas ignoram esse argumento.

  • $arg - Um argumento arbitrário. Na maioria das vezes, esse seria um argumento inteiro que o usuário passa das associações de chave DigitArgument. Se a associação não aceitar argumentos, será razoável ignorar esse argumento.

Vamos dar uma olhada em um exemplo que adiciona uma linha de comando ao histórico sem executá-la. Isso é útil quando você percebe que esqueceu de fazer algo, mas não quer inserir novamente a linha de comando que você já inseriu.

$parameters = @{
    Key = 'Alt+w'
    BriefDescription = 'SaveInHistory'
    LongDescription = 'Save current line in history but do not execute'
    ScriptBlock = {
      param($key, $arg)   # The arguments are ignored in this example

      # GetBufferState gives us the command line (with the cursor position)
      $line = $null
      $cursor = $null
      [Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line,
        [ref]$cursor)

      # AddToHistory saves the line in history, but does not execute it.
      [Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory($line)

      # RevertLine is like pressing Escape.
      [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
  }
}
Set-PSReadLineKeyHandler @parameters

Você pode ver muitos outros exemplos no arquivo SamplePSReadLineProfile.ps1 que está instalado na pasta do módulo PSReadLine.

A maioria das associações de chave usa algumas funções auxiliares para editar a linha de comando. Essas APIs estão documentadas na próxima seção.

APIs de suporte à associação de chave personalizada

As funções a seguir são públicas em Microsoft.PowerShell.PSConsoleReadLine, mas não podem ser diretamente associadas a uma chave. A maioria é útil em associações de chave personalizadas.

void AddToHistory(string command)

Adicione uma linha de comando ao histórico sem executá-la.

void ClearKillRing()

Limpe o anel de morte. Isso é usado principalmente para teste.

void Delete(int start, int length)

Exclua caracteres de comprimento desde o início. Esta operação dá suporte a desfazer/refazer.

void Ding()

Execute a ação Ding com base na preferência dos usuários.

void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
  [ref] ParseError[] parseErrors, [ref] int cursor)

Essas duas funções recuperam informações úteis sobre o estado atual do buffer de entrada. O primeiro é mais comumente usado para casos simples. O segundo será usado se a associação estiver fazendo algo mais avançado com o Ast.

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(bool includeBound, bool includeUnbound)

Essa função é usada por Get-PSReadLineKeyHandler e provavelmente não é útil em uma associação de chave personalizada.

Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()

Essa função é usada por Get-PSReadLineOption e provavelmente não é muito útil em uma associação de chave personalizada.

void GetSelectionState([ref] int start, [ref] int length)

Se não houver seleção na linha de comando, -1 será retornado no início e no comprimento. Se houver uma seleção na linha de comando, o início e o comprimento da seleção serão retornados.

void Insert(char c)
void Insert(string s)

Insira um caractere ou cadeia de caracteres no cursor. Esta operação dá suporte a desfazer/refazer.

string ReadLine(runspace remoteRunspace,
  System.Management.Automation.EngineIntrinsics engineIntrinsics)

Esse é o ponto de entrada main para PSReadLine. Ele não dá suporte à recursão, portanto, não é útil em uma associação de chave personalizada.

void RemoveKeyHandler(string[] key)

Essa função é usada por Remove-PSReadLineKeyHandler e provavelmente não é muito útil em uma associação de chave personalizada.

void Replace(int start, int length, string replacement)

Substitua parte da entrada. Esta operação dá suporte a desfazer/refazer. Isso é preferencial em vez de Excluir seguido por Inserir porque ele é tratado como uma única ação para desfazer.

void SetCursorPosition(int cursor)

Mova o cursor para o deslocamento fornecido. O movimento do cursor não é rastreado para desfazer.

void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)

Essa função é um método auxiliar usado pelo cmdlet Set-PSReadLineOption, mas pode ser útil para uma associação de chave personalizada que deseja alterar temporariamente uma configuração.

bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
  int defaultNumericArg)

Esse método auxiliar é usado para associações personalizadas que respeitam DigitArgument. Uma chamada típica se parece com

[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
  [ref]$numericArg, 1)

OBSERVAÇÃO

COMPATIBILIDADE DO POWERSHELL

O PSReadLine requer o PowerShell 3.0 ou mais recente e o host do console. Ele não funciona no ISE do PowerShell. Ele funciona no console do Visual Studio Code.

HISTÓRICO DE COMANDOS

O PSReadLine mantém um arquivo de histórico que contém todos os comandos e dados inseridos na linha de comando. Isso pode conter dados confidenciais, incluindo senhas. Por exemplo, se você usar o ConvertTo-SecureString cmdlet, a senha será registrada no arquivo de histórico como texto sem formatação. Os arquivos de histórico são um arquivo chamado $($host.Name)_history.txt. Em sistemas Windows, o arquivo de histórico é armazenado em $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine.

COMENTÁRIOS & CONTRIBUINDO PARA PSReadLine

PSReadLine no GitHub

Fique à vontade para enviar uma solicitação de pull ou enviar comentários na página do GitHub.

CONSULTE TAMBÉM

O PSReadLine é fortemente influenciado pela biblioteca de linha de leitura do GNU.