Eu tenho que editar alguns arquivos colocados em algum servidor que eu poderia acessar via ssh.
Eu preferiria editar esses arquivos personalizados vim
na minha estação de trabalho (não tenho direitos para alterar as vim
configurações no servidor remoto). Às vezes eu gostaria de editar um arquivo com sublime text
ou outro editor de GUI.
É claro que posso baixar esses arquivos, editá-los localmente e enviá-los de volta ao servidor. Existe uma solução mais elegante?
deb
baseadas e, portanto, não possuemapt-get
. (Nesse caso,yum
ouzypper
podem estar presentes.) Eles também exigem raiz na máquina local, que pode ou não estar disponível. (Isso não quer dizer que é uma má solução, mas ele vem com um grande pré-requisito.)osxfuse
esshfs
. Eles podem ser instalados com o homebrew (brew install sshfs
ebrew cask install osxfuse
, ou a partir de pacotes obtidos no osxfuse.github.ioVocê pode fazer isso
scp
assim:Observe as duas barras
//
entre o servidor e o caminho, necessárias para resolver corretamente o caminho absoluto. (A primeira barra é sintática, enquanto a segunda barra especifica o diretório raiz do usuário remoto, como de costume. Para iniciar no diretório inicial, é necessário[:port]/~/path/to/file.txt
.)[:port]
É opcional.Isso é tratado pelo plug-in padrão netrw.vim do vim . Vários outros protocolos são suportados.
fonte
E382: Cannot write, 'buftype' option is set
:set buftype=""
no vim.~/.ssh/config
e resolverá hosts remotos comvim scp://[host]/path
.:e scp://...
Dependendo do que você quer dizer quando diz que não tem os direitos para editar as configurações do Vim, pode haver uma maneira de usar o Vim no servidor da maneira que desejar. Se você não pode alterar seu usuário
.vimrc
(porque está efetuando login como um usuário compartilhado, por exemplo), mas ainda pode criar arquivos, crie-o como um arquivo chamado, digamos,Loom.vimrc
e ligue para o Vim usando a-u
opção:vim -u ~/Loom.vimrc file_to_edit
Você ainda pode usar um alias:
alias vim='vim -u ~/Loom.vimrc'
permitirá que você use o Vim da maneira usual e ainda carregará seu.vimrc
arquivo personalizado . Esse alias não persistirá após o logout, portanto você não precisa se preocupar com mais ninguém usando acidentalmente seu Vim personalizado.fonte
Dependendo de quantos arquivos e que tipo de arquivo você espera editar, talvez não seja exatamente isso que você deseja fazer aqui, mas acho que vale a pena mencionar. Se você precisar editar arquivos em um servidor remoto, mas quiser usar tudo o que possui em sua própria estação de trabalho, comece a pensar em usar algum tipo de sistema de Controle de Revisão em suas máquinas. Dessa forma, você pode modificar suas cópias locais em sua própria máquina usando o software de sua escolha, confirmar as alterações e apenas atualizar as cópias locais na máquina de destino. Além de editar os arquivos com qualquer software que você se sinta confortável, você tem o valor agregado de ter um histórico de alterações relacionadas a cada arquivo, o que é sempre bom.
Aqui está uma lista de software de controle de revisão , apenas por precaução.
fonte
git
, enviá-las para algo comogithub
e puxar as alteraçõesgithub
para a sua máquina local, para fazer alterações lá?Para expandir a resposta do Sr. Potts: Você também pode fazer o acima, depois colocar algo como isto em .bash_profile (ou o que seu shell usar):
onde Loom é o seu ID de usuário original no qual você faz login.
Se você está entrando como uma conta compartilhada (e não como uma conta individual, então sudo -, Von Neuman pode ter piedade de sua alma por estar perdido.
Eu teria colocado isso em um comentário, mas não consegui obter o código formatado.
fonte
Se você tiver uma sessão do vim em execução, use
:silent e scp://user@myserver[:port]//path/to/file.txt
A
:silent
frente suprimirá aPress Enter to Continue
mensageme
e scp://user@myserver[:port]//path/to/file.txt
é oEx
comando mode para editar o arquivo remnote.Testado com a
BitVise SSHD
execução no Windows 10 e o uso do VIM no Ubuntu 16.04fonte
Press Enter to Continue
para o carregamento inicial, mas não para qualquer posterior:w