Notas sobre como mudar para Helix do vim

Notas sobre como mudar para Helix do vim


Olá! No início deste verão, eu estava conversando com um amigo sobre o quanto adoro usar peixes e como adoro não precisar configurá-los. Eles disseram que sentem o mesmo em relação ao editor de texto helix, então decidi tentar.

Estou usando há 3 meses e aqui estão algumas notas.

por que helix: servidores de idiomas

Acho que o que me motivou a experimentar o Helix é que tenho tentado obter uma configuração de servidor de linguagem funcional (para poder fazer coisas como “ir para a definição”) e obter uma configuração que pareça boa no Vim ou Neovim parecia muito trabalhoso.

Depois de usar o Vim/Neovim por 20 anos, tentei “construir minha própria configuração personalizada do zero” e “usar o sistema de configuração pré-construído de outra pessoa” e, embora eu ame o Vim, fiquei animado em fazer as coisas funcionarem sem ter que trabalhar na minha configuração.

Helix vem com suporte de servidor de idioma integrado e é bom poder fazer coisas como “renomear este símbolo” em qualquer idioma.

a pesquisa é ótima

Uma das minhas coisas favoritas no Helix é a pesquisa! Se eu estiver pesquisando uma string em todos os arquivos do meu repositório, isso me permitirá percorrer os possíveis arquivos correspondentes e ver o contexto completo da correspondência, assim:

Notas sobre como mudar para Helix do vim

Para efeito de comparação, aqui está a aparência do plugin vim ripgrep que estou usando:

Não há contexto para o que mais está nessa linha.

a referência rápida é boa

Uma coisa que gosto no Helix é que quando pressiono grecebo um pequeno pop-up de ajuda informando lugares onde posso ir. Eu realmente aprecio isso porque não uso frequentemente o recurso “ir para definição” ou “ir para referência” e muitas vezes esqueço o atalho do teclado.

algumas traduções do vim -> hélice

  • Helix não tem marcas como ma, 'aem vez disso estou usando Ctrl+O e
    Ctrl+I para voltar (ou avançar) para a última localização do cursor
  • Acho que o Helix tem macros, mas tenho usado vários cursores em todos os casos em que teria usado uma macro anteriormente. Gosto muito mais de vários cursores do que de escrever macros o tempo todo. Se eu quiser alterar algo em lote no documento, meu fluxo de trabalho é pressionar % (para destacar tudo), então s
    para selecionar (com um regex) as coisas que desejo alterar, posso simplesmente editar todas elas conforme necessário.
  • Helix não possui guias no estilo neovim, em vez disso possui um bom alternador de buffer (b) que posso usar para mudar para o buffer que desejo. Há uma solicitação pull aqui para implementar guias no estilo neovim. Há também uma configuração bufferline="multiple" que pode funcionar um pouco como guias com gp, gn para “guia” anterior/próxima e :bc para fechar uma “guia”.

alguns aborrecimentos da hélice

Aqui está tudo o que me incomodou no Helix até agora.

  • Eu gosto do jeito que Helix é :reflow funciona muito menos do que como o vim reflui o texto com gq. Não funciona tão bem com listas. (problema do github)
  • Se eu estiver fazendo uma lista Markdown, pressionar “enter” no final de um item da lista não dará continuidade à lista. Há uma solução parcial para listas com marcadores, mas não conheço nenhuma para listas numeradas.
  • Ainda não há desfazer persistente: no vim eu poderia usar um arquivo de desfazer para poder desfazer as alterações mesmo depois de sair. Helix ainda não possui esse recurso. (github PR)
  • Helix não recarrega automaticamente os arquivos depois que eles mudam no disco, tenho que executar
    :reload-all (:ra) para recarregá-los manualmente. Não é grande coisa.
  • Às vezes ele trava, talvez a cada semana ou mais. Alguém mencionou que isso pode ter algo a ver com o fato de eu editar muito Markdown, não tenho certeza. Isso não me incomoda muito, posso simplesmente reabri-lo. Não tenho 100% de certeza se a falha é uma falha de segurança ou um pânico, mas parece que o Helix pode falhar às vezes.

A “lista de markdown” e os problemas de refluxo surgem muito para mim porque passo muito tempo editando listas de Markdown, mas continuo usando o Helix de qualquer maneira, então acho que eles não podem estar me deixando tão bravo.

mudar foi mais fácil do que eu pensava

Eu estava preocupado que reaprender 20 anos de memória muscular do Vim seria muito difícil.

Acabou sendo mais fácil do que eu esperava, comecei a usar o Helix nas férias para um pequeno projeto de codificação de baixo risco que estava fazendo paralelamente e depois de uma ou duas semanas não parecia mais tão desorientador. Acho que pode ser difícil alternar entre o Vim e o Helix, mas não precisei usar o Vim recentemente, então não sei se isso se tornará um problema para mim.

A primeira vez que experimentei o Helix, tentei forçá-lo a usar atalhos de teclado mais parecidos com o Vim e isso não funcionou para mim. Aprender o “jeito Helix” foi muito mais fácil.

Ainda há algumas coisas que me confundem: por exemplo w no vim e w no Helix não temos a mesma ideia do que é uma “palavra” (o Helix inclui o espaço após a palavra, o Vim não).

usando um editor de texto baseado em terminal

Por muitos anos eu usei principalmente uma versão GUI do vim/neovim, então mudar para realmente usar um editor no terminal foi um pequeno ajuste.

Acabei decidindo por:

  1. Cada projeto obtém sua própria janela de terminal e todas as guias dessa janela (principalmente) têm o mesmo diretório de trabalho
  2. Eu faço da minha aba Helix a primeira aba na janela do terminal

Funciona muito bem, talvez eu goste mais dele do que do meu fluxo de trabalho anterior.

minha configuração

Agradeço que minha configuração seja realmente simples, em comparação com a configuração do neovim, que tem centenas de linhas. São principalmente apenas 4 atalhos de teclado.

theme = "solarized_light"
(editor)
# Sync clipboard with system clipboard
default-yank-register = "+"

(keys.normal)
# I didn't like that Ctrl+C was the default "toggle comments" shortcut
"#" = "toggle_comments"

# I didn't feel like learning a different way
# to go to the beginning/end of a line so
# I remapped ^ and $
"^" = "goto_first_nonwhitespace"
"$" = "goto_line_end"

(keys.select)
"^" = "goto_first_nonwhitespace"
"$" = "goto_line_end"

(keys.normal.space)
# I write a lot of text so I need to constantly reflow,
# and missed vim's `gq` shortcut
l = ":reflow"

Há um separado languages.toml configuração onde defino algumas preferências de idioma, como desligar a formatação automática. Por exemplo, aqui está minha configuração do Python:

((language))
name = "python"
formatter = { command = "black", args = ("--stdin-filename", "%{buffer_name}", "-") }
language-servers = ("pyright")
auto-format = false

vamos ver como vai

Três meses não é tanto tempo, e é possível que eu decida voltar para o Vim em algum momento. Por exemplo, escrevi um post sobre a mudança para o nix há algum tempo, mas depois de talvez 8 meses voltei para o Homebrew (embora ainda esteja usando o NixOS para gerenciar um pequeno servidor e ainda estou satisfeito com isso).



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *