Muszę edytować niektóre pliki umieszczone na serwerze, do którego mogę uzyskać dostęp za pośrednictwem ssh.
Wolę edytować te pliki w niestandardowych ustawieniach vim
na mojej stacji roboczej (nie mam uprawnień do zmiany vim
ustawień na zdalnym serwerze). Czasami chciałbym edytować plik za pomocą sublime text
lub innego edytora GUI.
Oczywiście mogę pobrać te pliki, edytować je lokalnie i przesłać z powrotem na serwer. Czy istnieje bardziej eleganckie rozwiązanie?
deb
oparte, a zatem nie mająapt-get
. (W takim przypadkuyum
lubzypper
może być obecny.) Wymagają również rootowania na lokalnej maszynie, które mogą być niedostępne. (Nie oznacza to, że jest to złe rozwiązanie, ale wiąże się z dużą koniecznością).osxfuse
isshfs
. Mogą one być instalowane z homebrew (brew install sshfs
ibrew cask install osxfuse
, lub opakowań otrzymanych z osxfuse.github.ioMożesz to zrobić w
scp
następujący sposób:Zwróć uwagę na dwa ukośniki
//
między serwerem a ścieżką, które są potrzebne do prawidłowego rozwiązania ścieżki bezwzględnej. (Pierwszy ukośnik jest składniowy, podczas gdy drugi ukośnik określa katalog główny użytkownika zdalnego, jak zwykle. Aby rozpocząć od katalogu domowego, należy[:port]/~/path/to/file.txt
.)[:port]
Jest opcjonalny.Jest to obsługiwane przez standardową wtyczkę netrw.vim vima . Obsługiwanych jest kilka innych protokołów.
źródło
E382: Cannot write, 'buftype' option is set
:set buftype=""
w vimie.~/.ssh/config
i rozwiąże zdalne hosty za pomocąvim scp://[host]/path
.:e scp://...
W zależności od tego, co masz na myśli, mówiąc, że nie masz uprawnień do edytowania ustawień Vima, może istnieć sposób użycia Vima na serwerze tak, jak chcesz. Jeśli nie możesz zmienić użytkownika
.vimrc
(na przykład logujesz się jako użytkownik udostępniony), ale nadal możesz tworzyć pliki, utwórz go jako plik o nazwie powiedzmy,Loom.vimrc
a następnie wywołaj Vima za pomocą-u
przełącznika:vim -u ~/Loom.vimrc file_to_edit
Możesz nawet użyć aliasu:
alias vim='vim -u ~/Loom.vimrc'
pozwoli ci używać Vima w zwykły sposób i nadal ładuje twój.vimrc
plik niestandardowy . Ten alias nie będzie się utrzymywał po wylogowaniu, więc nie musisz się martwić, że ktoś przypadkowo użyje Twojego niestandardowego Vima.źródło
W zależności od liczby plików i rodzaju plików, które chcesz edytować, być może nie jest to dokładnie to, co chcesz tutaj zrobić, ale myślę, że warto o tym wspomnieć. Jeśli musisz edytować pliki na zdalnym serwerze, ale chcesz korzystać ze wszystkiego, co masz na własnym stanowisku roboczym, możesz zacząć myśleć o użyciu jakiegoś systemu kontroli wersji na swoich komputerach. W ten sposób możesz modyfikować lokalne kopie na własnym komputerze za pomocą wybranego oprogramowania, zatwierdzać zmiany, a następnie po prostu aktualizować lokalne kopie na maszynie docelowej. Oprócz edycji plików za pomocą dowolnego oprogramowania, z którym czujesz się komfortowo, masz dodatkową wartość posiadania historii zmian związanych z każdym plikiem, co zawsze jest dobre.
Oto lista oprogramowania do kontroli wersji , na wszelki wypadek.
źródło
git
, popchnięcie do czegoś takiegogithub
i przeniesienie zmian zgithub
komputera lokalnego, aby wprowadzić tam zmiany?Aby rozwinąć odpowiedź Pana Pottsa: Możesz również zrobić powyższe, a następnie umieścić coś takiego w .bash_profile (lub cokolwiek, czego używa twoja powłoka):
gdzie Loom jest Twoim pierwotnym identyfikatorem użytkownika, na który się logujesz.
Jeśli logujesz się jako konto wspólne (a nie konto indywidualne, a następnie sudo), Von Neuman może zlitować się nad twoją duszą, ponieważ jesteś zgubiony.
Umieściłbym to w komentarzu, ale nie mogłem w ogóle sformatować kodu.
źródło
Jeśli masz już uruchomione sesje vim, użyj
:silent e scp://user@myserver[:port]//path/to/file.txt
Z
:silent
przodu ukrywaPress Enter to Continue
wiadomośći
e scp://user@myserver[:port]//path/to/file.txt
toEx
polecenie trybu służące do edycji pliku komentarza.Testowany z
BitVise SSHD
systemem Windows 10 i systemem VIM z systemem Ubuntu 16.04źródło
Press Enter to Continue
początkowe ładowanie, ale nie kolejne:w