Linux_編輯器Vim基本使用

18fde01fee5e4278981004762ce48cc4.png

?? 歡迎大家來到小傘的大講堂??

🎈🎈養成好習慣,先贊后看哦~🎈🎈

所屬專欄:LInux_st
小傘的主頁:xiaosan_blog

制作不易!點個贊吧!!謝謝喵!!!

1.編輯器Vim

IDE例子

1.1 Linux編輯器-vim使用

vi/vim的區別簡單點來說,它們都是多模式編輯器,不同的是vim是vi的升級版本,它不僅兼容vi的所有指令,而且還有一些新的特性在里面。例如語法加亮,可視化操作不僅可以在終端運行,也可以運行于xwindow、macos、windows。

對于Vim我們依然可以使用箭頭控制光標方向,在最初的鍵盤中并沒有箭頭控制,而是使用H(左)J(下)K(上)L(右),如今依然可以使用

1.2 vim的基本概念

vim存在多種模式,最常使用的有三種模式分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

正常/普通/命令模式(Normal mode)

控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到last line mode

插入模式(Insert mode)

只有在lnsert mode下,才可以做文字輸入按「ESC」鍵可回到命令行模式。

末行模式(last line mode)

文件保存或退出,也可以進行文件替換,找字符串,列出行號等操作
在命令模式下,*shift+即可進入該模式。要查看你的所有模式:打開vim,底行模式直接輸入:help vim-modes

2 vim的基本操作

進入vim,在系統提示符號輸入vim及文件名稱后,就進入vim全屏幕編輯畫面:
$ vim test.c

不過有一點要特別注意,就是你進入vim之后,是處于[正常模式],你要切換到[插入模式]才能夠輸入文字。

[正常模式]切換至[插入模式]

  • 輸入a
  • 輸入i(insert,我比較喜歡使用這個):按“i”進入插入模式后是從光標當前位置開始輸入文件;
  • 輸入o

[插入模式]切換至[正常模式]

目前處于[插入模式],就只能一直輸入文字,如果發現輸錯了字,想用光標鍵往回移動,將該字刪除,可以先按一下「ESC」鍵轉到[正常模式]再刪除文字。當然,也可以直接刪除。

[正常模式]切換至[末行模式]也就是命令行模式
「shift+;」,其實就是輸入「:

退出vim及保存文件,在[正常模式]下,按一下「:」冒號鍵進入「Lastlinemode」,例如:
:w(保存當前文件)
:wq(輸入「wq」,存盤并退出vim)
:q!(輸入q!不存盤強制退出vim)

2.1 vim正常模式命令集

插入模式

按「i」切換進入插入模式「insertmode」,按“i”進入插入模式后是從光標當前位置開始輸入
文件;
按「a」進入插入模式后,是從目前光標所在位置的下一個位置開始輸入文字;
按「o」進入插入模式后,是插入新的一行,從行首開始輸入文字

從插入模式切換為命令模式

按「ESC」鍵。

移動光標

vim可以直接用鍵盤上的光標來上下左右移動,但正規的vim是用小寫英文字母「h」、「j」、
「l」,分別控制光標左、下、上、右移一格
按「G」:移動到文章的最后
按「$」:移動到光標所在行的“行尾”
按「個」:移動到光標所在行的“行首”
按「w」:光標跳到下個字的開頭
按「e」:光標跳到下個字的字尾
按「b」:光標回到上個字的開頭

按「#l」:光標移到該行的第#個位置,如:5l,56l
按[gg]:進入到文本開始
按[shift+g]:進入文本末端
按「ctrl」+「b」:屏幕往“后”移動一頁
按「ctrl」+「f」:屏幕往“前”移動一頁
按「ctrl」+「u」:屏幕往“后”移動半頁
按「ctrl」+「d」:屏幕往“前”移動半頁

刪除文字

「x」:每按一次,刪除光標所在位置的一個字符
「#x」:例如,「6x」表示刪除光標所在位置的“后面(包含自已在內)”6個字符
「X」:大寫的X,每按一次,刪除光標所在位置的“前面”一個字符
「#X」:例如,「20X」表示刪除光標所在位置的“前面”20個字符

「dd」:刪除光標所在行
「#dd」:從光標所在行開始刪除#行

復制

「yw」:將光標所在之處到字尾的字符復制到緩沖區中。
「#yW」:復制#個字到緩沖區
「yy」:復制光標所在行到緩沖區。
「#yy」:例如,「6yy」表示拷貝從光標所在的該行“往下數”6行文字。
「p」:將緩沖區內的字符貼到光標所在位置。注意:所有與“V”有關的復制命令都必須與“p”配合才能完成復制與粘貼功能。

