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

Linux基礎命令介紹四:文本編輯vim

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

[[176296]]

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

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

  1. vim [options] [file ..] 

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

  1. vim file 

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

 

 

 

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

現在還不能進行編輯,vim編輯文件有幾種模式,當前所處模式是普通模式,可以移動光標、執行復制粘貼等命令;另外還有兩種常用模式:插入模式和底行模式。

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

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

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

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

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

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

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

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

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

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

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

比如要刪除光標當前所在位置一直到行尾,可以執行d$;

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

比如要粘貼被復制的內容,但希望粘貼5次,則執行5p;

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

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

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

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

如搜索文件內字符串centos:

  1. /centos 

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

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

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

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

這些命令也可以組合如執行shell命令并將結果寫入當前行的下一行:

  1. :r!ls -l 

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

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

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

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

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

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

這里n和m都是數字,代表行號??梢杂命c號.代表當前行

如刪除當前行到第五行的內容:

  1. :.,5d 

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

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

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

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

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

  1. 匹配位置: 
  2. ^ 表示行開頭 
  3. $ 表示行結尾 
  4. < 表示單詞開頭 
  5. > 表示單詞結尾 
  6. 匹配字符: 
  7. . 表示匹配任意單個字符(相當于通配符中的?) 
  8. [...] 表示匹配括號內任意單個字符 
  9. [^...] 表示匹配任意一個非列出字符 #參照通配符描述 
  10. \a    匹配英文字符,等同于[a-zA-Z]或[[:alpha:]]。 
  11. \A    匹配非英文字符,等同于[^a-zA-Z]。 
  12. \d    匹配數字,等同于[0-9]或[[:digit:]]。 
  13. \D    匹配非數字,等同于[^0-9]。 
  14. \x    匹配十六進制數字,等同于[0-9A-Fa-f]或[[:xdigit:]]。 
  15. \X    匹配非十六進制數字,等同于[^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. 匹配數量: 
  28. * 表示匹配前一個字符零到任意多次,相當于{0,}。 
  29. + 表示匹配前一個字符一到任意多次,相當于{1,}。 
  30. ? 表示匹配前一個字符零到一次,相當于{0,1}。#注意和通配符?的區別 
  31. {n,m} 表示匹配前一個字符n到m次。  

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

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

匹配字符串world并使光標停留在匹配行后第三行行首:

  1. /world/+3 

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

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

注意這里的行首符^和轉義符'\'的用法

如:

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

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

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

  1. /\a\{6,} 

如交換冒號:兩側的字符串:

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

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

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

如匹配hello或world兩個單詞:

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

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

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

責任編輯:龐桂玉 來源: segmentfault
相關推薦

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技術棧公眾號

主站蜘蛛池模板: 亚洲福利视频一区二区 | 国产综合在线视频 | 欧美高清一区 | 狠狠的操 | 国产欧美精品一区二区 | av免费在线观看网站 | 国产激情精品 | 91精品国产91久久久久福利 | 欧美精品日韩精品国产精品 | 91xx在线观看 | 亚洲欧美一区二区三区视频 | 中文字幕在线一区二区三区 | 一区二区在线不卡 | www.夜夜骑.com| 日韩视频精品在线 | 日韩欧美在| 欧美一区二区在线观看视频 | 午夜天堂精品久久久久 | av一级久久 | 一级黄色网页 | 91久久精品国产 | 成av在线 | 日本视频中文字幕 | 插插插干干干 | 成人免费一区二区三区视频网站 | 色视频成人在线观看免 | 欧洲一区二区视频 | 九色在线观看 | 人操人免费视频 | 男女精品网站 | 草草视频在线观看 | 91精品国产乱码久久久久久久久 | 欧美日韩免费视频 | 天天草天天射 | 影音先锋成人资源 | 成人 在线 | 欧美综合视频在线 | 成人精品一区二区 | 日韩在线小视频 | 天天舔天天 | 国产在线中文字幕 |