Adicionando Ctrl-L como tecla de atalho "clear" no ksh do OpenBSD

8

Eu estava procurando uma maneira de usar Ctrl- Llimpar o monitor em vez de digitar clearcada vez. Não encontrei nada, exceto um patch que não funcionou para mim. Como adiciono teclas de atalho / atalhos à minha caixa do OpenBSD (que usa o ksh como um shell)?

[*] Ksh.kshrc do OpenBSD

[*] Ctrl-l em hexadecimal = 0xc:

# chave de leitura ; echo -n $ key> arquivo.txt; hexdump file.txt
^ L
0000000 000c                                   
0000001
# 

fonte

Respostas:

5

De acordo com a página de manual do OpenBSD ksh , Ctrl+ Lé obrigado a redesenhar.

 redraw: ^L
         Reprints the prompt string and the current input line.

Se isso não for suficiente, não consigo ver nenhum comando de edição que ajude, então sugiro aprender mais sobre bind -m.

Talvez você possa fazer algo como bind -m '^L'=clear'^J'fazê-lo digitar clear Enter.

Mikel
fonte
Eu testei bind -m '^L'=clear'^J'no OpenBSD 4.9 e funciona.
Mikel
Está resolvido, Mikel & shellter obrigado pela ajuda.
3

Você deve poder adicionar um alias ao seu .kshrc para fazer isso. Tentar

alias "^L"=clear

Onde ^Lestá o único caractere Ctrl- L. Você pode não precisar da citação, se ainda assim não funcionar, o último recurso seria escapar (como o que você está digitando, não o que será visível no seu arquivo) Ctrl- VCtrl- L→ limpar.

IHTH

shellter
fonte
1
Obrigado shellter, mas desta forma funciona para bash não ksh.
@Barakat: O que não está funcionando? Qual é a mensagem de erro? Funciona no meu ambiente ksh ;-) (e tenho certeza que funcionaria onde usei o Solaris e o AIX ksh). Hmm. releia sua postagem e veja se você está se referindo ao OpenBSD ksh. Desculpe, não tenho experiência com isso. É possível que seja realmente pdksh? Boa sorte.
shellter
@Barakat: Outra coisa, você reiniciou seu shell após adicionar a definição de alias ao .kshrc. Ou você pode adicioná-lo ao ~ / .profile e, em seguida, iniciar um novo shell.
shellter