06 vim工具

目錄

  1. 概念
  2. 模式
  3. 基本操作
  4. 配置

1. 概念

vim是一個歷史悠久的,多模式的編輯器,是vi的升級版。和ide不同,編輯器僅能編寫文本,不能運行代碼,現階段的代碼編譯的各個過程會分開按步驟執行

在這里插入圖片描述

2. 模式

vim有很多種模式,想要編寫代碼需要掌握三種模式,分別是命令模式(command mode)、插入模式(insert mode)、底行模式(last line mode),模式區別如下:

  • 正常/普通/命令模式:

控制屏幕光標移動,字符或行的刪除,移動賦值某段進入insertmode下,或者到last line mode

  • 插入模式(insert mode)

只有在insert mode下,才可以文字輸入,按esc鍵回到命令模式,這個是使用最頻繁的

  • 末行模式(last line mode)

文件保存或退出,也可以進行文件替換,找字符串,列出行號等操作,命令模式下,shift+:進入該模式,打開vim,底行輸入: help vim-modes

一共有12種模式:six BASIC modes和six ADDITIONAL modes

在這里插入圖片描述

3. 基本操作

輸入vim [文件名]就可以進入vim編輯頁面,剛進入會處于正常模式,需要切換到插入模式,左下角顯示的是模式
在這里插入圖片描述
【正常模式】切換【插入模式】
插入模式可以正常輸入文字

輸入a 或 i 或 o

在這里插入圖片描述

【插入模式】切換【正常模式】
按esc鍵回到正常模式

【正常模式】切換【底行模式】

shifit+:
在這里插入圖片描述

退出vim和保存文件,在末行模式輸入:wq 保存并退出

