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