Fazer sentido de "[[", "]]", "[]", "]["

9

Achei difícil entender esses movimentos de objeto de texto:

                            *]]*
]]          [count] sections forward or to the next '{' in the
            first column.  When used after an operator, then also
            stops below a '}' in the first column.  |exclusive|
            Note that |exclusive-linewise| often applies.

                            *][*
][          [count] sections forward or to the next '}' in the
            first column.  |exclusive|
            Note that |exclusive-linewise| often applies.

                            *[[*
[[          [count] sections backward or to the previous '{' in
            the first column.  |exclusive|
            Note that |exclusive-linewise| often applies.

                            *[]*
[]          [count] sections backward or to the previous '}' in
            the first column.  |exclusive|
            Note that |exclusive-linewise| often applies.

Entendo que "]" significa avançar, assim como "]}" passa para o próximo "}" inigualável, e a segunda parte "}" descreve o destino, o que faz sentido.

Mas o que significam os segundos colchetes entre "]]", "] [", "[[", "[]"? Se o segundo "]" em "]]" significa "'{' na primeira coluna", o que dizer do segundo "]" em "[]", que significa '}' em vez de '{'. Eu simplesmente não consigo entender esses 4 movimentos de objetos de texto.

Leira Hua
fonte
4
O significado de "seção" é explicado 3 parágrafos abaixo da sua cotação.
Romainl
2
@romainl Que afirma: "o segundo caractere [determina] o tipo de chave encontrado", o que implica que ]deve sempre corresponder a }. Como o OP indica, esse não é o caso. Eles estão pedindo esclarecimentos sobre este ponto, não a definição de uma seção.
1750 Rich

Respostas:

5

Isso ajuda a testá-las em um arquivo. Você pode pensar nelas como "para frente" e "para trás" X "para iniciar" e "para terminar"

Tente usar os quatro movimentos neste bloco de texto:

function one
{#1

}#2

function two
{#3

}#4

function three
{#5

}#6

Não sei como fazer esses gifs de movimento frequentemente úteis, mas basicamente, por exemplo, ]] ]] ]]passará das posições # 1-> 3-> 5 e [[ao contrário; Da mesma forma, mova-se entre # 2 <-> 4 <-> 6 usando os movimentos ][e [].

Aqui está uma foto: insira a descrição da imagem aqui

Philip
fonte
4

Eles devem passar para as partes superior e inferior das funções, onde a suposição é que os chaves de abertura e fechamento das funções estão sempre na primeira coluna. (Editorial: parece não ser o caso nos dias de hoje, portanto, esses movimentos serão vestigiais para muitos usuários.)

O líder [ou ]indica a direção que você irá no arquivo, para cima ou para baixo, respectivamente. Em seguida, o segundo [ou os ]meios podem ir para uma chave aberta no prólogo da função ou a chave fechada no epílogo da função; se corresponder ao caractere principal, você vai para a chave aberta, se for diferente do caractere principal, você vai para a chave fechada.

Eu uso [[e com ]]bastante regularidade, embora normalmente prefira ser colocado na definição de função. Para mim []e ][não são intuitivos durante a edição e nunca os uso; Eu gostaria de descobrir como fazê-los funcionar no meu cérebro, porque esta é uma operação que eu frequentemente realizo por outros meios (por exemplo, o a}movimento geralmente me cobre).

traço-tom-bang
fonte