正常模式命令

  • 插入模式
    按 i 進入插入模式,是從光標當前位置開始輸入
    按 a 進入插入模式,是從目標光標所在位置下一個位置開始輸入
    按 o 進入插入模式,是插入新的一行,從行首開始輸入

  • 從插入模式改為命令模式
    按esc鍵

  • 移動光標
    可以用上下左右鍵移動,正規的是h j k l 分別是左下上右
    按 [G]: 移動到文章的最后
    常用 按 [$]: 移動到光標所在行的行尾
    常用 按 [^]: 移動到光標所在行的行首
    按 [w]: 光標到下個單詞的開頭
    按 [e]: 光標到下個單詞的結尾
    按 [b]: 光標回到上個單詞的開頭
    按 [#l]: 光標移動到第#個位置
    按 g:移動到文章的最后
    常用 按 [gg] : 光標到文本開始
    常用 按 [shift+g] : 光標到文本末尾
    常用 n+shift+g: 光標定位文件的任意行
    按「ctrl」+「b」:屏幕往“后”移動一頁
    按「ctrl」+「f」:屏幕往“前”移動一頁
    按「ctrl」+「u」:屏幕往“后”移動半頁
    按「ctrl」+「d」:屏幕往“前”移動半頁

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

  • 復制
    常用 [dd]: 光標所在行,剪切(刪除) ,也可以ndd,刪除幾行
    「yw」:將光標所在之處到字尾的字符復制到緩沖區中。
    「#yw」:復制#個字到緩沖區
    常用「yy」:復制光標所在行到緩沖區。可以配合nyy,輸入數字復制幾行
    「#yy」:例如,「6yy」表示拷貝從光標所在的該行“往下數”6行文字。
    常用「p」:將緩沖區內的字符貼到光標所在位置。注意:所有與“y”有關的復制命令都必須與“p”配合才能完成復制與粘貼功能。可以配合np,輸入數字復制幾次

  • 替換
    常用 「r」:替換光標所在處的字符。支持nr
    「R」:替換光標所到之處的字符,直到按下「ESC」鍵為止。
    shift + ~: 大小寫替換

  • 撤銷
    常用「u」:如果您誤執行一個命令,可以馬上按下「u」,回到上一個操作。按多次“u”可以執行多次回
    復。
    常用「ctrl + r」: 撤銷的恢復

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

  • 跳轉到指定行
    「ctrl」+「g」列出光標所在行的行號。
    「#G」:例如,「15G」,表示移動光標至文章的第15行行首。
    常用 x: 刪除光標所在字符,也可以nx,之后幾個

shift+r: 進入替換模式,退出按esc,替換模式替換光標所在的字符

末行模式命令

  • 列出行號
    [set nu],取消行號 [set nonu]
  • 跳轉到文件某一行
    [#]: 表示數字,按回車鍵就會跳轉
  • 查找字符
    [/關鍵字]: 先按/鍵,再輸入想尋找的字符,如果這一次不是,可以這一會按n會往后查找
    [?關鍵字]: 先按?號,再輸入想尋找的字符,如果第一次不是想找的,按n會一直往后找
  • 保存文件
    [w]: 保存,可以加!
    [q]: 退出,加!號的意思是強制退出
    [wq]: 保存并退出,可以加!號

底行模式可以創建文件,保存后如果文件不存在會自動創建
底行模式再次打開一個文件,可以分屏操作,也可以創建不存在的文件

vs 文件名
在這里插入圖片描述

輸入 !cmd
不退出vim執行命令 (執行命令行,編譯,運行,查看man)等

4. 配置

配置文件的位置

在目錄/etc下面,有個名為vimrc的文件,這個是系統公共的vim配置文件,對所有用戶都有小
而在每個用戶的根目錄下,都可以自己建立一個.vimrc的文件,不存在創建

常用配置選項

語法高亮: syntax on
顯示行號: set nu
設置縮進的空格數4:set shiftwidth=4

使用插件

要配置好看的vim,原生的配置可能功能不全,可以選擇 安裝插件。

安裝TagList插件,下載taglist_xx.zip ,解壓完成,將解壓出來的doc的內容放到~/.vim/doc, 將解壓出來
的plugin下的內容拷貝到~/.vim/plugin
在~/.vimrc 中添加: let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let
Tlist_Use_Right_Window=1
安裝文件瀏覽器和窗口管理器插件: WinManager
下載winmanager.zip,2.X版本以上的
解壓winmanager.zip,將解壓出來的doc的內容放到~/.vim/doc, 將解壓出來的plugin下的內容拷貝到
~/.vim/plugin
在~/.vimrc 中添加 let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm :WMToggle
然后重啟vim,打開~/XXX.c或~/XXX.cpp, 在normal狀態下輸入"wm", 你將看到上圖的效果。
更具體移步:點我, 其他手冊,請執行 vimtutor 命令。

也可以直接輸入命令,按回車自動安裝別人上傳的配置
點此轉到

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

該腳本是git用戶Hgtz222創建
需要輸入root密碼

卸載輸入下面命令

bash ~/.VimForCpp/uninstall.sh

打開生成的.vimrc,修改縮進為4,將50-52行的2改為4
在這里插入圖片描述

vim配置參考文檔
vim從入門到精通

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

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

相關文章

方格分割644--2017藍橋杯

1.用dfs解決,首先這題的方格圖形就很像一個走迷宮的類型,迷宮想到dfs,最中心點視為起點,起點有兩個小人在這個方格里面對稱行動,直到走出迷宮(一個人走出來了另一個人就也走出來了,而走過的點會…

Vmware Esxi 部署Mac OS虛擬機

Vmware Esxi在創建虛擬機的時候是有Mac OS選項的,但是實際創建時,選擇ISO開機后一直反復引導,是有問題的,原因是需要先解鎖,需要在ESXI主機上修改配置并重啟。 首先找到管理-服務-TSM-ssh,點擊啟動&#x…

華納云:linux中tftp命令使用無效怎么解決

如果在Linux中使用TFTP命令時遇到問題,可能是由于以下幾種原因導致的,你可以嘗試以下方法解決: 檢查TFTP服務器是否正確配置:首先確保你正在連接的TFTP服務器已經正確配置并正在運行。你可以使用網絡工具(如ping命令)檢查與TFTP服…

★【二叉搜索樹(中序遍歷特性)】【 ★遞歸+雙指針】Leetcode 98. 驗證二叉搜索樹

★【二叉搜索樹(中序遍歷特性)】【 ★遞歸雙指針】Leetcode 98. 驗證二叉搜索樹 二叉搜索樹 98. 驗證二叉搜索樹解法1 笨 中序遞歸遍歷為一個數組 然后判斷數組是不是升序排列就可以★解法2 不使用數組 遞歸法 ---------------🎈&#x1f38…

【力扣】無重復字符的最長子串,滑動窗口 + 哈希集合

無重復字符的最長子串原題地址 方法一:滑動窗口(雙指針) 哈希集合 考慮找出字符串s的所有的無重復字符的子串,求出這些子串長度的最大值即可。 使用下標 [left,right] 來維護子串。我們只需要找到每一個 left 對應的所有 righ…

php PhpSpreadsheet 讀取日期變數字問題解決

問題描述: 使用PhpSpreadsheet 讀取表格數據,日期格式讀取后變成數字,如下圖: 解決方案: $cell $sheet->getCell(H . $row)->getValue(); $toTimestamp \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimes…

騰軒科技傳媒探討網絡整合營銷推廣的策略和效果

在當今高度信息化的商業環境中,整合營銷推廣(IMC)已經成為了品牌營銷策略的核心。它旨在通過多種渠道和平臺,將一致、連貫的品牌信息傳達給目標受眾,從而增強品牌知名度和忠誠度。騰軒科技傳媒將深入探討整合營銷推廣的…

【airtest】自動化入門教程(一)AirtestIDE

目錄 一、下載與安裝 1、下載 2、安裝 3、打開軟件 二、web自動化配置 1、配置chrome瀏覽器 2、窗口勾選selenium window 三、新建項目(web) 1、新建一個Airtest項目 2、初始化代碼 3、打開一個網頁 四、恢復默認布局 五、新建項目&#xf…

模擬算法題練習(一)

模擬算法介紹: 模擬算法通過模擬實際情況來解決問題,一般容易理解但是實現起來比較復雜,有很多需要注意的細節,或者是一些所謂很“麻模“的東西。 模擬題一般不涉及太難的算法,一般就是由較多的簡單但是不好處理的部…

【算法】最小生成樹—Prim算法與Kruskal算法

Prim算法和Kruskal算法都是解決最小生成樹問題的經典算法。最小生成樹是原圖的最小連通子圖,它包含原圖的全部結點,且保持圖連通的所有邊代價和最小。一個連通圖可能有多個最小生成樹。 一、Prim算法 含義 Prim算法,也被稱為普里姆算法&…

基于移動端的食堂助餐在線點餐配送系統 uniapp微信小程序

本文從管理員、老人、配送員、食堂商家的功能要求出發,養老助餐管理系統小程序中的功能模塊主要是實現老人、配送員、食堂商家、食堂大廳、預約選座、餐號信息、美食信息、美食訂單、訂單信息、訂單配送、訂單評價、老人食堂、下單信息、飲食分析。經過認真細致的研…

C語言可以干些什么?C語言主要涉及哪些IT領域?

C語言可以干些什么?C語言主要涉及哪些IT領域? 在開始前我有一些資料,是我根據網友給的問題精心整理了一份「C語言的資料從專業入門到高級教程」, 點個關注在評論區回復“888”之后私信回復“888”,全部無償共享給大家…

我在爭什么?

本來想寫一下2024項目部人員該怎么干,還沒有寫出來,大家內部就先動起來。針對現有情況做了分析: 作為項目人員(實施,運維) 需要有一定自我認識 認識清楚公司要什么? 認識清楚我自己要什么&…

內網安裝redis+部署redis-cluster集群

一、安裝redis redis安裝包下載地址: https://download.redis.io/releases/ 1.1 解壓編譯并創建數據目錄 tar xzvf redis-6.2.10.tar.gz -C /usr/local/ cd /usr/local/ mv redis-6.2.10/ redis cd /usr/local/redis/ make #編譯 …

Springboot整合SSE實現實時消息推送

SSE詳細介紹傳送門:SSE實時消息推送 簡單描述一下SSE推送在實際項目中應用的常見場景 1,項目頁面中有消息通知板塊,當信息有變化時,只有手動刷新頁面,才會看到最新的數據,這里可以采用SSE技術實時推送最新…

Docker技術概論(1):Docker與虛擬化技術比較

Docker技術概論(1) Docker與虛擬化技術比較 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https:…

深入解析Android-AutoLayout,2024安卓開發面試題及答案

前言 如果你也學習Android,那么你大概率會看過我的文章。經常有讀者給我留言:“該怎么學習Android?”、“日常學習Android的方法是什么”。 所以,今天,我將獻上一份《Android知識圖譜》,以自身的經驗 &…

ABAP 發送帶EXCEL郵件

前言 沒啥特殊需求,就是有個庫齡報表用戶想整郵件發送 實現 用的最簡單的XLS文件作為excel附件發送出去 觀察XLS文件的純文本格式,每列之間用TAB制表符分隔,每行之間用回車符分隔 思路也比較明確,在SAP中實現這種格式&#xf…

.Net利用Microsoft.Extensions.DependencyInjection配置依賴注入

一、概述 為了讓接口程序更加模塊化和可測試,采用依賴注入的方式調用接口方法。 二、安裝Microsoft.Extensions.DependencyInjection 在NuGet里面搜索Microsoft.Extensions.DependencyInjection,并進行安裝。 三、代碼編寫 3.1 創建Service 實現類 /*****************…

【跨境電商須知】FP獨立站的特點和痛點有哪些?

無論是做獨立站,還是做亞馬遜,都有各自的難點。自己做獨立站若要在跨境行業長足發展,既要知道FP獨立站有什么特點,要清楚FP獨立站的痛點并一一克服。 一、FP獨立站的特點 與依賴第三方平臺相比,擁有自己的域名、服務器…