Подтвердить что ты не робот

Как использовать GVIM для редактирования удаленного файла?

Я использую GVIM на Ubuntu 9.10. Я ищу правильный способ настройки GVIM для редактирования удаленных файлов (HTML, PHP, CSS) на примере ftp.

  • Когда я использую: e scp://[email protected]/./path/to/file, я получаю: error detected while processing BufEnter Auto commands for "*":E472: Command failed.
  • Когда я открываю файл на удаленном компьютере через Dolphin или Nautilus, я не могу использовать другие файлы с NERDTree.
  • Наконец, когда я редактирую удаленный файл через Dolphin, права меняются для доступа к interdit.

Итак, как использовать GVIM для редактирования удаленных файлов, например, на моем локальном хосте?

4b9b3361

Ответ 1

Я нашел работу над файловой системой поверх ssh (с помощью sshfs) лучше, чем иметь дескриптор редактора, который обрабатывает или запускает сам редактор поверх туннеля ssh.

Итак, вам нужно

apt-get install sshfs

а затем

sshfs [email protected]:/remote/path /local/mountpoint

И это позволит вам редактировать удаленные файлы, как если бы они были в локальной файловой системе.

Чтобы сделать его еще более плавным, вы можете добавить строку в /etc/fstab

sshfs#[email protected]:/remote/path /local/mountpoint fuse user,noauto

По какой-то причине я обнаружил, что для экспериментов с этим нужно использовать fusermount -u /local/mountpoint, а не просто umount /local/mountpoint. Может быть, это просто мой дистрибутив.

Недавно я также отметил, что монтажный пользователь должен находиться в группе fuse. Итак:

sudo addgroup <username> fuse

Другим популярным вариантом, конечно, было бы запустить vim (а не gvim) внутри Экран GNU сеанс на одном компьютере и подключиться к этому сеансу через ssh, где бы вы ни были. Код в течение всего дня на работе, а вечером вы ssh в свой офисный компьютер, присоединитесь к сеансу экрана gnu и заберите то, где вы остановились. Я использовал более богатую цветовую палитру, чтобы быть единственной, которую я действительно пропустил от gvim при использовании vim, но это может быть исправлено благодаря вилке urxvt, которая позволит вы настраиваете всю палитру цветов на 256 позиций, а не только 16 первых позиций палитры, которые большинство эмуляторов терминала позволят вам настроить.

Ответ 2

Существует один способ использования копии удаленного хоста, используя SSH для пересылки клиенту X11, например:

[email protected]:~/$ ssh -X [email protected]
...
[email protected]:~/$ gvim file

Последняя команда должна открывать gvim на вашем рабочем столе. Конечно, это зависит от удаленного хоста, у которого есть X11/gnome/gvim, в первую очередь, это может быть не решение, которое вы ищете/вариант в вашем случае.

Примечание. Пересылка X11 может представлять угрозу безопасности.

Ответ 3

Чтобы netrw работал без проблем, я считаю, что вам не нужно находиться в режиме совместимости.

Try

: установить nocompatible

затем

: редактировать scp://host/path/to/file

Ответ 6

EDIT: аутентификация ключа не требуется для открытия файлов по ssh. Vim запросит пароль.

Было бы полезно отметить, был ли netrw.vim загружен vim при его запуске.

:echo exists("g:loaded_netrwPlugin")

Для открытия файлов по ssh вам нужен открытый ключ локального компьютера в авторизованных ключах сервера. Следующий раздел справки в документации vim объясняет это довольно хорошо.

:help netrw-ssh-hack

Быстрый способ экспорта открытого ключа был бы с помощью ssh-copy-id (если он доступен).

ssh-copy-id [email protected]

И посмотрите документацию netrw для редактирования сетевого файла по другим протоколам.

:help netrw

НТН.

Ответ 7

В соответствии с документами BufEnter обрабатывается после чтения файла и создания буфера, поэтому я предполагаю, что netrw успешно прочитал файл, но у вас есть плагин, предполагающий, что файл находится в локальной файловой системе и пытается получить доступ это, например для запуска ctags.

Попробуйте отключить все ваши скрипты плагинов, кроме Vim по умолчанию, а затем отредактируйте файл.

Кроме того, попробуйте отредактировать каталог, чтобы узнать, может ли netrw прочитать это - вам нужно поместить/на конец, чтобы netrw знал, что это каталог.

Ответ 8

О вашей команде: e scp://[email protected]/./path/to/file: обратите внимание, что с помощью netrw scp берется относительно вашего домашнего каталога на этом удаленном хосте. Чтобы избежать родственного пути, отбросьте это "."; то есть.: e scp://имя_пользователя @remotehost//путь/в/файл.

Ответ 9

чтобы выполнить это на окнах, загрузите/установите библиотеку Dokan и Dokan SSHFS, которые являются первыми и последними ссылками на этой странице.

Ответ 10

Я не думал, что вы сможете напрямую редактировать удаленный файл, используя GVIM, работающий локально. Однако, как отмечали другие, это возможно. Это выглядит очень интересно; Я проверю это. Я оставлю остальную часть своего сообщения здесь, в случае, если это полезно кому-либо еще, в качестве альтернативного метода. Этот метод будет работать, даже если у вас нет доступа к файлу SSH (т.е. У вас есть только FTP или S3 или что-то еще).

Вы можете получить этот эффект, связав GVIM с графическим приложением передачи файлов. Например, в OS X я использую CyberDuck для передачи файлов (FTP, SFTP и т.д.). Затем я настроил на использование GVIM в качестве моего редактора, поэтому я могу просто дважды щелкнуть файл в удаленном списке, и CyberDuck загрузит копию этого удаленного файла и откроет его в GVIM. Когда я сохраняю его в GVIM, CyberDuck загружает файл обратно на удаленный хост.

Я уверен, что эта функциональность не уникальна для CyberDuck и, вероятно, присутствует в наиболее удобных утилитах передачи файлов.