2017-01-15 35 views
1

我試圖使用Vim作爲DreamWeavers漂亮的FTP客戶端邊欄的替代品。但是我希望Vim能夠「記住」我的登錄信息,所以我不需要獲取FTP地址,用戶名和密碼,每次我需要連接到遠程服務器時,都需要進行一些更改。 我已經盡力弄清楚,可以設置一個.netrc文件,您可以在其中保存登錄憑據(並可能使用GPG對其進行加密,我將在此後對其進行加密上班)。我可以找到關於如何設置.netrc文件的無數手冊和教程,但沒有關於如何實際使用此.netrc文件的信息。在Vim中使用.netrc文件(作爲DreamWeavers FTP客戶端的替代品)

所以,如果我的.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文件的憑據,我連接到指定的服務器。我該怎麼做呢?

回答

2

.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" 

可能會令人困惑的是您不能別名主機名。當我第一次開始使用這個功能時,我認爲機器是我可以提供的一個變量 - 但事實並非如此。這就是說,一個shell別名將填充在Vim的缺乏:

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

注意:您需要一個尾隨/上的網址告訴你正在瀏覽活力。另請注意,使用windows操作系統時會遇到更多複雜問題,詳見:help netrw。