Поиск по сайту:

Советы по Vim — чтение и запись удаленных файлов с помощью Vim в Linux

Некоторое время назад мы обсуждали, как редактировать удаленные файлы с помощью редактора Vim в Linux. Используя этот метод, мы редактировали файлы, хранящиеся в удаленной системе, через SSH, без необходимости входа в удаленную систему. Сегодня мы обсудим аналогичный совет по Vim — чтение и запись удаленных файлов с помощью Vim. Начиная с версии Vim 7.x, плагин netrw.vim устанавливается как стандартный плагин по умолчанию. Этот плагин позволяет пользователям читать, редактировать, записывать и просматривать удаленные файлы через ftp, rcp, scp или http.

Что такое плагин Netrw?

Для тех, кому интересно: плагин Netrw (сетевое чтение, запись и просмотр) поддерживает локальное и удаленное редактирование, чтение и запись файлов в сетях. Он также поддерживает просмотр как локальных, так и удаленных каталогов. Для получения более подробной информации введите :help netrw в сеансе vim. Давайте продолжим и посмотрим, как читать или записывать файлы, хранящиеся в удаленной системе Linux, из нашей локальной системы с помощью Vim.

Чтение и запись удаленных файлов с помощью Vim в Linux

Чтение и запись удаленных файлов практически аналогичны редактированию удаленных файлов.

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

vim scp://sk@192.168.225.22/info.txt

Введите q, чтобы выйти из файла.

Чтобы записать в удаленный файл, просто откройте его, как показано выше, и нажмите "i", чтобы войти в режим вставки и, наконец, начать в него запись. Закончив, нажмите ESC и введите :wq, чтобы сохранить изменения и выйти.

На самом деле в фоновом режиме происходит копирование удаленного файла в каталог «/tmp» вашей локальной системы с помощью команды scp. И затем файл открывается для редактирования. После завершения команда scp копирует файл обратно в удаленную систему.

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

ssh sk@192.168.225.22 cat info.txt

Обратите внимание: если вы хотите указать абсолютный путь к каталогу на удаленном хосте, используйте двойную косую черту (//), как показано в следующей команде:

vim scp://sk@192.168.225.22//home/sk/Documents/info.txt

На тот случай, если вы уже изменили порт SSH по умолчанию в целях безопасности, вам следует явно указать порт SSH, как показано ниже.

vim scp://sk@192.168.225.22:2200/info.txt

Замените 2200 на номер порта SSH.

Если у вас нет доступа по ssh/scp, вы можете использовать другие протоколы, например ftp, как показано ниже.

vim ftp://user@remotesystem/path/to/file

Чтение и запись удаленных файлов в сеансе Vim

Если вы уже находитесь в сеансе Vim, вы можете читать и записывать удаленные файлы с помощью команд Nread (NetRead) и Nwrite (NetWrite).

Откройте редактор Vim в вашей локальной системе, используя следующую команду:

vim

Теперь вы находитесь внутри сеанса Vim. Чтобы прочитать удаленный файл из локального сеанса Vim в новом буфере, просто запустите:

:e scp://sk@192.168.225.22/info.txt

Альтернативно вы можете использовать команду "Nread", как показано ниже.

:Nread scp://sk@192.168.225.22/info.txt

Или,

:Nread "scp://sk@192.168.225.22/info.txt"

Для получения более подробной информации введите следующую команду внутри сеанса Vim:

:Nread ?

После прочтения файла введите :q для выхода.

Аналогично, чтобы записать удаленный файл, запустите:

:e scp://sk@192.168.225.22/info.txt

Нажмите «i», чтобы войти в режим вставки и начать писать/изменять его.

Вы также можете использовать команду :w для создания и записи файлов. Но эта команда создаст только новый пустой файл.

:w scp://sk@192.168.225.22/info.txt

После написания нажмите ESC и введите :wq, чтобы сохранить изменения и выйти.

Альтернативно, используйте команду "Nwrite" для создания и записи файлов, как показано ниже.

:Nwrite scp://sk@192.168.225.22/info.txt

Чтобы узнать более подробную информацию о Nwrite, введите в сеансе Vim следующее:

:Nwrite ?

Надеюсь это поможет.

Рекомендуем прочитать:

  • Выполнение команд в удаленных системах Linux через SSH

Статьи по данной тематике