Vim文本編輯命令


  • Vim

Vim是一個類似於 Vi的著名的功能強大、高度可定制的 文本編輯器,在Vi的基礎上改進和增加了很多特性。[1]   VIM是 自由軟件
Vim普遍被推崇為類 Vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。1999 年 Emacs被選為Linuxworld文本編輯分類的優勝者,Vim屈居第二。但在2000年2月Vim贏得了Slashdot Beanie的最佳 開放源代碼文本編輯器大獎,又將Emacs推至二線, 總的來看, Vim和Emacs同樣都是非常優秀的文本編輯器。
  • 安裝Vim

  • 啟動Vim

  vim 直接啟動vim

  • 文件命令

打開單個文件

vim file

同時打開多個文件

vim file1 file2 file3 ...

在vim窗口中打開一個新文件

:open file

在新窗口中打開文件

:split file

切換到下一個文件

:bn

切換到上一個文件

:bp

查看當前打開的文件列表,當前正在編輯的文件會用[]括起來。

:args

打開遠程文件,比如ftp或者share folder

:e ftp://192.168.10.76/abc.txt

:e \\qadrive\test\1.txt

  • Vim模式

正常模式(按Esc或Ctrl+[進入) 左下角顯示文件名或為空
插入模式(按i鍵進入) 左下角顯示--INSERT--
可視模式(正常模式下 按v進入) 左下角顯示--VISUAL--

  • 插入命令

i 在當前位置生前插入

I 在當前行首插入

a 在當前位置后插入

A 在當前行尾插入

o 在當前行之后插入一行

O 在當前行之前插入一行

cw 替換從光標所在位置后到一個單詞結尾的字符

  • 簡單的移動光標

0 → 數字零,到行頭

^ → 到本行第一個不是blank字符的位置(所謂blank字符就是空格,tab,換行,回車等)

$ → 到本行行尾

g_ → 到本行最后一個不是blank字符的位置。

/pattern → 搜索 pattern 的字符串(陳皓注:如果搜索出多個匹配,可按n鍵到下一個)

  •  簡單的刪除
x        刪除當前光標下的字符
dw       刪除光標之后的單詞剩余部分。
d$       刪除光標之后的該行剩余部分。
dd       刪除當前行。

c        功能和d相同,區別在於完成刪除操作后進入INSERT MODE
cc       也是刪除當前行,然后進入INSERT MODE

 

  • 拷貝/粘貼

P → 粘貼(p/P都可以,p是表示在當前位置之后,P表示在當前位置之前)

yy → 拷貝當前行當行於 ddP

 

  • Undo/Redo

u → undo

<C-r> → redo

 

  • 打開/保存/退出/改變文件(Buffer)

:e <path/to/file> → 打開一個文件

:w → 存盤

:saveas <path/to/file> → 另存為 <path/to/file>

:x, ZZ 或 :wq → 保存並退出 (:x 表示僅在需要時保存,ZZ不需要輸入冒號並回車)

:q! → 退出不保存 :qa! 強行退出所有的正在編輯的文件,就算別的文件有更改。

:bn 和 :bp → 你可以同時打開很多文件,使用這兩個命令來切換下一個或上一個文件。

 

到此為止,以上為Vim的一些基本操作所需要的命令。

  •  查找命令

/text  查找text,按n健查找下一個,按N健查找前一個。

?text  查找text,反向查找,按n健查找下一個,按N健查找前一個。

vim中有一些特殊字符在查找時需要轉義  .*[]^%/?~$

:set ignorecase  忽略大小寫的查找

:set noignorecase  不忽略大小寫的查找

查找很長的詞,如果一個詞很長,鍵入麻煩,可以將光標移動到該詞上,按*或#鍵即可以該單詞進行搜索,相當於/搜索。而#命令相當於?搜索。

:set hlsearch  高亮搜索結果,所有結果都高亮顯示,而不是只顯示一個匹配。

:set nohlsearch  關閉高亮搜索顯示

:nohlsearch  關閉當前的高亮顯示,如果再次搜索或者按下n或N鍵,則會再次高亮。

:set incsearch  逐步搜索模式,對當前鍵入的字符進行搜索而不必等待鍵入完成。

:set wrapscan  重新搜索,在搜索到文件頭或尾時,返回繼續搜索,默認開啟。

  • 替換命令

ra 將當前字符替換為a,當期字符即光標所在字符。

s/old/new/ 用old替換new,替換當前行的第一個匹配

s/old/new/g 用old替換new,替換當前行的所有匹配

%s/old/new/ 用old替換new,替換所有行的第一個匹配

%s/old/new/g 用old替換new,替換整個文件的所有匹配

:10,20 s/^/    /g 在第10行知第20行每行前面加四個空格,用於縮進。

ddp 交換光標所在行和其下緊鄰的一行。

 

  • VI中的多行刪除與復制

法一:
單行刪除,:1(待刪除行)d
多行刪除 ,:1,10d
法二:
光標所在行,dd
光標所在行以下的N行,Ndd
方法1:
光標放到第6行,
輸入:2yy
光標放到第9行,
輸入:p
此方法適合復制少量行文本的情況,復制第6行(包括)下面的2行數據,放到第9行下面。
方法2:
命令行模式下輸入
6,9 co 12
復制第6行到第9行之間的內容到第12行后面。
方法3:
有時候不想費勁看多少行或復制大量行時,可以使用標簽來替代
光標移到起始行,輸入ma
光標移到結束行,輸入mb
光標移到粘貼行,輸入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
要刪除多行的話,可以用 :5, 9 de


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM