ssh를 통해 파일을 원격으로 편집하려면 어떻게합니까? 파일을 편집해야합니다. vim워크

ssh를 통해 도달 할 수있는 서버에있는 파일을 편집해야합니다.

vim워크 스테이션 에서 사용자 지정 하여 이러한 파일을 편집 하고 싶습니다 ( vim원격 서버의 설정 을 변경할 권한이 없습니다 ). 때로는 sublime text또는 다른 GUI 편집기 로 파일을 편집하고 싶습니다 .

물론 이러한 파일을 다운로드하여 로컬로 편집 한 후 서버에 다시 업로드 할 수 있습니다. 더 우아한 솔루션이 있습니까?



답변

sshfs를 사용하여 원격 폴더를 파일 시스템으로 마운트하면됩니다. 이렇게하려면 먼저 몇 가지 필수 구성 요소를 수행하십시오.

# issue all these cmds on local machine
sudo apt-get install sshfs
sudo adduser <username> fuse

이제 장착 프로세스를 수행하십시오.

mkdir ~/remoteserv
sshfs -o idmap=user <username>@<ipaddress>:/remotepath ~/remoteserv

그 후, 마운트 된 폴더로 가서 자신 만의 로컬 맞춤형 vim을 사용하십시오.


답변

다음 scp과 같이하면됩니다.

vim scp://user@myserver[:port]//path/to/file.txt

//절대 경로를 올바르게 해결하는 데 필요한 서버와 경로 사이에 두 개의 슬래시 가 있습니다. 첫 번째 슬래시는 구문이며, 두 번째 슬래시는 평소와 같이 원격 사용자의 루트 디렉토리를 지정합니다. 홈 디렉토리에서 시작하려면 [:port]/~/path/to/file.txt.) [:port]는 선택 사항입니다.

이것은 vim의 netrw.vim 표준 플러그인에 의해 처리됩니다 . 몇 가지 다른 프로토콜이 지원됩니다.


답변

Vim 설정을 편집 할 권한이 없다고 할 때의 의미에 따라 서버에서 Vim을 원하는 방식으로 사용하는 방법이있을 수 있습니다. .vimrc예를 들어 공유 사용자로 로그인 하여 사용자를 변경할 수 없지만 여전히 파일을 작성하고 파일이라고하는 파일을 작성한 Loom.vimrc다음 -u스위치를 사용하여 Vim을 호출 할 수 있습니다.

vim -u ~/Loom.vimrc file_to_edit

그런 다음 별칭을 사용할 수도 있습니다 alias vim='vim -u ~/Loom.vimrc'. 일반적인 방법으로 Vim을 사용할 수 있으며 여전히 사용자 지정 .vimrc파일을 로드합니다 . 이 별칭은 로그 아웃 한 후에도 유지되지 않으므로 실수로 사용자 정의 된 Vim을 사용하는 다른 사람에 대해 걱정할 필요가 없습니다.


답변

얼마나 많은 파일과 어떤 종류의 파일을 편집하길 원하는지에 따라, 이것은 당신이 여기서하고 싶은 것이 아닐 수도 있지만 언급 할 가치가 있다고 생각합니다. 원격 서버에서 파일을 편집해야하지만 자신의 작업 스테이션에있는 모든 것을 사용하려는 경우 머신에서 일종의 개정 제어 시스템 을 사용하려고 할 수 있습니다. 이렇게하면 선택한 소프트웨어를 사용하여 자신의 컴퓨터에서 로컬 복사본을 수정하고 변경 사항을 커밋 한 다음 대상 컴퓨터에서 로컬 복사본을 업데이트 할 수 있습니다. 편안하다고 생각되는 소프트웨어로 파일을 편집하는 것 외에도 각 파일과 관련된 변경 기록 이 있다는 부가 가치가 있습니다.

여기 에 대비 하여 개정 제어 소프트웨어 목록이 있습니다.


답변

Mr. Potts의 답변을 확장하려면 위의 작업을 수행 한 다음 .bash_profile (또는 셸이 사용하는 것)에 다음과 같이 입력하십시오.

if [[ "$(who mom loves | awk ' { print $1 }' )" == "Loom" ]]; then
         alias vim="vim -u ~/.Loom_vimrc"
         fi

여기서 Loom은 로그인 한 원래 사용자 ID입니다.

개인 계정이 아닌 공유 계정으로 로그인 한 경우 sudo suing을 사용하는 경우 Von Neuman이 귀하의 영혼에 자비를 느끼면 길을 잃을 수 있습니다.

나는 이것을 주석에 넣었을 것이지만, 코드를 전혀 형식화 할 수는 없었다.


답변

vim 세션이 이미 실행중인 경우

:silent e scp://user@myserver[:port]//path/to/file.txt

:silent전면은 억제 할 Press Enter to Continue메시지

e scp://user@myserver[:port]//path/to/file.txtExremnote 파일을 편집 하는 mode 명령입니다.

BitVise SSHDWindows 10에서 실행하고 Ubuntu 16.04에서 VIM 실행을 사용하여 테스트


답변