Estritamente falando, set-mark
não é um comando bash, é um comando readline. É usado para definir uma "marca" em um local específico na linha de comando que você está editando no momento.
Essa marca pode ser usada em outras operações de edição readline.
A documentação completa para readline pode não ser instalada por padrão. Dependendo da sua distribuição, pode estar em um pacote separado, com um nome como readline-doc
, no formato de arquivo GNU Info (requer, por exemplo, info
ou pinfo
para exibir). Ele também está disponível na web no link
Ele também está documentado na página man bash e nas páginas man de vários outros programas GNU que usam readline. Execute man bash
e procure por ^READLINE
.
De man bash
:
Readline Command Names
The following is a list of the names of the commands and the default key sequences to which they are bound. Command names without an accompanying key sequence are unbound by default. In the following descriptions, point refers to the current cursor position, and mark refers to a cursor position saved by the
set-mark
command. The text between the point and mark is referred to as the region.
Observe que os comandos readline são para uso interativo (por exemplo, ao editar uma linha de comando) e uso programático (por exemplo, em seu ~/.inputrc
). É por isso que alguns dos comandos têm opções / argumentos.
BTW, não há muitos comandos readline que fazem uso de marcas ou regiões (o ponto é usado com frequência, por muitos comandos readline). Eles são:
Dois com atalhos de teclado padrão:
set-mark (C-@, M-<space>)
Set the mark to the point. If a numeric argument is supplied, the mark is set to that position.
exchange-point-and-mark (C-x C-x)
Swap the point with the mark. The current cursor position is set to the saved position, and the old cursor position is saved as the mark.
Assim, você pode marcar a posição atual do cursor com Ctrl-@
ou Meta-<space>
e trocar a marca pela posição atual do cursor, digitando Ctrl-x
duas vezes. isto é, útil para pular para frente e para trás entre duas posições na linha.
e dois sem vinculações de teclas padrão:
kill-region
Kill the text in the current region.
copy-region-as-kill
Copy the text in the region to the kill buffer.
Para usar uma dessas opções enquanto edita interativamente na linha de comando, você precisa vinculá-las a uma chave.