從實用的角度聊聊Linux下文本編輯器VIM

本文從實用的角度聊聊Vim的常用命令。何為實用?我舉個不實用的例子大家就明白了,用vim寫代碼。;)

“vim是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統用戶最喜歡的文本編輯器。”? ?——摘自百度百科

vim功能強大,但很多人寫代碼都不用,因為有更好的編輯代碼的軟件(時代進步了)。但盡管如此,依然無法掩飾vim編輯器在某些領域用處不凡,有很多配置文件用vim編輯我感覺非他莫屬,下面來聊一聊vim的使用。重點講解復制一段文本粘貼文本刪除行查找字符串等這些常用的操作。

vim是vi的增強版本,在終端輸入vim命令后面加上文件名即可打開文件,例如:

vim test.txt

當然文件也可以是加路徑的,沒問題。如果目標文件存在,則vim打開該文件,若目標文件不存在,則新建該文件。這一點上比較人性化,不錯。當你打開一個文件就會有下面的界面,如下圖!

其中打開文件還有幾種常用的方式:

vim -R test.txt

vim 加-R,這代表以只讀的模式打開文本。如果打開文本想直接定位到某行,可以如下操作:

vim test.txt +10

這代表打開test.txt文本同時定位到第10行的位置。

當你剛打開這個編輯器的時候發現當前狀態是無法輸入的,只可以移動光標。因為vim擁有三種模式:命令模式、插入模式和ex模式。剛打開的時候的模式為命令模式,在這個狀態下,無法輸入,在命令模式中按“i”鍵可以進入到插入模式,在這個插入模式下才進行文本輸入。在插入模式中按esc可以返回命令模式。在命令模式中按“:”可以進入ex模式,在ex模式中可以保存、修改和退出。下面列一下命令模式和插入模式和ex模式的操作。首先說一句,任何模式都可以通過esc鍵回到命令模式。

命令模式:通常用于文本操作,例如復制粘貼一類。

i:在光標前插入文本。

o:在當前行的下面插入新行。

dd:刪除正行。

u:撤銷上一個操作。

y:復制選中文本。

yy :復制當前行。

n+yy:n是數字,例如,先按5,接著按yy,則是將5行內容復制。

v:進入可視模式,進入可視模式后,通過上下左右可以選出文本,之后通過y進行復制。

V:選擇當前行,通過j和k進行多行選擇,之后通過y進行復制。

p:粘貼。

r:替換當前關鍵字。

/ :查找關鍵字,輸入/ 后面加上想查找的字符串后回車,通過n或N,會切換上一個匹配項或下一個匹配項。

?:查找字符串,和上面的“/”查找正好相反,使用方式和上面的相同,但是查找的是上一個匹配項,n或N也和上面的命令相反,n會跳到上一個匹配項,N會跳到下一個匹配項。

插入模式:

命令模式下輸入“i”進入該模式,這個模式非常之簡單,因為插入模式就是輸入文本。如果要對文本進行粘貼操作等等,剛才我們說過按esc回到命令模式。

EX模式

:w 保存當前修改。

:q 退出。

:q! 強制退出。

:x 保存并退出。

:set number 顯示行號。(可以簡寫為:set nu)

:! 執行一個系統命令并顯示結果。例如,:!ls,ls是系統命令。

:sh 切換到終端命令行,使用ctrl+d切換回vim。

:set nohls 搜索時會有高亮字,該命令用于去除高亮字背景。

:set hls 重啟搜索時的高亮字。

現在來欣賞一下吧,用vim編輯器編寫的在程序界經典到不容錯過的helloworld程序。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74329.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74329.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

優化程序命名:提升專業感與用戶體驗

在軟件開發的廣闊天地中,程序命名這一環節常常被開發者們忽視。不少程序沿用著簡單直白、缺乏雕琢的名字,如同素面朝天的璞玉,雖不影響其核心功能的發揮,但卻在無形之中錯失了許多提升用戶印象與拓展應用場景的機會。今天&#xf…

LeetCode BFS解決最短路問題

廣度優先搜索(BFS, Breadth-First Search)是一種用于圖和樹結構的遍歷算法,特別適合解決無權圖的最短路徑問題。 算法思想: BFS從起始節點開始,按照"廣度優先"的原則,逐層向外擴展搜索: 先訪問起始節點的…

[物聯網iot]對比WIFI、MQTT、TCP、UDP通信協議

第一步:先理解最基礎的關系(類比快遞) 假設你要給朋友寄快遞: Wi-Fi:相當于“公路和卡車”,負責把包裹從你家運到快遞站。 TCP/UDP:相當于“快遞公司的運輸規則”。 TCP:順豐快遞&…

基于python的電影數據分析及可視化系統

一、項目背景 隨著電影行業的快速發展,電影數據日益豐富,如何有效地分析和可視化這些數據成為行業內的一個重要課題。本系統旨在利用Python編程語言,結合數據分析與可視化技術,為電影行業從業者、研究者及愛好者提供一個便捷的電…

Java8 到 Java21 系列之 Lambda 表達式:函數式編程的開端(Java 8)

Java8 到 Java21 系列之 Lambda 表達式:函數式編程的開端(Java 8) 系列目錄 Java8 到 Java21 系列之 Lambda 表達式:函數式編程的開端(Java 8)Java 8 到 Java 21 系列之 Stream API:數據處理的…

