DEV Community

Kazuki Yokoyama
Kazuki Yokoyama

Posted on

3 1

Slurp e Barf

Olá, pessoal!

Vamos ver quatro atalhos do paredit, mas que também estão disponíveis no parinfer, para lidar com o monte de parênteses do Clojure. Eles são o slurp forwards/backwards e o barf forwards/backwards e o ojetivo deles é mover os parênteses*, expandindo ou retraindo a expressão atual (onde o cursor está).

  • Neste artigo, parênteses significa qualquer delimitador de expressão: parênteses, colchetes ou chaves.

O slurp "suga" uma expressão que está fora para dentro da expressão atual, enquanto o barf "cospe" algo que está dentro para fora da expressão atual.

O forwards se refere ao parêntese que fecha a expressão, ou seja, o mais à direita. O backwards se refere ao parêntese que abre a expressão, ou seja, o mais à esquerda.

Em todos exemplos a seguir, considere que o cursor está em algum lugar dentro da expressão atual (em vermelho).

No primeiro exemplo, usamos o slurp forwards para expandir a expressão atual, sugando o e que estava fora para dentro da expressão atual:

Alt Text

Agora, usamos o barf forwards para "cuspir" o e de dentro da expressão atual para fora:

Alt Text

Repare em duas coisas:

  • O slurp forwards e o barf forwards são opostos;
  • O forwards significa que queremos movimentar o parêntese da direita, ou seja, adicionar (slurp) ou remover (barf) do fim da expressão atual.

Seguindo, podemos usar o slurp backwards para expandir a expressão atual, sugando o b para dentro:

Alt Text

E podemos usar o barf backwards para "cuspir" o b para fora da expressão atual:

Alt Text

Novamente, repare em duas coisas:

  • O slurp backwards e o barf backwards são opostos;
  • O backwards significa que queremos movimentar o parêntese da esquerda, ou seja, adicionar (slurp) ou remover (barf) do começo da expressão atual.

Por fim, os atalhos também tem um padrão bem lógico: usamos Shift para forwards e Ctrl para backwards, enquanto K e J indicam o sentido do movimento do parêntese, para direita ou para a esquerda, respectivamente.

Existem vários outros movimentos no paredit, mas esses já são bastante úteis no dia-a-dia!

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay