Vim操作指南

vim具有6種基本模式和5種派生模式。

  • 基本模式

    • 普通模式

    • 插入模式

    • 可視模式

    • 選擇模式

    • 命令行模式

    • Ex模式

  • 派生模式

    • 操作符等待模式

    • 插入普通模式

    • 插入可視模式

    • 插入選擇模式

    • 替換模式

1.移動光標(普通模式下)

h:左

j:下

k:上

l:右

2.插入模式和退出VIM的方法

ls:顯示當前路徑下的文件

vi+文件名:打開文件,默認進入普通模式,可以使用1中所述的方向鍵,此時按i,即進入插入模式(左下角可以看見INSERT字樣)。

退出插入模式:按esc,退回普通模式。

進入插入模式的各種方法:

敲擊按鍵含義
i在光標的前面進入插入模式
I在光標所在行的行首進入插入模式
a在光標的后面進入插入模式
A在光標所在行的行尾進入插入模式
o在光標所在行的下方插入空行并進入插入模式
O在光標所在行的上方插入空行并進入插入模式
s刪除光標指定的字符并進入插入模式
S將光標所在行清除并進入插入模式

退出VIM的方法(多用命令行模式):

:q!:強制退出,不修改

:wq:保存退出

3.刪除命令、數字的奧義、撤銷和恢復命令

  • 刪除命令

    1.在普通模式下,刪除單一字符可以用x命令

    2.刪除更多字符可以使用d命令(delete),使用方法:d+motion

    motion——表示操作范圍的指令

按鍵含義
0將光標定位到行首的位置
^同上
$將光標移動到行位的位置
b將光標定位到光標所在單詞的起始處
e將光標定位到光標所在單詞的結尾處
w將光標定位到下一個單詞的起始處
gg將光標定位到文件的開頭
G將光標定位到文件的末尾

?

按鍵含義
d0刪除光標從當前位置(不包含)到該行行首的所有字符
d^同上
d$刪除從光標當前位置(不包含)到該行行尾的所有字符
db刪除從光標當前位置(不包含)到單詞起始處的所有字符
de刪除從光標當前位置(包含)到單詞結尾處的所有字符
dw刪除從當前位置(包含)到下一個單詞起始處的所有字符
dh刪除光標前邊一個字符
dl刪除光標指定的字符
dj刪除光標所在行及下一行的所有字符
dk刪除光標所在行以及上一行的所有字符
dd刪除光標所在行的所有字符
dgg刪除光標所在行到文件開頭的所有字符
dG刪除光標所在行到文件末尾的所有字符
  • 數字的奧義

    1.數字+motion:重復多個motion

    2.d+數字+motion:刪除多個motion范圍

  • 撤銷

    1.u表示撤銷最后一次修改

    2.U表示撤銷對整行的修改

    3.commend+r快捷鍵可以恢復撤銷的內容

    4.所有的刪除操作并不是真的刪除,而是存放在VIM的一個緩存區中,相當于剪切功能

4.粘貼命令,替換命令,替換模式和修改命令

  • 粘貼命令

    • 在VIM下使用刪除命令,并不會直接將你的東西刪掉,而是放到VIM的寄存器中。

    • 使用p命令可以將最后一次刪除的內容粘貼到光標之后(大寫的P可以粘貼到光標之前)

    • 注意:

      • 如果粘貼的是整行,p命令將在光標下一行粘貼

      • 如果粘貼的是局部字符串,p命令將在光標后開始粘貼

  • 拷貝命令

    • VIM用y(yank)命令實現拷貝:y[數字] motion

      • yy:拷貝當前行

  • 替換命令

    • r命令用于替換光標所在的字符,做法是先將光標移動到需要替換的字符出,按一下r鍵,然后輸入新的字符

    • 在鍵入r命令前輸入數字,表示從光標處開始,將多個字符統一替換為新字符

    • R命令直接進入替換模式

  • 修改命令

    • 修改和替換是不一樣的,修改會進入插入模式,替換不會進入插入模式

    • VIM用c命令實現修改:c[數字]motion

5.文件信息、跳轉、定位括號和縮進

  • control+g:顯示文件信息

  • 跳轉

    • 行號+G

    • :行號

  • 定位括號

    • 按下%鍵,快速找到另一半括號

  • 縮進(按C語言風格縮進)

    • >>右縮進,<<左縮進,數字+縮進符可以實現多行縮進

    • 按下v進入可視模式,按hjkl選擇行,然后按下>