②EtherCAT/Ethernet/IP/Profinet/ModbusTCP協議互轉工業串口網關

型號 協議轉換通信網關 EtherCAT 轉 Modbus TCP 配置說明 網線連接電腦到模塊上的 WEB 網頁設置網口,電腦所連網口的網段設置成 192.168.1.X(X 是除 8 外的任一數值)后,打開瀏覽器,地址欄輸入 192.168.1.8 &#xff…

機器視覺--python基礎語法

Python基礎語法 1. Python標識符 在 Python 里,標識符由字母、數字、下劃線組成。 在 Python 中,所有標識符可以包括英文、數字以及下劃線(_),但不能以數字開頭。 Python 中的標識符是區分大小寫的。 以下劃線開頭的標識符是有特殊意義的…

算法日常記錄

1. 鏈表 1.1 刪除鏈表的倒數第 N 個結點 問題描述:給你一個鏈表,刪除鏈表的倒數第 n 個結點,并且返回鏈表的頭結點。 輸入:head [1,2,3,4,5], n 2 輸出:[1,2,3,5] 思路:先讓fast跑n步,然后…

14使用按鈕實現helloworld(1)

目錄 還可以通過按鈕的方式來創建 hello world 涉及Qt 中的信號槽機制本質就是給按鈕的點擊操作,關聯上一個處理函數當用戶點擊的時候 就會執行這個處理函數 connect(誰發的信號, 信號類型, 誰來處理這個信息, 怎么處理的&…

【Golang】泛型與類型約束

文章目錄 一、環境二、沒有泛型的Go三、泛型的優點四、理解泛型(一)泛型函數(Generic function)1)定義2)調用 (二)類型約束(Type constraint)1)接…

k8s常用總結

1. Kubernetes 架構概覽 主節點(Master): 負責集群管理,包括 API Server、Controller Manager、Scheduler 和 etcd 存儲。 工作節點(Node): 運行 Pod 和容器,包含 kubelet、kube-pr…

Android 單例模式全解析:從基礎實現到最佳實踐

單例模式(Singleton Pattern)是軟件開發中常用的設計模式,其核心是確保一個類在全局范圍內只有一個實例,并提供全局訪問點。在 Android 開發中,單例模式常用于管理全局資源(如網絡管理器、數據庫助手、配置…

ffmpeg濾鏡使用

ffmpeg實現畫中畫效果 FFmpeg中,可以通過overlay將多個視頻流、多個多媒體采集設備、多個視頻文件合并到一個界面中,生成畫中畫的效果 FFmpeg 濾鏡 overlay 基本參數 x和y x坐標和Y坐標 eof action 遇到 eof表示時的處理方式,默認為重復。…

OpenAI即將開源!DeepSeek“逼宮”下,AI爭奪戰將走向何方?

OpenAI 終于要 Open 了。 北京時間 4 月 1 日凌晨,OpenAI 正式宣布:將在未來幾個月內開源一款具備推理能力的語言模型,并開放訓練權重參數。這是自 2019 年 GPT-2 部分開源以來,OpenAI 首次向公眾開放核心模型技術。 【圖片來源于…

貪心算法,其優缺點是什么?

什么是貪心算法? 貪心算法(Greedy Algorithm)是一種在每一步選擇中都采取在當前狀態下最優(局部最優)的選擇,從而希望導致全局最優解的算法策略。 它不像動態規劃那樣考慮所有可能的子問題,而是做出局部最優選擇,依賴這些選擇來…

python string 類型字符拼接 +=的缺點,以及取代方法

在Python中,使用進行字符串拼接雖然語法簡單,但在性能和代碼維護方面存在明顯缺陷。以下是詳細分析及替代方案: 一、的缺點 性能低下 內存分配問題:字符串在Python中不可變,每次操作會創建新字符串對象,導…

web前端開發-JS

web前端開發-JS 什么是JavaScript Web標準也稱網頁標準,由一系列的標準組成,大部分由W3C(World Wide Web Consortium,萬維網聯盟)負責制定。三個組成部分: HTML:負責網頁的結構(頁面元素和內容)。CSS:負責網頁的表現(頁面元素的外觀、位置等頁面樣式,如:顏色、大小等)。JavaS…

Turtle綜合案例實戰(繪制復雜圖形、小游戲)

在學習了 Turtle 基本的繪圖技巧后,我們可以通過結合多個概念和技巧,繪制復雜的圖形或實現簡單的小游戲。本章將介紹兩個實戰案例: 繪制復雜圖形:結合前面所學的知識,繪制一個精美的多層次復雜圖案。簡單的游戲:利用 Turtle 實現一個簡單的小游戲——蛇形游戲,這是一個經…

Python設計模式:克隆模式

1. 什么是克隆模式 克隆模式的核心思想是通過復制一個已有的對象(原型)來創建一個新的對象(克隆)。這種方式可以避免重復的初始化過程,從而提高效率。克隆模式通常涉及以下幾個方面: 原型對象&#xff1a…

邏輯漏洞之越權訪問總結

什么是越權訪問漏洞? “越權訪問漏洞” 是 “邏輯漏洞” 的一種,是由于網站系統的權限校驗的邏輯不夠嚴謹,沒有對用戶權限進行嚴格的身份鑒別,導致普通權限的用戶做到了其它普通用戶或管理員才能完成的操作,稱之為“越…