Я должен отредактировать некоторые файлы, размещенные на каком-либо сервере, к которому я мог бы обратиться через ssh.
Я бы предпочел отредактировать эти файлы в настроенном vim
на моей рабочей станции (у меня нет прав на изменение vim
настроек на удаленном сервере). Иногда я хотел бы отредактировать файл с помощью sublime text
другого графического редактора.
Конечно, я могу загрузить эти файлы, отредактировать их локально и загрузить обратно на сервер. Есть ли более элегантное решение?
deb
и, следовательно, не имеютapt-get
. (В этом случаеyum
илиzypper
может присутствовать.) Они также требуют root на локальном компьютере, который может или не может быть доступен. (Нельзя сказать, что это плохое решение, но оно имеет большое условие.)osxfuse
иsshfs
. Их можно установить с помощью homebrew (brew install sshfs
иbrew cask install osxfuse
из пакетов, полученных с osxfuse.github.ioВы можете сделать это
scp
следующим образом:Обратите внимание на две косые черты
//
между сервером и путем, которые необходимы для правильного определения абсолютного пути. (Первая косая черта является синтаксической, в то время как вторая косая черта, как обычно, указывает корневой каталог удаленного пользователя. Чтобы начать с домашнего каталога, вы должны это сделать[:port]/~/path/to/file.txt
.)[:port]
Необязательно.Это обрабатывается стандартным плагином vim для netrw.vim . Поддерживаются несколько других протоколов.
источник
E382: Cannot write, 'buftype' option is set
:set buftype=""
в VIM.~/.ssh/config
и разрешать удаленные хосты с помощьюvim scp://[host]/path
.:e scp://...
В зависимости от того, что вы имеете в виду, когда говорите, что у вас нет прав на редактирование настроек Vim, может быть способ использовать Vim на сервере так, как вы этого хотите. Если вы не можете изменить своего пользователя
.vimrc
(например, потому что вы входите в систему как пользователь с общим доступом), но вы все равно можете создавать файлы, создайте их как файл с именем скажем,Loom.vimrc
а затем вызовите Vim с помощью-u
переключателя:vim -u ~/Loom.vimrc file_to_edit
Даже тогда вы можете использовать псевдоним:
alias vim='vim -u ~/Loom.vimrc'
позволит вам использовать Vim обычным способом, и он все равно будет загружать ваш пользовательский.vimrc
файл. Этот псевдоним не будет сохраняться после выхода из системы, поэтому вам не нужно беспокоиться о том, что кто-то другой случайно воспользуется вашим настроенным Vim.источник
В зависимости от того, сколько файлов и какие файлы вы ожидаете отредактировать, возможно, это не совсем то, что вы хотите здесь сделать, но я думаю, что стоит упомянуть. Если вам нужно редактировать файлы на удаленном сервере, но вы хотите использовать все, что у вас есть на вашей рабочей станции, тогда вы можете подумать об использовании какой-либо системы контроля версий на ваших машинах. Таким образом, вы можете изменить свои локальные копии на своем собственном компьютере, используя выбранное программное обеспечение, зафиксировать изменения, а затем просто обновить локальные копии на конечном компьютере. Помимо редактирования файлов любым удобным для вас программным обеспечением, у вас есть дополнительная возможность иметь историю изменений, связанных с каждым файлом, что всегда хорошо.
Вот список программного обеспечения Revision Control , на всякий случай.
источник
git
, передачи чего- то подобногоgithub
и переноса измененийgithub
на локальный компьютер, чтобы внести изменения?Если продолжить, ответьте на вопрос мистера Поттса: Вы также можете сделать выше, а затем поместить что-то вроде этого в .bash_profile (или что-то, что использует ваша оболочка):
где Loom - ваш оригинальный идентификатор пользователя, в который вы входите как.
Если вы входите в систему как общая учетная запись (а не как отдельная учетная запись, то sudo suing), тогда пусть фон Нейман помилует вашу душу, потому что вы потеряны.
Я бы написал это в комментарии, но я никак не мог отформатировать код.
источник
Если у вас уже запущены сессии vim, используйте
:silent e scp://user@myserver[:port]//path/to/file.txt
:silent
Спереди будет подавитьPress Enter to Continue
сообщениеа также
e scp://user@myserver[:port]//path/to/file.txt
командаEx
режима для редактирования файла сноски.Протестировано для
BitVise SSHD
работы в Windows 10 и использования VIM в Ubuntu 16.04источник
Press Enter to Continue
для начальной загрузки, но не для каких-либо последующих:w