在Linux系統中使用Vim讀寫遠程文件

来源:https://www.cnblogs.com/yychuyu/archive/2020/07/29/13399373.html

大家好,我是良許。 今天我們討論一個 Vim 使用技巧——用 Vim 讀寫遠程文件。要實現這個目的,我們需要使用到一個叫 netrw.vim 的插件。從 Vim 7.x 開始,netrw.vim 就被設置為預設安裝的標準插件了。這個插件允許用戶通過 ftp、rcp、scp、http 等協議讀寫、編輯 ...


大家好,我是良許。

今天我們討論一個 Vim 使用技巧——用 Vim 讀寫遠程文件。要實現這個目的,我們需要使用到一個叫 netrw.vim 的插件。從 Vim 7.x 開始,netrw.vim 就被設置為預設安裝的標準插件了。這個插件允許用戶通過 ftp、rcp、scp、http 等協議讀寫、編輯和瀏覽遠程文件。

插件 netrw 是什麼?

netrw(面向網路的讀寫和瀏覽 Network oriented reading, writing and browsing)插件不僅支持本地和遠程終端跨網路編輯、讀寫文件,還能支持瀏覽本地和遠程終端目錄。需要瞭解這個插件的更多細節信息,在 Vim 會話輸入 help netrw 即可查看。

下麵讓我們來看看怎麼用 Vim 從本地系統讀寫存儲在遠程 Linux 系統上的文件。

使用 Linux 系統上的 Vim 讀寫遠程文件

讀寫遠程文件的方法幾乎和編輯遠程文件一樣,需要從本地系統讀取一個遠程文件,我們可以簡單的使用下麵這個命令來打開它:

$ vim scp://[email protected]/info.txt

操作示例

輸入 q 退出文件。

要從本地系統寫一個遠程文件,也是先用上述命令打開文件,之後再按 i 進入插入模式接著就可以往文件里寫入了。等寫完需要寫入文件的內容之後,按 ESC 鍵退出插入模式,然後輸入 wq 保存並退出。

操作示例

命令背後的運行過程實際上是用 scp 命令將遠程文件拷貝到本地系統的 /tmp 目錄下,然後再打開文件編輯的。在你編輯完後,scp 命令再次將本地已編輯文件拷貝回遠程系統。

要從本地查看遠程文件內容是否真的改動過用這一條命令:

$ ssh [email protected] cat info.txt

請註意,如果你要用遠程終端目錄的絕對路徑,應像如下所示命令一樣使用雙斜杠:

$ vim scp://[email protected]//home/cirdan/Documents/info.txt

如果你已經因為安全原因改變了SSH埠,則應當顯式地說明SSH埠號,如下所示:

$ vim scp://[email protected]:2200/info.txt

這裡埠 2200 就是我們自定義的埠號,大家可以根據具體情況使用自己的 ssh 埠號替代上述命令中的2200。

如果你沒有 ssh/scp 的通道,也可以用其他協議來替代,如下所示:

$ vim ftp://[email protected]/path/to/file

在Vim會話里讀寫遠程文件

如果你已經進入了一個 Vim 會話,則可以使用 Nread(NetRead)和 Nwrite(NetWrite)命令來讀寫遠程文件。

假如,我們現在使用如下命令打開本地系統的 Vim 編輯器:

$ vim

接著你就進入了 Vim 會話,要在本地新緩存中的 Vim 會話中讀一個遠程文件,只需要運行如下命令:

:e scp://[email protected]/info.txt

除此之外,還可以用 Nread 命令如下所示:

:Nread scp://[email protected]/info.txt

或者,這樣輸入:

:Nread "scp://[email protected]/info.txt"

操作示例

想要知道這個命令的詳細信息,請在 Vim 會話中輸入如下命令:

:Nread ?

讀完說明文件後,輸入 :q 退出文件即可。

與之相似,要寫入遠程文件也應先使用如下命令:

:e scp://[email protected]/info.txt

i 鍵進入插入模式就可以寫入和修改文件了。

你也可以用 :w 創建並寫文件,但是這個命令只能創建一個新的空文件:

:w scp://[email protected]/info.txt

寫完之後,按 ESC 鍵退出編輯,然後輸入:wq保存並退出文件。

除此之外,還可以用 Nwrite 命令創建並寫入文件,其用法示例如下:

:Nwrite scp://[email protected]/info.txt

關於 Nwrite 命令的詳細信息,在Vim會話中輸入如下信息即可:

:Nwrite ?

希望這篇文章對各位有所助益。


公眾號:良許Linux

有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章


您的分享是我們最大的動力!

