Использование.netrc-файла с Vim (как альтернатива DreamWeavers FTP-клиенту)

Я пытаюсь использовать Vim вместо прекрасной боковой панели FTP-клиента DreamWeavers. Но я бы хотел, чтобы Vim "запоминал" мои логины, поэтому мне не нужно получать FTP-адрес, имя пользователя и пароль каждый раз, когда мне нужно подключиться к удаленному серверу, чтобы внести некоторые изменения. Я сделал это, чтобы выяснить, что можно настроить.netrc-файл, где вы можете сохранить учетные данные для входа в систему (и, возможно, зашифровать его, используя GPG, который я рассмотрю, после того как я получу это Работа). Я могу найти бесконечные руководства и учебные пособия о том, как настроить.netrc-файл, но нет информации о том, как на самом деле использовать этот.netrc-файл.

Так что если мой.netrc-файл выглядит так:

machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>

Тогда как мне, например, подключиться к <hostname2>? Я пишу vim <hostname2> - и если да, то что, если у меня есть несколько разных удаленных серверов на одном хосте (где меняются учетные данные пользователя и пароль)?

В идеале я хотел бы просто написать что-то вроде

vim ftp://MY_OWN_NICKNAME_FOR_A_REMOTE_SERVER

После этого Vim найдет учетные данные в.netrc-файле и свяжет меня с данным сервером. Как мне это сделать?

1 ответ

Решение

Файл.netrc предоставляет vim имена пользователей и пароли удаленных серверов. В командной строке, когда vim предоставляется с именем хоста, которое совпадает с именем компьютера, определенным в.netrc, он вставляет имя пользователя и пароль в URL. Например, если я хочу подключиться к ftp.server1.com и автоматически войти в систему, мне нужно будет настроить следующее в моем файле.netrc:

$ < .netrc 
machine ftp.server1.com login username password "secretpassword"
$ vim ftp://ftp.server1.com/ 

Если бы я хотел настроить несколько имен хостов в моем.netrc, я бы просто добавил новую запись:

$ < .netrc 
machine ftp.server1.com login username password "secret password"
machine ftp.server2.com login username password "secretpassword1"
machine ftp.server3.com login different_username password "secretpassword2"

Что может сбить с толку, так это то, что вы не можете использовать псевдоним имени хоста. Когда я впервые начал использовать эту функцию, я думал, что машина - это переменная, которую я могу предоставить, но это не так. Тем не менее, псевдонимы оболочки заменят отсутствие vim:

$alias server1=ftp://ftp.server1.com/
$vim $server1

Примечание: вам нужен этот трейлинг / на URL, чтобы сообщить vim, что вы просматриваете. Также обратите внимание, что существуют дополнительные сложности при использовании Windows OS, как описано в: help netrw.

Другие вопросы по тегам