替換

「r」:替換光標所在處的字符。
「R」:替換光標所到之處的字符,直到按下「ESC」鍵為止。

撤銷上一次操作

「u」:如果您誤執行一個命令,可以馬上按下「u」,回到上一個操作。按多次“u”可以執行

多次回復。

「ctrl+r」:撤銷的恢復

更改

「cw」:更改光標所在處的字到字尾處
「c#w」:例如,「c3w」表示更改3個字

跳至指定的行

「ctrl」+「g」列出光標所在行的行號。
「#G」:例如,「15G」,表示移動光標至文章的第15行行首。

2.2 vim末行模式命令集

在使用末行模式之前,請記住先按「ESC」鍵確定您已經處于正常模式,再按「:」冒號即可進入末行模式。
列出行號

「setnu」:輸入「setnu」后,會在文件中的每一行前面列出行號。

跳到文件中的某一行

「#」:「#」號表示一個數字,在冒號后輸入一個數字,再按回車鍵就會跳到該行了,如輸入數字15,再回車,就會跳到文章的第15行。

查找字符

「/關鍵字」:先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往后尋找到您要的關鍵字為止。
「?關鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關鍵字為止。

保存文件

「w」:在冒號輸入字母「w」就可以將文件保存起來

離開vim

「q」:按「q」就是退出,如果無法離開vim,可以在「q」后跟→個「!」強制離開vim。
「wq」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件。

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

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

相關文章

MyBatis 高級映射功能詳解:處理復雜數據庫關系

MyBatis 的高級映射功能是其強大特性之一,它允許開發者輕松處理數據庫中的復雜關系,如一對一、一對多和多對多關系。本文將深入探討這些高級映射功能,包括映射配置方法、嵌套查詢和關聯查詢的使用,并通過示例代碼進行演示。 1.數據…

Halo:一個強大易用的國產開源建站工具

Halo 是一款國產開源的建站工具,適合快速搭建博客、論壇、知識庫、公司官網等多種類型的網站,目前在 GitHub 上已經獲得了 35.6k Star。 功能特性 Halo 核心功能與優勢包括: 插件架構:Halo 采用可插拔架構,功能模塊之…

Java-ArrayList集合的遍歷方式詳解

Java-ArrayList集合的遍歷方式詳解 二、ArrayList概述三、ArrayList的遍歷方式1. 普通for循環遍歷2. 增強for循環遍歷3. 迭代器遍歷4. ListIterator遍歷5. Java 8 Stream API遍歷 四、性能對比與分析性能測試結果分析 五、遍歷方式的選擇建議六、常見遍歷陷阱與注意事項1. 并發…

華為網路設備學習-23(路由器OSPF-LSA及特殊詳解 二)

OSPF動態路由協議要求: 1.必須有一個骨干區域(Area 0)。有且僅有一個,而且連續不可分割。 2.所有非骨干區域(Area 1-n)必須和骨干區域(Area 0)直接相連,且所有區域之間…

基于大模型的急性腐蝕性胃炎風險預測與診療方案研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的 1.3 國內外研究現狀 二、急性腐蝕性胃炎概述 2.1 定義與發病機制 2.2 病因分析 2.3 臨床表現與分型 2.4 診斷方法 三、大模型技術介紹 3.1 大模型原理 3.2 常用大模型及在醫療領域應用案例 3.3 選擇用于急性腐蝕性…

泰迪杯特等獎案例深度解析:基于三維點云與深度學習的復雜零件裝配質量檢測系統設計

一、案例背景與行業痛點 1.1 工業裝配質檢的現狀與挑戰 在精密制造領域(如航空航天發動機、新能源汽車電池模組),復雜零件的裝配質量直接影響產品性能與安全性。傳統人工質檢存在效率低(單件檢測耗時>3分鐘)、漏檢率高(約15%)等問題,而現有自動化方案面臨以下技術…

離散傅里葉變換DFT推導及理解

DTFT到DFT的推導 關于DTFT的相關推導已經做過總結,詳見《DTFT及其反變換的直觀理解》,每一個離散的頻率分量都是由時域中的復指數信號累加得到的,DTFT得到的頻譜時頻率的連續函數 。 離散時間傅里葉變換公式,式1: 將…

欣佰特科技|工業 / 農業 / AR 場景怎么選?Stereolabs ZED 雙目3D相機型號對比與選型建議