6.搜索命令和替換命令

  • 搜索命令

?/目標?目標
搜索方向從光標開始向后從光標開始向前
n向后搜索下一個向前搜索下一個
N向前搜索下一個向后搜索下一個
    • 取消高亮::nohl

  • 十個特殊的字符

    • . * [ ] ^ % / ? ~ $ 不能直接搜索這十個字符,要加\轉義

  • 替換命令

    • :s/old/new

      • 表示將光標所在行的第一個old替換為new

    • :s/old/new/g

      • 表示將光標所在行的所有old替換為new

    • :%s/old/new/g

      • 表示將整個文件中的所有old替換為new

    • :%s/old/new/gc

      • 同上,但會在每次替換之前先請示

    • :5,13s/old/new/g

      • 表示替換第5行到第13行中所有的old為new

7.執行shell命令、文件另存為、合并文件和打開多個文件

  • 執行shell命令

    • :!

  • 文件另存為

    • :w 文件名

  • 局部內容另存為

    • 1.進入可視模式

    • 2.:w 文件名

  • 合并文件

    • :r 文件名

  • 打開多個文件

    • -o 垂直并排

    • -O 水平并排

    • 用control+w+w將光標切換到下一個文件

    • 對于垂直并排的文件:使用control+w+上下方向

    • 對于水平并排的文件:使用control+w+左右方向

    • :qa 退出全部文件

    • :wqa 保存全部修改

    • :qa! 忽略全部修改

轉載于:https://www.cnblogs.com/annika/p/8998011.html

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

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

相關文章

[DP/單調隊列]BZOJ 2059 [Usaco2010 Nov]Buying Feed 購買飼料

首先我想吐槽的是題目并沒有表明數據范圍。。。 這個題目 DP方程并不難表示。 dp[i][j]表示前i個地點攜帶了j個貨物的最小花費 dp[i][j] dp[i-1][k] (j-k) * cost j*j*(leng[i]-leng[i-1]) 如果你這樣直接提交上去&#xff0c;恭喜你超時&#xff01;&#xff01;&#xff0…

十天沖刺09

今天&#xff0c;和小伙伴在做密保功能的開發&#xff0c;而且通過密保可以找回用戶密碼。轉載于:https://www.cnblogs.com/Excusezuo/p/10923690.html

hdu 6168 Numbers

zk has n numbers a1,a2,...,an. For each (i,j) satisfying 1≤i<j≤n, zk generates a new number (aiaj). These new numbers could make up a new sequence b1&#xff0c;b2,...,bn(n?1)/2 . LsF wants to make some trouble. While zk is sleeping, Lsf mixed up seq…

039_MySQL_多表查詢

#創建部門 CREATE TABLE IF NOT EXISTS dept (did int not null auto_increment PRIMARY KEY,dname VARCHAR(50) not null COMMENT 部門名稱 )ENGINEINNODB DEFAULT charset utf8;#添加部門數據 INSERT INTO dept VALUES (1, 教學部); INSERT INTO dept VALUES (2, 銷售部); IN…

sqlserver 創建對某個存儲過程執行情況的跟蹤

有時候需要抓取執行存儲過程時某個參數的值&#xff0c;有時候程序調用存儲過程執行后結果不太對&#xff0c;不確定是程序的問題還是存儲過程的問題&#xff0c;需要單獨執行存儲過程看結果 即可用下面的方法 -- --創建對某個存儲過程的執行情況的跟蹤 --注意修改路徑 和 obje…

5.7 彈性盒子

彈性盒子定義彈性盒子 display&#xff1a;flex定義子元素排列方式 flex-diection定義子元素換行方式 flxe-wrap定義子元素對齊方式橫向對齊 justify-content縱向對齊 align-items 媒體查詢 media screen and (max-width:最大寬度)and &#xff08;min-width&#xff1a;最小…

4.navicat11激活教程,親測可用哦!

原文地址&#xff1a;http://blog.csdn.net/sanbingyutuoniao123/article/details/52589678Navicat是一款數據庫管理工具, 用于簡化, 開發和管理MySQL, SQL Server, SQLite, Oracle 和 PostgreSQL 的數據庫&#xff1b;Navicat數據模型工具以圖形化方式創建關聯式數據庫&#x…

漢諾塔問題深度剖析(python實現)

