unix vi editor: mapeamento ^ J

1

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 parte ^J .

Eu tentei ctrl + V ctrl + j ( ctrl + v pode ser usado para escapar do Enter por exemplo) e ctrl + j diretamente

Em ambos os casos, não funciona.

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

----- Editar -----

Vídeo:

link

00:05 - map ctrl + K para fazer dd (deletar 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, provocando uma tabela.

00:33 - tente mapear exatamente "^ J"

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

    
por user2865249 08.04.2017 / 16:49

1 resposta

2

Isso realmente parece ser um erro no livro. O exemplo é seguido por este comentário:

In the previous example, even though ^J is a vi command (it moves the cursor down a line), this key is safe to map because it's really the same as the j command. There are many keys that either perform the same tsks as other keys or that are rarely used. However, you should be familiar with the vi commands before you boldly disable their normal use by using them in map definitions.

A inferência usual para ^J é controle J . Mas nenhum dos vi mencionados na 6ª Edição permitia inserir um controle / J literal no texto porque essa é a terminação de linha para sistemas do tipo Unix (o vim lhe dará um caractere ^@ null ao tentar escapar do controle / J, os outros editores ignoram isso). Um literal " ^J " não funciona com o comentário, porque esses caracteres não são um comando vi .

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

    
por 08.04.2017 / 17:57

Tags