Jak edytować pliki FTP za pomocą VIM i unikać wpisywania nazwy hosta za każdym razem?

2

Muszę edytować zdalne pliki za pomocą vima, które znajdują się na serwerze FTP. Nie ma dostępu do SSH ani SFTP. Po prostu FTP. Próbowałem synchronizować za pomocą curlftpfs, pliki pojawiły się w lokalnym katalogu, ale nie mogę do nich pisać, dostaję różnego rodzaju błędy, a kiedy udaje mi się pisać pliki z losowymi zakończeniami, są generowane na serwerze. index.php zapisuje na serwerze jako index.phz, index.phy itp.

Miałem wysublimowany tekst 2, ale nie mogę go już uruchomić po zainstalowaniu nowych sterowników dla mojej karty graficznej. Próbowałem także n ++ z WINE, ale bez powodzenia w otwieraniu plików FTP, które znajdują się na głębszym poziomie katalogu.

Widziałem, że istnieją różne podejścia do edycji plików na FTP za pomocą vima, ale każdy z nich wymaga wpisania: e http: // [użytkownik @] maszyna / ścieżka (z wtyczką netrw). Naprawdę chciałbym uniknąć wszelkiego rodzaju powtórzeń, a raczej ustawić względne mapowanie. Dziwne, że nie ma rozwiązania dla vima, ponieważ jest to głównie narzędzie programistyczne, wysublimowane i npp mają już rozwiązane w prosty sposób. wpisanie na tej samej nazwie hosta / ścieżce itp. złamałoby prostą zasadę DRY.

Idealnie byłoby, gdybym mógł buforować pliki lokalnie za pomocą jakiegoś narzędzia do synchronizacji i przesłać je do ftp mapując ścieżkę lokalnie -> zdalnie, zaraz po zapisaniu pliku przez vima lub wydam polecenie upload itp. (Bez konieczności wpisywania pliku otwartego każdego razu). Na serwerze jest wiele plików, więc nie mogę ich zapamiętać. Ważne jest, aby mieć je w pamięci podręcznej lokalnie, aby szybko uzyskać do nich dostęp i przesłać je za pomocą prostego polecenia.

Używam Slackware 13.37 x64

Keeper Hood
źródło

Odpowiedzi:

4

Możesz użyć netrw do wyświetlenia zawartości zdalnego katalogu za pomocą:

:e ftp://[email protected]/ <-- note the slash at the end.

stamtąd możesz otworzyć plik w innym oknie za pomocą Plub w bieżącym oknie za pomocą <CR>.

Nie panikuj, jeśli stracisz listę plików: wciąż tam jest i możesz ją odzyskać :Rex.


Lub po prostu użyj klienta FTP z graficznym interfejsem użytkownika, takiego jak Filezilla lub gFTP i jego funkcji „Edytuj w…”.

romainl
źródło
Wypróbowałem metodę vim i filezilla, a filezilla jest znacznie szybsza niż vim, jednak jeśli otworzę więcej plików, wiele nowych okien vim po prostu robi za dużo bałaganu. Spróbuje gFTP. Chciałbym tylko móc wznowić wzniosłość, ponieważ pokonuje inne starożytne metody, które sprawiają, że jestem nieproduktywny :(
Keeper Hood
gFTP działa jak Filezilla: bałagan w systemie Windows jest winą Vima. W obu klientów FTP, należy ustawić tę komendę jako „redaktor”: "/usr/bin/gvim" --servername filezilla --remote-tab.
romainl
Dlaczego nie możesz uruchomić Sublime? Działa bardzo dobrze w systemie Linux.
romainl,
To działało, ale zaktualizowałem niektóre sterowniki graficzne i teraz zawiesza się na początku, nie chcę wchodzić w offtopic.
Keeper Hood
--Remote-tab działa znacznie lepiej, zastanawiając się, jak mogę ustawić polecenie dodawania bufora zamiast karty, jeśli zajdzie taka potrzeba? -
Keeper Hood
1

Chociaż nie możesz po prostu użyć względnych nazw plików (ponieważ lokalny katalog roboczy jest inny), możesz użyć modyfikatorów nazw, aby względnie odwoływać się do plików:

:edit %:h/another.html
Ingo Karkat
źródło
0

Czuję twój ból, uwielbiam używać vima, a z klientem ftp jest prawie tak, jakbyś miał ssh. Przepływ pracy, którego używam, jest

  1. Zaloguj się do serwera ftp za pomocą polecenia open :e ftp://username@server/
  2. Utwórz nową kartę bieżącego wyboru :tab split
  3. Przejdź do nowej karty :tabn
  4. Przejdź do pliku w vimie
  5. Po zakończeniu edycji pliku zamknij kartę :wq
  6. Powtórz od kroku 2

Przekonałem się, że to działa najlepiej.

Karty w Vimie są świetne, mogą pozwolić ci mieć wiele plików, a nawet szarpać yi usuwać dlinie między otwartymi plikami w tej samej sesji. Bardzo fajny.

Kelly Hays
źródło
0

Jeśli użyjesz vima ftp://hostname/path/, otrzymasz listę katalogów. Jeśli często współpracujesz z tym hostem, możesz dodać go do zakładek. Z netrw v153j możesz używać :NetrwMB filename(s); możesz użyć mb, aby dodać zakładkę do bieżącego katalogu; i możesz użyć qbdo wyświetlenia bieżących zakładek (i historii). Zakładki i tym podobne są również dostępne w menu za pomocą gvim. Aby przejść do zakładki, użyj gb.

Proponuję więc dodać zakładkę do katalogu, wrócić do listy katalogów za pomocą :Rexlub gbi edytować pliki tak wymienione.

użytkownik21497
źródło
0

Wiem, że to stare, ale inną opcją jest użycie np. Curlftpfs ( tutaj zbuduj Slackware ), aby zamontować serwer FTP w punkcie montowania, a następnie użyj lokalnego edytora tekstu.

Jason C.
źródło