Советы по 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