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

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

大家好,我是良許。 今天我們討論一個 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

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


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

-Advertisement-
Play Games
更多相關文章
  • 原文: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掛載時創建捲:把宿主機文件系統里的目錄映射到容器內的目錄。如此一來,容器內在該目錄 ...
一周排行
    -Advertisement-
    Play Games
  • 一:背景 準備開個系列來聊一下 PerfView 這款工具,熟悉我的朋友都知道我喜歡用 WinDbg,這東西雖然很牛,但也不是萬能的,也有一些場景他解決不了或者很難解決,這時候藉助一些其他的工具來輔助,是一個很不錯的主意。 很多朋友喜歡在項目中以記錄日誌的方式來監控項目的流轉情況,其實 CoreCL ...
  • 什麼是工業物聯網網關 工業物聯網網關是連接工業場景本地設備(如PLC、掃碼槍、機器人、數控機床等)與遠端業務系統(如SCADA系統、MES系統等)之間的硬體設備或軟體程式。終端設備和遠端業務系統之間的所有數據通信都通過工業物聯網網關來實現。 我們為什麼需要工業物聯網網關 因為從事汽車工業行業,在我們 ...
  • 在.NET Core的依賴註入框架中,服務註冊的信息將會被封裝成ServiceDescriptor對象,而這些對象都會存儲在IServiceCollection介面類型表示的集合中,另外,IServiceCollection介面類型預設使用的實現類型為ServiceCollection。這樣來看,實 ...
  • 如果業務邏輯比較簡單的話,一條主管道就夠了,確實用不到分支管道。不過當業務邏輯比較複雜的時候,有時候我們可能希望根據情況的不同使用特殊的一組中間件來處理 HttpContext。這種情況下如果只用一條管道,處理起來會非常麻煩和混亂。此時就可以使用 Map/MapWhen/UseWhen 建立一個分支 ...
  • .NET nanoFramework 安裝教程 準備材料​ esp32單片機(支持wifi藍牙) 安卓數據線(需要支持傳輸) 註意!請先安裝esp32驅動程式​ ESP32驅動鏈接 安裝 .NET nanoFramework固件快閃記憶體​ 安裝工具 dotnet tool install -g nano ...
  • Redis是大規模互聯網應用常用的記憶體高速緩存資料庫,它的讀寫速度非常快,據官方 Bench-mark的數據,它讀的速度能到11萬次/秒,寫的速度是8.1萬次/秒。 1. 認識Spring Cache 在很多應用場景中通常是獲取前後相同或更新不頻繁的數據,比如訪問產品信息數據、網頁數據。如果沒有使用 ...
  • 1、應用場景 1.1 kafka場景 ​ Kafka最初是由LinkedIn公司採用Scala語言開發,基於ZooKeeper,現在已經捐獻給了Apache基金會。目前Kafka已經定位為一個分散式流式處理平臺,它以 高吞吐、可持久化、可水平擴展、支持流處理等多種特性而被廣泛應用。 ​ Apache ...
  • Python帶我起飛——入門、進階、商業實戰_ 免費下載地址 內容簡介 · · · · · · 《Python帶我起飛——入門、進階、商業實戰》針對Python 3.5 以上版本,採用“理論+實踐”的形式編寫,通過大量的實例(共42 個),全面而深入地講解“Python 基礎語法”和“Python ...
  • 原文連接:https://www.zhoubotong.site/post/67.html Go 標準庫的net/url包提供的兩個函可以直接檢查URL合法性,不需要手動去正則匹配校驗。 下麵可以直接使用ParseRequestURI()函數解析URL,當然這個只會驗證url格式,至於功能變數名稱是否存在或 ...
  • 多商戶商城系統,也稱為B2B2C(BBC)平臺電商模式多商家商城系統。可以快速幫助企業搭建類似拼多多/京東/天貓/淘寶的綜合商城。 多商戶商城系統支持商家入駐加盟,同時滿足平臺自營、旗艦店等多種經營方式。平臺可以通過收取商家入駐費,訂單交易服務費,提現手續費,簡訊通道費等多手段方式,實現整體盈利。 ...