當我們學習一門編程語言的時候&#xff0c;都會遇到遞歸函數這個問題。而學習遞歸的一個經典案例就是漢諾塔問題。通過這篇文章&#xff0c;觀察移動三個盤子和四個盤子的詳細過程&#xff0c;您不僅可以深刻的了解遞歸&#xff0c;也更加熟悉了漢諾塔的游戲的玩法。 更好的閱讀…

iOS-QQ臨時對話、QQ群申請跳轉

QQ 臨時對話 NSString *qq [NSString stringWithFormat:"mqq://im/chat?chat_typewpa&uin%&&version1&src_typeweb","這是是QQ號碼"];NSURL *urlQQ [NSURL URLWithString:qq];[[UIApplication sharedApplication] openURL:urlQQ]; QQ 申…

[luoguP2331] [SCOI2005]最大子矩陣(DP)

傳送門 orz不會做。。。 一個好理解的做法&#xff08;n^3*k&#xff09;&#xff1a; 分n1和n2兩種情況考慮。 n1時&#xff0c;預處理出前綴和sum[]。 設f[i][j]為到達第i格&#xff0c;已經放了j個子矩陣的最大和&#xff0c; 那么每次先把f[i][j]的值設為f[i-1][j]&#xf…

想要去阿里面試?你必須得跨過 JVM 這道坎!

概述 很多人想要到阿里巴巴、美團、京東等互聯網大公司去面試&#xff0c;但是現在互聯網大廠面試一般都必定會考核JVM相關的知識積累和實踐經驗&#xff0c;畢竟線上系統寫好代碼部署之后&#xff0c;每個工程師都必須關注JVM相關的東西&#xff0c;比如OOM、GC等問題. 所以一…

醫學知識圖譜一

大綱 知識自動提取技術 醫學知識融合 醫學知識推理 轉載于:https://www.cnblogs.com/quietwalk/p/9000950.html

在一個div里,列表樣式圖片進行float,實現水平排序

<div class"xiangce"><ul> <li><a href"#"><img src"images/pic4.gif" alt"">產品名稱</a></li><li><a href"#"><img src"images/pic4.gif" alt"…

團隊開發git使用各種問題

參考:https://www.cnblogs.com/schaepher/p/4933873.html 問題-3:保持github上項目干凈&#xff0c;對于在不同機器上運行會不同的文件不予維護(如.idea/workspace.xml) 建議:對于項目輸出在項目目錄中的文件不予維護 對于IDE自動生成且與項目所在目錄有關的文件不予維護 將這些…

filebeat 亂碼

查看 文件的類型 [rootelk-node-1 rsyslog] # file 192.168.1.16.log 192.168.1.16.log: Non-ISO extended-ASCII text, with very long lines, with LF, NEL line terminators 如果命令返回結果說明改日志為utf-8&#xff0c;則logstash配置文件中charset設置為UTF-8 如果命令…

團隊編程項目代碼設計規范(爬取豆瓣電影top250)

基本格式 縮進 使用4個空格進行縮進 行寬 每行代碼盡量不超過80個字符 理由&#xff1a; 這在查看side-by-side的diff時很有幫助方便在控制臺下查看代碼太長可能是設計有缺陷換行 Python支持括號內的換行。這時有兩種情況。 第二行縮進到括號的起始處foo long_function_name(v…

程序員的浪漫

程序員的浪漫 馬上就到520了&#xff0c;各位小伙伴想好了準備什么禮物送個自己的另一半呢&#xff1f;還沒想好的注意啦&#xff01;&#xff01;現在還有機會&#xff0c;今天給大家分享一些程序員的浪漫創意禮物&#xff0c;希望你可以從中找到一些靈感。 One Link&#xff…

14-1 部署項目

1313轉載于:https://www.cnblogs.com/ZHONGZHENHUA/p/9011671.html

The listener supports no services

$ lsnrctl start 報錯提示: The listener supports no services The command completed successfully 如圖所示&#xff1a; 這樣啟動后遠程連接會報錯&#xff1a; oracle ORA-12514:TNS:listener does not currently know of service requested in connect descriptor 問題原…

Luogu P2577 [ZJOI2005]午餐

一道貪心類背包DP的好題 首先發現一個十分顯然的性質&#xff0c;沒有這個性質整道題目都難以下手&#xff1a; 無論兩隊的順序如何&#xff0c;總是讓吃飯慢的人先排隊 這是一個很顯然的貪心&#xff0c;因為如果讓吃飯慢的排在后面要更多的時間至少沒有這樣優 因此我們先按吃…