Vim을 사용하여 원격 서버에서 파일 편집 및 컴파일

Vim을 사용하여 원격 서버에서 파일 편집 및 컴파일

원격 서버에서 여러 파일을 편집하고 있습니다. SSH(공개 키 또는 비밀번호)를 사용하여 연결할 수 있습니다. Vim을 사용하는 방법은 다음과 같습니다. vim scp://user@server//path/to/file.cpp Vim을 커스터마이즈해서 내 컴퓨터에서 사용해야 하기 때문에 서버에 설치된 Vim을 사용하고 싶지 않습니다.

이 원격 서버에는 아무것도 설치할 수 없습니다. 컴파일하려면 make.

makeVim에서 실행하여 서버에서 컴파일할 수 있기를 원합니다 . SSH를 통해 서버에 연결하는 다른 터미널을 열지 않고 싶습니다.

그래서 내 질문은 다음과 같습니다Vim을 통해 SSH 연결을 유지할 수 있나요?

감사해요

답변1

물론 최근에 클라이언트에 OpenSSH를 설치했다면 가능합니다. "Control Pipe"가 있고 man ssh_config표시됩니다.마법. 기본적으로 클라이언트에서는 ~/.ssh/config다음과 같은 호스트 항목을 생성합니다.

Host my_remote_server # a symbolic name of your choice
  Hostname server_IP_or_DNS # the real name
  User username # the username you use for login
  IdentityFile ~/.ssh/a_suitable_ssh_key_if_any # for authentication purposes
    ControlMaster auto
    ControlPath ~/.ssh/%C # or ~/.ssh/%h-%p-%r for older versions
    ControlPersist 5m # or yes for neverexpiring persistent connection

이렇게 하면 첫 번째 연결에서 지정된 시간 동안 또는 영원히 열려 있는 "채널"이 열립니다. 이제부터 ssh입력한 이름으로만 연결을 참조 할 수 있습니다 Host. 예를 들어 다음과 같이 작성하지 마십시오.

vim scp://username@server_IP_or_DNS//full_path/to/file.cpp

당신은 쓸 것입니다 :

vim scp://my_remote_server//full_path/to/file.cpp

또는

ssh my_remote_server

기존 영구 연결을 종료하려면 다음을 실행해야 합니다.

ssh -O exit my_remote_server

이 모든 것은 일반 SSH, SCP 및 SFTP에도 적용됩니다. 그러면 그렇게 해.

관련 정보