vi编辑器常用命令
常用vi編輯器命令行
對于VI的命令行,不需要特意的去記憶,寫下來,讓要用到的時候能找到就行
游標控制
| h | 游標向左移 |
| j | 游標向下移 |
| k | 游標向上移 |
| l (or spacebar) | 游標向右移 |
| w | 向前移動一個單詞 |
| b | 向后移動一個單詞 |
| e | 向前移動一個單詞,且游標指向單詞的末尾 |
| ( | 移到當前句子的首部 |
| ) | 移到下一個句子的首部 |
| { | 移到當前段的首部 |
| } | 移到下一段的首部 |
| [[ | 移到當前區段的首部 |
| ]] | 移到下一個區段的首部 |
| 0 | 移到當前行的首部 |
| $ | 移到當前行的尾部 |
| ^ | 移到當前行第一個非空白字符的地方 |
| + or RETURN | 移動到下一行的第一個字符 |
| - | 移動到上一行的第一個字符 |
| n | | 移動到當前行的字符n的地方 |
| H | 移動到當前屏幕的首部 |
| M | 移動到當前屏幕的中部 |
| L | 移動到當前屏幕的尾部 |
| nH | 移動到當前屏幕首部下的n行 |
| nL | 移動到當前屏幕尾部上的n行 |
| Ctrl-F | 移動到下一屏 |
| Ctrl-B | 移動到上一屏 |
| Ctrl-D | 向下移動半屏 |
| Ctrl-U | 向上移動半屏 |
| z RETURN | 刷新屏幕,調整屏幕,使當前的游標在刷新后的屏幕的首部(是不是不明白???不明白的話,試試就知道是什么意思了) |
| z . | 刷新屏幕,調整屏幕,使當前的游標在刷新后的屏幕的中部 |
| z - | 刷新屏幕,調整屏幕,使當前的游標在刷新后的屏幕的尾部 |
| Ctrl-L | 刷新屏幕,不調整屏幕位置 |
| Ctrl-R | 刷新屏幕,不調整屏幕位置 |
| /text | 向下搜索text |
| / | 重復上次的搜索的內容向下搜索一次 |
| ?text | 向上搜索text |
| ? | 重復上此搜索的內容向上搜索一次 |
| n | 重復上此的搜索,向下搜索 |
| N | 重復上此的搜索,向上搜索 |
| /text/+n | 移動到text所在行的下面n行 |
| ?text?-n | 移動到text所在行的上面n行 |
| nG | 移動到n行 |
| :n | 移動到n行 |
| G | 移動在最后一行 |
內容編輯
A:當前行的尾部追加內容
i:游標前插入內容
I:游標后插入內容
o:在鼠標所在行的下面添加內容
O:在鼠標所在行的上面添加內容
ESC:退出編輯模式
Ctrl-T:移動到下一個tab
Backspace:向后移動一個字符
Ctrl-U:刪除當前
cw:刪除游標所在的字符,然后進入編輯模式
cc:刪除游標所在的行,然后進入編輯模式
C:刪除從游標所在的位置到行尾的字符,然后進入編輯模式
dd:刪除當前行
ndd:刪除第n行
D:刪除當前行游標所在的位置后面的字符
dw:刪除郵編所在的字符
d}:刪除當前段剩余的字符
d^:刪除游標前到行首的字符
c/pat:刪除游標后面到第一次匹配字符間的內容
dn:刪除游標后面到下一個匹配字符間的內容
dfa:刪除當前行游標到匹配字符間的內容(匹配的字符也將被刪)
dta:刪除當前行游標到匹配字符間的內容(匹配的字符不被刪)
dL:刪除從游標到屏幕的最后一行之間的內容
dG:刪除從游標到文件末尾之間的內容
J:連結上下兩行的內容
p:在游標后面插入buffer中的內容
P:在游標前面插入buffer中的內容
rx:用x替換字符
Rtext:用text從游標開始處進行替換
u:撤銷最后的改變
U:還原當前行的內容
x:向后刪除游標所在位置的字符
X:向前刪除游標前面的字符
nX:刪除前面的n個字符,游標所在的字符將不會被刪
.:還原最后的改變
~:反轉字母的大小寫
y:拷貝當前行到新的buffer
yy:拷貝當前行
"xyy:拷貝當前行的buffer名為x的buffer
ye:拷貝當單詞的末尾
文件操作
| :w! | 寫文件,忽略警告信息 | |
| :w! file | 覆蓋文件,忽略警告信息 | |
| :wq | 寫文件之后退出編輯 | |
| :q | 退出編輯器 | |
| :q! | 強制退出編輯器 | |
| :w file | 把文件的內容寫到另一個文件 | |
| ZZ | 退出編輯器,如果文件有改動,則保存再退出 | |
| :x | 退出編輯器,如果文件有改動,則保存再退出 | |
| :n1,n2w file | 把n1行到n2行間的內容寫到文件file | |
| :n1,n2w >> file | 把n1行到n2行間的內容追加到文件file | |
| :e file2 | 在當前文件的命令行模式下編輯file2 | |
| :e! | 重新從磁盤加載文件 | |
| :e# | 交替編輯文件 | |
| :n | 編輯地下一行 | |
| :n! | 編輯地下一行(忽略警告) | |
| :r file | 在游標后面插入文件 | |
| :r !command | 在當前行的后面,插入運行命令后的輸出內容 |
總結
- 上一篇: oracle批量update数据_东方国
- 下一篇: 1001 害死人不偿命的(3n+1)猜想