Introdução
Recentemente comecei a trabalhar em uma empresa que me forneceu uma maquina remota para trabalho, nós usamos conexão ssh acessar estas maquinas.
Não sou dev raiz, mas gosto de usar nvim (com kickstart), para mim ele simplesmente funciona e é altamente personalizável e leve.
Mas logo nos meus primeiros usos me deparei com um problema, o copy e paste não funcionava como o esperado, queria copiar parte do código colar na minha maquina local, mas simplesmente não funcionava.
Decidi me debruçar sobre o problema, com determinação encontrei uma solução plausível, e aqui busco compartilha-la.
Visão geral
O ponto central do problema (logo da solução também), é que o nvim não tem acesso direto a área de transferência do seu sistema operacional (não importa se é maquina remota ou local), logo é necessário um "intermediário" que o nvim chama de provedor.
Mas nem todo provedor é valido em todos os ambientes, os mais comuns não funcionam em conexões ssh, por sorte um santo escreveu isso na doc do nvim:
Como pode ver existe alguns provedores de área de transferência específicos para conexão ssh, decidi utilizar o lemonade, no qual obtive bons resultados
O lemonade utiliza uma conexão tcp para enviar o conteúdo da sua maquina remota para a sua maquina local, então é necessário alguns cuidados e configurações para tudo funcionar bem
Se tem interesse em utilizar o lemonade basta seguir o guia abaixo
Guia
aviso: este guia parte do pressuposto que estais usando linux tanto na maquina remota quanto na maquina local, embora seja perfeitamente possível adaptar esse guia para usuários de outros sistemas operacionais, já que o lemonade é multi plataforma.
1. Download lemonade release:
- escolha a versão desejada (usei 1.1.1)
- baixe o arquivo lemonade_linux_amd64.tar.gz na sua maquina local (no meu caso tanto a minha maquina local quanto a minha maquina remota são linux)
-
se preferir basta rodar o seguinte comando
curl -L -O https://github.com/lemonade-command/lemonade/releases/download/v1.1.1/lemonade_linux_amd64.tar.gz
2. Instale o lemonade na sua maquina local:
-
descompacte o arquivo obtido no passo anterior
tar -zxvf lemonade_linux_amd64.tar.gz
-
a descompactação ira gerar um binário (de nome lemonade) no seu diretoria atual, para ser acessado facilmente pelo sistema (e o terminal), devemos mover para o diretório bin do linux, para isso basta executar
mv lemonade /bin
-
(opcional) remova o tar.gz executando o seguinte comando
rm lemonade_linux_amd64.tar.gz
3. Instale o lemonade na sua maquina remota:
-
basta copiar o binário da sua maquina local (apenas se for o mesmo sistema operacional), para isso vamos utilizar o comando
scp /bin/lemonade usuario@servidor:/bin
4. configure o lemonade na sua maquina local:
-
crie um aquivo no seu .config, chame-o de lemonade.toml, use o seguinte comando
nvim ~/.config/lemonade.toml
-
insira o seguinte conteudo
port = 2489 host = 'localhost' line-ending = 'crlf'
5. configure a sua conexão ssh:
-
abra o seu arquivo de configuração ssh, no meu caso esta em ~/.ssh/config, para isso execute o seguinte comando
nvim ~/.ssh/config
-
insira esta linha
RemoteForward 2489 localhost:2489
6. configure o lemonade na sua maquina remota:
- acesse a sua maquina remota
-
crie um aquivo no seu .config, chame-o de lemonade.toml, use o seguinte comando
nvim ~/.config/lemonade.toml
-
insira o seguinte conteúdo
port = 2489 host = 'localhost' trans-loopback = true trans-localfile = true line-ending = 'crlf'
7. configure o nvim na sua maquina remota:
-
abra o arquivo init.lua do seu nvim, no meu caso (uso o kickstart), então usei o comando
nvim ~/.config/nvim/init.lua
-
verifique se já possue esta configuração, caso não tenha insira
vim.schedule(function() vim.opt.clipboard = 'unnamed' end)
-
insira esta linha, (cuidado, não pode duplicar essa configuração, insira somente se você não possui esta configuração)
vim.g.clipboard = 'lemonade'
8. executando:
- acesse a sua maquina local
-
suba o server limonade com o seguinte comando
lemonade server
acesse a sua maquina remota
abra um arquivo qualquer com o nvim
-
copie uma linha da sua escolha utilizando o comando
"+yy
na sua maquina local, faça paste a onde desejar
Alternativa
Considere usar o nvim da sua maquina local conectado a sua maquina remota, para isso basta usar o protocolo scp:
nvim scp:://user@hostname//path/to/file
Muito obrigado por você que leu até aqui, sabemos o quão árdua é a jornada até a excelência, mas espero ter ajudado em mais um passo, qualquer duvida e sugestão pode entrar em contato comigo direto pelo meu Linkedin
Top comments (1)
Boa Renan!
Não manjo usar o NVIM, depois faz um post sobre ele!