editor unix vi: mapeamento ^J

editor unix vi: mapeamento ^J

Estou lendo o livro "learning vi editor" (linda lamb & arnold robbins 6ª edição). Página 115, o livro tem um comando como este:

:map ^J xyz

A parte xyz em si não importa aqui, meu problema é fazer a ^Jparte.

Eu tentei ctrl+ V ctrl+ j( ctrl+ vpode ser usado para escapar do Enter, por exemplo) e ctrl+ jdiretamente

Em ambos os casos não funciona.

Estou usando o editor vi dentro do FreeBSD 11.0, não é o vim (vi melhorado).

----- Editar -----

Vídeo:

https://vimeo.com/212400468

00:05 - mapeie ctrl+K para fazer dd (excluir linha inteira)

00:19 - tente fazer a mesma coisa com ctrl+J, mas não funciona porque ctrl+J aciona uma tabela.

00:25 - tente novamente com ctrl+V ctrl+J. Também não funciona, acionando uma tabela.

00:33 - tente mapear exatamente "^J"

00:44 - tente com ctrl+J e não funciona como esperado. Funciona digitando a sequência "^J".

Responder1

Na verdade, isso parece ser um erro no livro. O exemplo é seguido por este comentário:

No exemplo anterior, embora^Jé umvicomando (move o cursor para baixo em uma linha), esta chave é segura para mapear porque é realmente igual ao jcomando. Existem muitas chaves que executam os mesmos tsks que outras chaves ou que raramente são usadas. No entanto, você deve estar familiarizado com ovicomandos antes de desabilitar ousadamente seu uso normal, usando-os nas definições do mapa.

A inferência usual para^Jé controlJ. Mas nenhum dos vi mencionados na 6ª edição permitiu inserir um control/J literal no texto porque esse é o final de linha para sistemas do tipo Unix (o vim fornecerá um ^@caractere nulo ao tentar escapar de control/J, os outros editores ignoram isso). Aliteral" ^J" não funciona com o comentário, porque esses caracteres não são umvicomando.

Você pode fazer oliteral" ^J" trabalho, é claro. Mas esse não era o objetivo do exemplo. Provavelmente o autor pretendia algum outro personagem interessante e o mudou por algum motivo.

informação relacionada