在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://user@remotesystem/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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...