更多相關文章
  • 原文:https://almirai.live/Coding/Java/JavaWeb/Basics/type/ 數據類型 基本類型 類型 占用空間(Byte) 取值範圍 byte(位元組型) 1 -128~127 short(短整型) 2 −216~216−1 int(整型) 4 −231~231− ...
  • 提起AI,大家都會先想到Python,確實Python作為一門好幾十年的老語言,上一波的AI大流行使它煥發了青春。大家用Phtyon來做AI,最主要的原因無非就是編碼量更少,很多數學和AI相關的Api都是現成的。但是隨著ML.net的問世,我們現在可以在.netcore平臺上使用比Python更少的 ...
  • 環境: Vs 2015 .net 4.5.2 源碼: public static void toScreen() { ThreadStart ts = new ThreadStart(() =>//開線程 { Screen scr = Screen.PrimaryScreen; Rectangle ...
  • 效果圖片: 分步解析實現過程: 一.新建報表所需要的文件以及類: 1.新建一個WindowForm項目WindowsFormsReport; 2. 添加Entity文件夾,並添加StudentEntity.cs類; public class StudentEntity { /// <summary> ...
  • 一 使用背景: 通過Http 請求下載一個壓縮的文件到伺服器記憶體中(重點:不用保存到本地),然後通過代碼直接提取壓縮包的文件 二 實現思路:(註:需要提前安裝 ICSharpCode.SharpZipLib.dll) 1 通過Http請求下載壓縮文件到伺服器的記憶體中 2 讀取記憶體中壓縮的包的流(註意 ...
  • 上篇我們完成了數據源保存功能,並順便看了保存後的數據源列表展示功能。 本篇我們開始開發預覽功能,用戶預覽主要步驟: 1、點擊數據源卡片預覽按鈕 2、查看數據源包含的表 3、點擊表名,預覽表中數據 一、前端結構及樣式 效果如下圖(靜態html示意圖): 左側是數據源及包含的表。 右上為篩選條件(篩選條 ...
  • 基於kubeadm快速部署kubernetes K8S V1.17.4集群,並部署Dashboard Web頁面,實現可視化查看Kubernetes資源 ...
  • 在容器里增加、刪除或修改文件,其實都是對可寫層里的文件副本進行了操作。在容器關閉後,該可寫層也會被刪除,對容器的所有修改都會失效,因此需要解決容器內文件持久化的問題。Docker提供了兩種方案來實現: 一、Docker掛載時創建捲:把宿主機文件系統里的目錄映射到容器內的目錄。如此一來,容器內在該目錄 ...
一周排行
  • 比如要拆分“呵呵呵90909086676喝喝999”,下麵當type=0返回的是中文字元串“呵呵呵,喝喝”,type=1返回的是數字字元串“90909086676,999”, private string GetStrings(string str,int type=0) { IList<strin ...
  • Swagger一個優秀的Api介面文檔生成工具。Swagger可以可以動態生成Api介面文檔,有效的降低前後端人員關於Api介面的溝通成本,促進項目高效開發。 1、使用NuGet安裝最新的包:Swashbuckle.AspNetCore。 2、編輯項目文件(NetCoreTemplate.Web.c ...
  • 2020 年 7 月 30 日, 由.NET基金會和微軟 將舉辦一個線上和為期一天的活動,包括 微軟 .NET 團隊的演講者以及社區的演講者。本次線上大會 專註.NET框架構建微服務,演講者分享構建和部署雲原生應用程式的最佳實踐、模式、提示和技巧。有關更多信息和隨時瞭解情況:https://focu... ...
  • #abp框架Excel導出——基於vue #1.技術棧 ##1.1 前端採用vue,官方提供 UI套件用的是iview ##1.2 後臺是abp——aspnetboilerplate 即abp v1,https://github.com/aspnetboilerplate/aspnetboilerp ...
  • 前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:碧茂大數據 PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取 input()輸入 Python提供了 input() 內置函數從標準輸入讀入一 ...
  • 從12年到20年,python以肉眼可見的趨勢超過了java,成為了當今It界人人皆知的編程語言。 python為什麼這麼火? 網路編程語言搜索指數 適合初學者 Python具有語法簡單、語句清晰的特點,這就讓初學者在學習階段可以把精力集中在編程對象和思維方法上。 大佬都在用 Google,YouT ...
  • 在社會上存在一種普遍的對培訓機構的學生一種歧視的現象,具體表現在,比如:當你去公司面試的時候,一旦你說了你是培訓機構出來的,那麼基本上你就涼了,那麼你瞞著不說,然後又通過了面試成功入職,但是以後一旦在公司被髮現有培訓經歷,可能會面臨被降薪,甚至被辭退,培訓機構出來的學生,在用人單位眼裡就是能力低下的 ...
  • from typing import List# 這道題看了大佬寫的代碼,經過自己的理解寫出來了。# 從最外圍的四周找有沒有為O的,如果有的話就進入深搜函數,然後深搜遍歷# 判斷上下左右的位置是否為Oclass Solution: def solve(self, board: List[List[s ...
  • import requests; import re; import os; # 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, li ...
  • import requests; import re; import os; import parsel; 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537. ...