成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux基礎(chǔ)命令介紹四:文本編輯vim

系統(tǒng) Linux
本文介紹vim(版本7.4)的一般用法。vim是功能強大的文本編輯器,是vi的增強版。

[[176296]]

本文介紹vim(版本7.4)的一般用法。

vim是功能強大的文本編輯器,是vi的增強版。

  1. vim [options] [file ..] 

使用vim編輯一個文件的最常用命令就是:

  1. vim file 

其中file可以是一個新文件,也可以是原有文件。這樣的命令執(zhí)行后將打開編輯器,顯示文件file的內(nèi)容。如圖所示: 

 

 

 

如果是一個新文件,底部左邊會顯示"file" [新文件]的字樣,右邊顯示0,0-1表示當(dāng)前光標(biāo)所在行數(shù)和字符數(shù)。如果打開的是一個老文件,底部左邊顯示"file" 3L, 66C字樣,表示文件名,當(dāng)前光標(biāo)所處行號,文件總字節(jié)數(shù)。文件中沒有字符的地方會以字符~開頭。

現(xiàn)在還不能進行編輯,vim編輯文件有幾種模式,當(dāng)前所處模式是普通模式,可以移動光標(biāo)、執(zhí)行復(fù)制粘貼等命令;另外還有兩種常用模式:插入模式和底行模式。

開始進入的一般都是普通模式,按如下鍵將進入插入模式:

  1. a 在光標(biāo)所在位置下一個字符開始輸入 
  2. A 在光標(biāo)所在行尾開始輸入 
  3. i 在光標(biāo)所在位置開始輸入 
  4. I 在光標(biāo)所在行首開始輸入 
  5. o 在光標(biāo)所在行下新增一行,并在新增行行首開始輸入 
  6. O 在光標(biāo)所在行上新增一行,并在新增行行首開始輸入  

進入插入模式后,底部會出現(xiàn)-- 插入 --字樣;這時就可以在光標(biāo)位置進行輸入了。從插入模式退回到普通模式按ESC鍵。

在普通模式按如下鍵將進入底行模式:

  1. : 執(zhí)行命令 
  2. / 正向搜索 
  3. ? 反向搜索  

從底行模式退回到普通模式需按兩次ESC鍵

底行模式執(zhí)行:q(quit)表示退出編輯器,如果對文件內(nèi)容進行過更改,需要執(zhí)行:wq(write quit)來保存退出;如果不保存退出則需要執(zhí)行:q!強制退出;強制保存退出為:wq!。

