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

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

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

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

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

Редактируйте удаленные файлы с помощью Vim в Linux

Редактировать удаленный файл с помощью Vim очень просто:

vim scp://user@remotesystem//path_to_file

Пример:

У меня есть текстовый файл с именем info.txt в моей удаленной системе и содержит следующую строку.

Welcome to OSTechNix

Теперь я собираюсь отредактировать этот файл и внести в него некоторые изменения, а затем сохранить и закрыть файл. Все из моей локальной системы!

Для этого я просто запускаю следующую команду:

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

Вот визуальная демонстрация вышеуказанной задачи:

Редактируйте удаленные файлы с помощью Vim в Linux

Здесь вам следует обратить внимание на следующие три вещи.

1. user@remotesystem (например, sk@192.168.225.22) - здесь sk — имя пользователя удаленной системы. 192.168.225.22 — IP-адрес удаленной системы.

2. Одинарная косая черта (/). Если вы хотите отредактировать файл, хранящийся в каталоге $HOME удаленной системы, вы должны использовать косую черту в конце для разделения файлов. IP-адрес или имя хоста удаленной системы из пути к файлу. В приведенном выше случае я сохранил файл info.txt в каталоге $HOME, поэтому использовал одинарную косую черту.

3./(Двойная косая черта) — чтобы указать полный путь к файлу, необходимо использовать двойную косую черту. Одна косая черта (/) используется для отделения IP-адреса или имени хоста удаленной системы от фактического пути к файлу. Другая косая черта используется для обозначения абсолютного (полного) пути к удаленному файлу. Например, предположим, что вы редактируете файл с именем info.txt, который находится в каталоге /home/sk/Documents/ вашей удаленной системы. В этом случае команда будет такой:

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

Обратите внимание на двойную косую черту между IP-адресом удаленной системы и путем к файлу. Двойная косая черта необходима только при указании абсолютного пути к удаленному файлу.

Проверьте содержимое удаленного файла в вашей локальной системе:

$ ssh sk@192.168.225.22 cat info.txt
sk@192.168.225.22's password: 
Welcome to OSTechNix blog

Редактируйте удаленные файлы с помощью Vim

Видеть? Я добавил дополнительное слово «блог» в файл 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 scp://sk@192.168.225.22/info.txt

Возможно, вы заметили следующий вывод в нижней части редактора Vim:

:!scp -q 'sk@192.168.225.22:info.txt' '/tmp/vsoDT6K/0.txt'
"/tmp/vsOLzGf/0.txt" 1L, 21C

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

Редактировать удаленные файлы в сеансе Vim

Если вы уже находитесь в сеансе Vim, вы можете редактировать удаленные файлы из вашей локальной системы, как показано ниже.

Откройте файл из Vim в новом буфере, выполнив следующую команду:

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

Внесите изменения в файл, нажмите клавишу ESC и введите :wq, чтобы сохранить и закрыть файл.

Взгляните на следующую визуальную демонстрацию.

Редактировать удаленные файлы в сеансе Vim в новом буфере

Как вы можете видеть в приведенном выше выводе;

  • Я открыл редактор Vim из своей локальной системы,
  • Затем я открыл удаленный файл с именем info.txt внутри сеанса Vim в новом буфере.
  • А затем внес некоторые изменения в файл,
  • Наконец, сохранил изменения и закрыл файл (ESC и :wq).

Вы также можете открыть файл в новой вкладке, выполнив:

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

Надеюсь это поможет. В ближайшие дни я опубликую больше советов по Vim. Продолжайте посещать!

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

  • Советы по Vim: чтение и запись удаленных файлов с помощью Vim в Linux
  • Выполнение команд в удаленных системах Linux через SSH

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