Esto es ciertamente factible en vim. Puede usar el protocolo scp: // dentro de vim para editar archivos remotos y configurar un comando que escriba una copia local. También puede cambiar el programa utilizado por vim: make para hacer una ssh make en su servidor.
Tendrá que configurar sus llaves ssh para mantener este dolor (de lo contrario se le introduce su contraseña todo el tiempo), pero eso es bastante fácil.
Otra alternativa sería la de empujar a una repositorios remotos como parte de su comando make, en lugar de editar de forma remota.
EDIT:
En primer lugar, utilizando el protocolo scp://
dentro de vim. De :help netrw-start
(o hacia abajo de la página :help scp
)
netrw soporta la edición de "transparente" de los archivos en otras máquinas que utilizan direcciones URL (véase | netrw transparente |). Como ejemplo de esto, supongamos que tiene una cuenta en otra máquina; si se puede usar scp, intente:
vim scp://hostname/path/to/file
Quieres hacer ssh/scp más fácil de usar? Verifique | netrw-ssh-hack |
También puede usar las rutas scp://
en los comandos :edit
, o en cualquier lugar donde pueda usar una ruta normal.
Y, desde el mencionado :help netrw-ssh-hack
, instrucciones sobre cómo configurar las claves SSH:
MEJORA DE LA NAVEGACIÓN * netrw-listhack * * netrw-ssh-Hack * {{{2
Especialmente con el buscador de directorio remoto, ingresar constantemente la contraseña es tedioso.
Para los sistemas Linux/Unix, el libro "Linux Hacks servidor - 100 fuerza industrial consejos & herramientas" de Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) da una punta para la creación de ningún -password ssh y scp y analiza los problemas de seguridad asociados . Solía estar disponible en http://hacks.oreilly.com/pub/h/66, pero aparentemente esa dirección ahora está siendo redireccionada a algún "hackzine". voy a intentar un resumen basado en dicho artículo, y en una comunicación de Ben Schmidt:
(1) Generar un/pair pública clave privada en la máquina local (cliente SSH):
ssh-keygen -t rsa
(guardando el archivo en ~/.ssh/id_rsa cuando se le solicite)
(2) Sólo tiene que darle la frase de contraseña cuando se le pide (dos veces) sin frase de contraseña. Si usa una frase de contraseña, también necesitará usar ssh-agent para que solo tenga que escribir la frase de contraseña una vez por sesión. Si usted no utiliza una contraseña, simplemente iniciar sesión en el equipo local o conseguir acceso al archivo de claves de ninguna manera será suficiente a acceder a servidores SSH, que tienen esa llave autorizada para iniciar sesión.
(3) Esto crea dos archivos:
~/.ssh/id\_rsa
~/.ssh/id\_rsa.pub
(4) En el equipo de destino (servidor SSH):
cd
mkdir -p .ssh
chmod 0700 .ssh
(5) En la máquina (cliente SSH) locales: (una línea)
ssh {serverhostname} cat '>>' '~/.ssh/authorized\_keys2' < ~/.ssh/id_rsa.pub
o, para OpenSSH, (una línea)
ssh {serverhostname} cat '>>' '~/.ssh/authorized\_keys' < ~/.ssh/id_rsa.pub
Puede probarlo con
ssh {serverhostname}
y que debe iniciar sesión en el equipo del servidor sin más que teclear nada.
Si ha decidido usar una frase de paso, hacer:
ssh-agent $SHELL
ssh-add
ssh {serverhostname}
Se le pedirá la contraseña de frase clave cuando se utiliza ssh-add, pero no posteriormente cuando se utiliza ssh. Para su uso con vim, puede utilizar
ssh-agent vim
y, en su siguiente dentro de vim, utilice
:!ssh-add
Alternativamente, se puede aplicar ssh-agente para la terminal que está pensando en corriendo en vim :
ssh-agent xterm &
y haga ssh-add siempre que lo necesite.
Para Windows, las personas en la lista de correo vim han mencionado que el concurso ayuda a evitando la constante necesidad de ingresar la contraseña.
Kingston Fung escribió sobre otra forma de evitar la constante necesidad de introducir contraseñas:
Con el fin de evitar la necesidad de escribir la contraseña para SCP cada vez, proporciona un corte en la documentación a configurar una cuenta ssh sin contraseña. Encontré un mejor manera de hacerlo: puedo usar una cuenta ssh regular que usa una contraseña para acceder al material sin la necesidad de ingresar la contraseña cada vez. Es bueno para la seguridad y la conveniencia. Probé la clave pública 0sh ssh autorización + ssh-agent, implementando esto, ¡y funciona!Aquí hay dos vínculos con las instrucciones:
para la toma en sistemas remotos, es necesario establecer la variable de makeprg
a hacer un hacer ssh. De :help makeprg
Programa que se utiliza para el comando ": make". Ver |: make_makeprg |. Esta opción puede contener los caracteres '%' y '#', que se expanden a , el nombre de archivo actual y alternativo. |: _% | |: _ # | Las variables de entorno están expandidas |: set_env |. Ver | opción-barra invertida | acerca de incluir espacios y barras diagonales inversas.
Tenga en cuenta que un '|' debe escaparse dos veces: una vez para ": establecer" y una vez para la interpretación de un comando. Cuando se utiliza un filtro llamado "myFilter" hacerlo de esta manera:
:set makeprg=gmake\ \\\|\ myfilter
El marcador de posición "$ *" puede ser dado (incluso varias veces) para especificar , donde se incluirán los argumentos, por ejemplo:
:set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*}
Esta opción no se puede configurar desde | modeline | o en | sandbox |, por razones de seguridad .
Pero no deseo depender de los controles para compilación; Deseo construir primero para asegurarme de que sea bueno antes del registro. –