下面列出一些在普通模式下可以執(zhí)行的命令及它們的作用:

  1. 文本修改: 
  2. .   重復(fù)上一個命令 
  3. x   刪除光標(biāo)位置的字符 
  4. d   從光標(biāo)處開始剪切 
  5. dd  剪切光標(biāo)所在位置的整行(保存在臨時緩沖區(qū)) 
  6. ndd n為數(shù)字,表示從當(dāng)前行開始,從上到下剪切n行 
  7. p   將緩沖區(qū)中的內(nèi)容放到當(dāng)前行之下 
  8. np  n是數(shù)字,相當(dāng)于執(zhí)行n次p命令 
  9. P   將緩沖區(qū)中的內(nèi)容放到當(dāng)前行之上 
  10. y   從光標(biāo)處開始復(fù)制 
  11. yy  復(fù)制當(dāng)前行(保存在臨時緩沖區(qū)) 
  12. nyy n為數(shù)字,表示從當(dāng)前行開始,從上到下復(fù)制n行 
  13. r   替換光標(biāo)所在位置的一個字符 
  14. R   從光標(biāo)位置開始替換,并進入文本輸入模式(ESC退出) 
  15. u   撤銷上一次操作 
  16. ZZ  保存退出 
  17. 移動光標(biāo): 
  18. h或左箭頭鍵 光標(biāo)向左移動一格 
  19. l或右箭頭鍵 光標(biāo)向右移動一格 
  20. j或下箭頭鍵 光標(biāo)向下移動一格 
  21. k或上箭頭鍵 光標(biāo)向上移動一格 
  22. 0 光標(biāo)移動到當(dāng)前行開頭 
  23. ^ 光標(biāo)移動到當(dāng)前行非空白字符(如空格、tab鍵等)的開頭 
  24. $ 光標(biāo)移動到當(dāng)前行結(jié)尾 
  25. g_ 光標(biāo)移動到當(dāng)前行非空白字符的結(jié)尾 
  26. w  光標(biāo)移動到下一個單詞的開頭 
  27. e  光標(biāo)移動到下一個單詞的結(jié)尾 
  28. *  匹配光標(biāo)所在單詞,移動到下一個相同的單詞 
  29. #  匹配光標(biāo)所在單詞,移動到上一個相同的單詞 
  30. f{ 光標(biāo)移動到當(dāng)前行的下一個字符{處,{可以換成其他字符 
  31. F} 光標(biāo)移動到當(dāng)前行的上一個字符}處 
  32. t, 光標(biāo)移動到當(dāng)前行的下一個逗號之前一個字符處 
  33. T, 光標(biāo)移動到當(dāng)前行的上一個逗號之后一個字符處 
  34. %  移動到成對括號的另一半括號處,包括() {} [].需要先將光標(biāo)移動到括號上。 
  35. gg 光標(biāo)移動到文件***行行首 
  36. G  光標(biāo)移動到文件***一行行首 
  37. 回車鍵 光標(biāo)移動到下一行行首  

這里只列出一部分,初學(xué)者也許會覺得太多,記不住。其實只要記住其中幾個,就完全可以使用了;其他的作用大多是使你的操作更簡便快捷。

vim中的各種命令,大多可以組合使用:

比如要刪除光標(biāo)當(dāng)前所在位置一直到行尾,可以執(zhí)行d$;

比如要在當(dāng)前位置插入50個‘word’,只需執(zhí)行50iword ESC按完ESC鍵之后這50個單詞就被插入了;

比如要粘貼被復(fù)制的內(nèi)容,但希望粘貼5次,則執(zhí)行5p;

比如要再次執(zhí)行上一次命令5次,則執(zhí)行5.;

熟練使用這些命令將極大提高編寫文件的速度。

在插入模式下(普通模式按a、i、o等),輸入一個單詞的開頭,然后按CTRL-P或CTRL-N就會自動補齊。

底行模式共三個開始字符(:、/、?),其中/和?用來匹配模式搜索:

如搜索文件內(nèi)字符串centos:

  1. /centos 

輸入這個字符串之后按回車,vim就會將所有匹配的字符串高亮顯示,按下n鍵,光標(biāo)就會跳到下一個匹配字符串處,按N鍵,光標(biāo)就會跳到上一個匹配處。(想想man查詢)

使用?和/的作用相同,不過是方向相反。

:可以執(zhí)行許多命令,如前面介紹過的保存退出命令:wq。下面介紹部分底行模式命令:

  1. :set nu   顯示行號 
  2. :set nonu 隱藏行號 
  3. :r file   讀取文件file內(nèi)容并寫入當(dāng)前編輯的文件中,內(nèi)容從光標(biāo)當(dāng)前位置下一行開始插入。 
  4. :w file   將當(dāng)前編輯的內(nèi)容寫入一個新文件file中。 
  5. :s /pattern/string/ 將匹配pattern的字符串替換成string 
  6. :x        作用和:wq相同,保存并退出。 
  7. :! command 暫時離開vim并執(zhí)行shell命令command。 
  8. :help     查看幫助 
  9. :.=       顯示當(dāng)前行號 
  10. :=        顯示總行數(shù) 
  11. :n        移動光標(biāo)到第n行行首  

這些命令也可以組合如執(zhí)行shell命令并將結(jié)果寫入當(dāng)前行的下一行:

  1. :r!ls -l 

還能組合其他模式下的命令如替換當(dāng)前行所有匹配模式的字符串:

  1. :s/pattern/string/g # g表示全局 

如替換本文件中所有匹配模式的字符串:

  1. :%s/pattern/string/g # %表示所有行 

如替換指定行的匹配字符串:

  1. :n,ms/pattern/string/g 

這里n和m都是數(shù)字,代表行號。可以用點號.代表當(dāng)前行

如刪除當(dāng)前行到第五行的內(nèi)容:

  1. :.,5d 

當(dāng)當(dāng)前行處于第五行以下時,會有反向刪除的提示。

使用/pattern和:s/pattern/string時,pattern是一個正則表達式,用來匹配一個字符串的模式。

正則表達式和之前介紹的通配符(基礎(chǔ)命令介紹二)有一些相似的地方,但要注意區(qū)分兩者的不同。

通配符主要是用于對文件名的匹配,正則表達式不僅可以用于匹配文件名,事實上,它可以進行任何字符串的匹配。它要比通配符更通用,大多數(shù)編程語言和一些工具中(如vim、grep、awk、sed)都有對正則表達式的直接支持。

下面介紹一部分將要用到的正則表達式的概念和用法:

  1. 匹配位置: 
  2. ^ 表示行開頭 
  3. $ 表示行結(jié)尾 
  4. < 表示單詞開頭 
  5. > 表示單詞結(jié)尾 
  6. 匹配字符: 
  7. . 表示匹配任意單個字符(相當(dāng)于通配符中的?) 
  8. [...] 表示匹配括號內(nèi)任意單個字符 
  9. [^...] 表示匹配任意一個非列出字符 #參照通配符描述 
  10. \a    匹配英文字符,等同于[a-zA-Z]或[[:alpha:]]。 
  11. \A    匹配非英文字符,等同于[^a-zA-Z]。 
  12. \d    匹配數(shù)字,等同于[0-9]或[[:digit:]]。 
  13. \D    匹配非數(shù)字,等同于[^0-9]。 
  14. \x    匹配十六進制數(shù)字,等同于[0-9A-Fa-f]或[[:xdigit:]]。 
  15. \X    匹配非十六進制數(shù)字,等同于[^0-9A-Fa-f]。 
  16. \w    匹配單詞,等同于[0-9A-Za-z_]。 
  17. \W    匹配非單詞,等同于[^0-9A-Za-z_]。 
  18. \t    匹配TAB字符。 
  19. \s    匹配空白字符,等同于[ \t]或[[:blank:]]。 
  20. \S    匹配非空白字符,等同于[^ \t]。 
  21. \u    匹配大寫字母,等同于[A-Z]或[[:upper:]]。 
  22. \U    匹配非大寫字母。 
  23. \n    匹配換行 
  24. \r    匹配回車 
  25. (...) 匹配并捕獲,用\1 \2 \3 ...來引用被捕獲的字符串。 
  26. |     表示邏輯或 
  27. 匹配數(shù)量: 
  28. * 表示匹配前一個字符零到任意多次,相當(dāng)于{0,}。 
  29. + 表示匹配前一個字符一到任意多次,相當(dāng)于{1,}。 
  30. ? 表示匹配前一個字符零到一次,相當(dāng)于{0,1}。#注意和通配符?的區(qū)別 
  31. {n,m} 表示匹配前一個字符n到m次。  

在使用正則表達式時,有時需要在特殊字符之前加上轉(zhuǎn)義字符"\"來使特殊字符表示它的字面意思而不是它的特殊意義,在特定的工具中使用正則時,也需要這樣做來避免特殊字符被工具本身解釋。

vim在使用如下正則表達式時需要將特殊字符轉(zhuǎn)義:\<...\>、\{n,m}、\(...\)、\?、\+、\|下面結(jié)合正則舉例說明vim中模式匹配及部分命令用法

匹配字符串world并使光標(biāo)停留在匹配行后第三行行首:

  1. /world/+3 

將第三行到第八行行首添加注釋符號//:

  1. :3,8s/^/\/\// 

注意這里的行首符^和轉(zhuǎn)義符'\'的用法

如:

  1. :%g/^\sxyz/normal dd 

此命令作用是全局匹配以空白后接xyz開頭的行,并執(zhí)行普通模式下的命令dd

如匹配6個以上的小寫字母:

  1. /\a\{6,} 

如交換冒號:兩側(cè)的字符串:

  1. :s/\(.*\):\(.*\)/\2:\1/ #注意這里是如何引用之前匹配的分組的 

如將所有tag、tog和tug分別改為hat、hot和hut

  1. :%s/t\([aou]\)g/h\1t/g 

如匹配hello或world兩個單詞:

  1. /\<hello\>\|\<world\> 

這里只列出部分vim用到的正則表達式,關(guān)于正則的更多內(nèi)容,以后的文章中還會有描述和舉例。

vim編輯器是很強大的,這里只描述了部分初級使用方法。vim還能使用視圖模式,編輯多文本,設(shè)置鍵盤映射,多剪貼板,錄制宏,使用插件等等。完全可以用vim作為IDE來使用。但相對來說,vim的學(xué)習(xí)曲線比較陡峭,不同的應(yīng)用場景,需要記憶的命令和方法數(shù)量也是完全不同的。建議在學(xué)習(xí)中,每次只熟悉幾個命令,一段時間后,就能流暢快捷的編輯文本了。

責(zé)任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2016-12-23 13:07:11

shelllinuxsed

2009-07-31 17:38:47

linux vi命令詳linux vi命令屏幕文本編輯器

2016-08-22 11:01:47

Linux命令行文本編輯器

2016-12-07 18:22:23

shelllinuxgrep

2019-06-14 09:12:46

漏洞代碼攻擊

2020-12-26 15:21:44

VimKakoune文本編輯器

2016-12-23 10:56:34

linuxshellawk

2018-01-29 14:37:52

Linux文本編輯器Geany

2020-12-23 22:25:11

Vi文本編輯器Unix

2020-08-20 17:21:35

VimRust IDELinux

2021-01-08 13:56:50

LinuxJOE文本編輯器

2017-02-14 10:00:57

2011-03-03 09:53:15

Linux文本編輯器

2023-01-20 08:53:11

Linux文本編輯器終端

2021-06-17 16:20:05

LinuxHelix文本編輯器

2021-02-16 09:17:40

VimLinux編輯器

2020-03-30 15:25:14

Vim編輯器Linux

2021-01-07 11:00:59

Sed文本編輯器Linux

2022-05-13 15:32:11

GNOME文本編輯器

2023-04-17 11:03:52

富文本編輯器MTE
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美a在线 | av在线黄 | 欧美 日韩 中文 | 手机在线不卡av | 日韩精品一区二区三区在线 | 中文天堂网 | 亚洲国产欧美91 | 91久久久久| 久久成人免费观看 | 久www | 欧美在线一区二区三区 | 久久精品16| 久久国产欧美一区二区三区精品 | 一级黄色片一级黄色片 | 国产一区欧美 | 国产成人精品一区二区三区网站观看 | 久久久91精品国产一区二区三区 | 91九色在线观看 | 亚洲成av人影片在线观看 | 在线播放国产一区二区三区 | 一级黄色毛片a | 午夜伦4480yy私人影院 | 国产精品久久久久久久免费观看 | 久久精品久久久 | 国产精品揄拍一区二区 | 91资源在线 | 日韩精彩视频 | 久久久久九九九女人毛片 | 精品在线观看一区二区 | 91视频在线 | 日本天堂视频 | 国产欧美日韩一区二区三区 | 久草在线视频中文 | 在线日韩不卡 | 青青久久久 | 激情久久av一区av二区av三区 | 黄色一级大片视频 | 国产免费一区二区三区免费视频 | 欧美亚洲激情 | 综合网中文字幕 | 中文在线a在线 |