Stereolabs ZED 相機系列為視覺感知領域提供了多種創新解決方案,適用于不同應用場景。選擇合適的 ZED 相機型號,需綜合考慮分辨率、深度感知范圍、接口類型等因素。 Stereolabs ZED 相機產品系列概覽 ZED:首款立體視覺相機,專為高…

黑馬點評Reids重點詳解(Reids使用重點)

目錄 一、短信登錄(redisseesion) 基于Session實現登錄流程 🔄 圖中關鍵模塊解釋: 利用seesion登錄的問題 設計key的具體細節 整體訪問流程 二、商戶查詢緩存 reids與數據庫主動更新的三種方案 緩存穿透 緩存雪崩問題及…

【Pandas】pandas DataFrame add_suffix

Pandas2.2 DataFrame Reindexing selection label manipulation 方法描述DataFrame.add_prefix(prefix[, axis])用于在 DataFrame 的行標簽或列標簽前添加指定前綴的方法DataFrame.add_suffix(suffix[, axis])用于在 DataFrame 的行標簽或列標簽后添加指定后綴的方法 pandas…

解鎖MCP:AI大模型的萬能工具箱

摘要:MCP(Model Context Protocol,模型上下文協議)是由Anthropic開源發布的一項技術,旨在作為AI大模型與外部數據和工具之間溝通的“通用語言”。它通過標準化協議,讓大模型能夠自動調用外部工具完成任務&a…

nginx性能調優與深度監控

目錄 nginx性能調優 更改進程數與連接數 進程數 連接數 靜態緩存功能設置 日志切割 配置網頁壓縮 nginx 的深度監控 GoAccess 簡介 GoAccess安裝 ?編輯 配置中文環境 GOAccess生成中文報告 測試訪問 nginx vts 簡介 nginx vts 安裝 nginx配置開啟vts 測試訪問…

【時時三省】Python 語言----牛客網刷題筆記

目錄 1,常用函數 1,input() 2,map() 3,split() 4,range() 5, 切片 6,列表推導式 山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省 1,常用函數 1,input() 該函數遇到 換行停止接收,返回類型為字符串 2,map() 該函數出鏡率較高,目的是將一個可迭…

docker compose yml 啟動的容器中,如何使用linux環境變量賦值

在 Docker Compose 中,可以通過環境變量(${VAR} 或 $VAR)來動態配置容器。以下是幾種常見的使用方式 - 使用 env_file 加載變量文件 可以單獨定義一個環境變量文件(如 app.env),然后在 docker-compose.y…

深入解析Kafka JVM堆內存:優化策略與監控實踐

💝💝💝歡迎蒞臨我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:「storms…

git常用操作命令

本文介紹git常用的操作命令,供大家參考。 1、開始 # 初始化本地git git init# 在初始化的目錄中,創建readme.txt,添加到git庫中 git add readme.txt git commit -m "寫了一個readme.txt文件"2、版本回退 2.1、git reset git lo…

解鎖 MCP 中的 JSON-RPC:跨平臺通信的奧秘

你好,我是 shengjk1,多年大廠經驗,努力構建 通俗易懂的、好玩的編程語言教程。 歡迎關注!你會有如下收益: 了解大廠經驗擁有和大廠相匹配的技術等希望看什么,評論或者私信告訴我! 文章目錄 零、 背景一、RPC vs HTTP1.1 什么是RPC1.2 為什么需要 RPC?1.3 RPC 解決了什么…

【Redis】第1節|Redis服務搭建

一、Redis 基礎概念 核心功能 內存數據庫,支持持久化(RDB/AOF)、主從復制、哨兵高可用、集群分片。常用場景:緩存、分布式鎖、消息隊列、計數器、排行榜等。 安裝環境 依賴 GCC 環境(C語言編譯)&#xff0…

GitLab-CI簡介

概述 持續集成(CI)和 持續交付(CD) 是一種流行的軟件開發實踐,每次提交都通過自動化的構建(測試、編譯、發布)來驗證,從而盡早的發現錯誤。 持續集成實現了DevOps, 使開發人員和運維人員從繁瑣的工作中解…

FFmpeg解碼器配置指南:為什么--enable-decoders不能單獨使用?

FFmpeg解碼器配置指南 在FFmpeg的編譯配置過程中,許多開發者會遇到關于解碼器配置的困惑。特別是--enable-decoders這個選項,很多人誤以為啟用它就能自動包含所有解碼器。本文將深入解析FFmpeg解碼器配置的機制,并通過實際測試展示正確的配置…