shell編程中的vim命令說明


vim命令模式:

       1、一般命令模式

  2、編輯模式

  3、底行命令行命令模式


一般命令模式    直接用字符操作
編輯模式      可以寫文檔(跟txt有點像)
底行命令模式    先按'ESC',在按下“:”,之后在輸出命令

小注:用vim編輯命令: vim test.txt 或 vi test.txt

  一開始進入的是編輯模式

1(一般命令模式)-->2(編輯模式) 詳情見下面2.1
1(一般命令模式)-->3(底行命令模式) 直接在鍵盤上輸入":",就可以進入該模式
2(編輯模式)-->1(一般命令模式) 按鍵盤上的【ESC】鍵
2(編輯模式)-->3 (底行命令模式) 2-->1-->3
3(底行命令模式)-->1(一般命令模式) 用刪除鍵刪除":"便可以
3(底行命令模式)-->2(編輯模式) 3-->1-->2

 

(注意:在下面命令中,開頭帶有“:”的,就是底行命令模式,其余的命令則是一般命令模式,編輯模式的命令沒有寫)

1、最常用的基本命令

vi test.txt

Esc

x

Delete

dd

:

wq

q

h

j

k

--用於新建一個文檔或者編輯文檔,進入之后就是命令模式

--退出編輯模式,進入命令模式

--命令模式下,相當於我們平時用的刪除鍵。

--命令模式下,跟我們平時用的del鍵是一樣的

--刪除該光標所在的行,將整行都給刪除掉。

--底下會出現一個[:],可以執行相應的語句實現某些功能,比如:退出保

--在按了 Esc-->: 命令后,在按wq並按回車鍵,表示強制退出保存。

--在按了 Esc-->: 命令后,在按q表示只退出不保存。

--命令模式,表示將光標向左移動,跟鍵盤上的【←】命令一樣

--命令模式,表示將光標向下移動,跟鍵盤上的【↓】命令一樣

--命令模式,表示將光標向上移動,跟鍵盤上的【↑】命令一樣

--命令模式,表示將光標向右移動,跟鍵盤上的【→】命令一樣

 

2、移動光標或滾動屏幕(一般命令模式)

選項

l or 右箭頭
h or 左箭頭
j or 下箭頭
k or 上箭頭
0 (零按鍵)
ˆ
$
w
W
b
B
numberG
G
H
nH
M
L
nL

^e(ctrl+e)
ctrl+y
ctrl+u
ctrl+d
ctrl+b
ctrl+f
ctrl+l
z-return
nz-return
z.
nz.
z-
nz-

說明

向右移動一個字符
向左移動一個字符
向下移動一行
向上移動一行
移動到當前行的行首。
移動到當前行的第一個非空字符。
移動到當前行的末尾。
移動到下一個單詞或標點符號的開頭。
移動到下一個單詞的開頭,忽略標點符號。
移動到上一個單詞或標點符號的開頭。
移動到上一個單詞的開頭,忽略標點符號。
移動到第 number 行。例如,1G 移動到文件的第一行。
移動到文件末尾。
將光標移動到屏幕的頂行
將光標移動到屏幕頂行下的第 n 行
將光標移動到屏幕的中間
將光標移動到屏幕的底行
將光標移動到屏幕底行上的第 n 行

將屏幕上滾一行
將屏幕下滾一行
將屏幕上滾半頁
將屏幕下滾半頁
將屏幕上滾一頁
將屏幕下滾一頁
重繪屏幕
將當前行置為屏幕的頂行
將當前行下的第 n 行置為屏幕的頂行
將當前行置為屏幕的中央
將當前行上的第 n 行置為屏幕的中央
將當前行置為屏幕的底行
將當前行上的第 n 行置為屏幕的底行

 

2.1 插入文本(一般命令模式-->編輯模式,常用

命令

a
A
i
I
o
O
s
S
:r file
:nr file
Esc
^v char

插入動作

在光標后插入文本
在當前行末插入文本
在光標前插入文本
在當前行前插入文本
在當前行的下邊插入新行
在當前行的上邊插入新行
刪除光標所在處字節(字母),並進入插入模式
刪除光標所在的行,並進入插入模式
讀入文件 file 內容,並插在當前行后
讀入文件 file 內容,並插在第 n 行后
回到命令模式
插入時忽略 char 的指定意義,這是為了插入特殊字符

 

2.2 替換操作

2.2.1 一般命令模式

命令

rchar
R text escape
stext escape
S 或 cctext escape
cwtext escape
Ctext escape
cG escape
ccursor_cmd text escape

替換操作

用 char 替換當前字符
用 text 替換當前字符直到按下 Esc 鍵
用 text 代替當前字符
用 text 代替整行
將當前字改為 text
將當前行余下的改為 text
修改至文件的末尾
從當前位置處到光標命令位置處都改為 text

2.2.2 底行命令模式

命令

:s /text1/text2
:n1,n2s/word1/word2/g
:n1,.s/text1/text2/g
:n1,$s/string1/string2/g
:n1,$s/string1/string2/gc
:%s/text1/text2/g

:g/text1/s/text2/text3
:g/text/command
:v/text/command

替換操作

在光標所在行中,將text1替換為text2
在第n1行到n2行之間查找word1,並將字word1替換為word2
在第n1行到光標所在行之間查找text1,並將text1替換為text2
在第n1行到末行之間查找string1,並將string1替換為string2
c 在第n1行到末行之間查找string1,將string1替換為string2,在替換之前逐一進行確認操作(confirm)
在本vim中,將text1替換為text2

查找包含 text1 的行,將第一個text2替換為text3
在所有包含 text 的行運行 command 所表示的命令
在所有不包含 text 的行運行 command 所表示的命令

 

2.3 查找操作(帶“:”為底行命令模式,其他為一般命令模式)

 

命令

:set ic
:set noic
/text
?text
n
N

ftext
Ftext
ttext
Ttext

查找操作

查找時忽略大小寫
查找時對大小寫敏感
在文件中向前查找 text
在文件中向后查找 text
在同一方向重復查找
在相反方向重復查找

在當前行向前查找 text
在當前行向后查找 text
在當前行向前查找 text,並將光標定位在 text 的第一
在當前行向后查找 text,並將光標定位在 text 的第一

 

2.4 刪除操作(帶“:”為底行命令模式,其他為一般命令模式)

命令

:1,3d
:n1,n2d
:n1,.d
:n1,$d
:%d

X
x
nx
dd
5dd
dW
d$
d0

dG
d20G
db

刪除操作

刪除第1行到第3行的數據
刪除第n1到n2行的所有數據
刪除第n1到光標所在行的數據
刪除第n1行到最后行所有的數據
刪除所有數據

向前刪除數據
當前字符
當前字符及其后(n-1)個字符。
當前行。
當前行及隨后的四行文本。
從光標位置開始到下一個單詞的開頭。
從光標位置開始到當前行的行尾。
從光標位置開始到當前行的行首。
從光標位置開始到文本行的第一個非空字符。
從當前行到文件的末尾。
從當前行到文件的第 20 行。
刪除光標前面的字

2.5 復制操作

命令

y0
y$
yy
nyy
y1G
yG
p
P
"(a-z)nyy
"(a-z)ndd
"(a-z)p
"(a-z)P

說明

復制光標所在行中的首字母到光標所在的字母之間的數據(不包含光標上的字母)
復制光標所在行中的光標所在字母到行尾之間的數據(包含光標上的字母)
將當前行的內容放入臨時緩沖區
將 n 行的內容放入臨時緩沖區
復制第1行到光標所在行的所有數據
復制光標所在行到最后一行所有的數據
將臨時緩沖區中的文本放入光標后
將臨時緩沖區中的文本放入光標前
復制 n 行放入名字為圓括號內的可命名緩沖區,省略 n 表示當前行
刪除 n 行放入名字為圓括號內的可命名緩沖區,省略 n 表示當前行
將名字為圓括號的可命名緩沖區的內容放入當前行后
將名字為圓括號的可命名緩沖區的內容放入當前行前

 

2.6 撤銷與重復

命令

u
U
.
,
;
"np
n
N

說明

撤消最后一次修改
撤消當前行的所有修改
重復最后一次修改
以相反的方向重復前面的 f、F、t 或 T 查找命令
重復前面的 f、F、t 或 T 查找命令
取回最后第 n 次的刪除(緩沖區中存有一定次數的刪除內容,一般為 9)
重復前面的 / 或 ? 查找命令
以相反方向重復前面的 / 或 ? 命令


2.6 保存或退出文本操作

命令

:w
:w file
:wq 或 ZZ 或 :x
:q!
:e!

說明

保存文件但不退出 vi
將修改保存在 file 中但不退出 vi
保存文件並退出 vi
不保存文件,退出 vi
放棄所有修改,從上次保存文件開始再編輯

2.7 底行命令的選項(set用法)

選項

:set all
:set nooption
:set nu
:set showmode
:set autoindent
:set smartindent
:set list
:set ts=8
:set window=n
:set number
:set nonumber

作用

打印所有選項
關閉 option 選項
每行前打印行號
顯示是輸入模式還是替換模式
繼承前一行的縮進方式,特別適用於多行注釋
為C程序提供自動縮進
顯示制表符(^I)和行尾符號
為文本輸入設置 tab stops
設置文本窗口顯示 n 行
顯示行數
取消顯示行數


2.8 符號命令

選項

:.=
:=
ctrl+g
:l

作用

打印當前行的行號
打印文件中的行數
顯示文件名、當前的行號、文件的總行數和文件位置的百分比
使用字母 "l" 來顯示許多的特殊字符,如制表符和換行符



2.9 定位段落和放置光標(一般命令模式)

選項

{
[[
]]
m(a-z)
'(a-z)

作用

在第一列插入 { 來定義一個段落
回到段落的開頭處
向前移到下一個段落的開頭處
用一個字母來標記當前位置,如用 mz 表示標記 z
將光標移動到指定的標記,如用 'z 表示移動到 z


2.10 連接行

選項

J
nJ

作用

將下一行連接到當前行的末尾
連接后面 n 行


2.11 shell轉義命令

選項

:!command
:!!
:r!command
:w!command
:cd directory
:sh
:so file

作用

執行 shell 的 command 命令,如 :!ls
執行前一個 shell 命令
讀取 command 命令的輸入並插入,如 :r!ls 會先執行 ls,然后讀入內容
將當前已編輯文件作為 command 命令的標准輸入並執行 command 命令,如 :w!grep all
將當前工作目錄更改為 directory 所表示的目錄
將啟動一個子 shell,使用 ^d(ctrl+d) 返回 vi
在 shell 程序 file 中讀入和執行命令



2.12 vim中的宏與縮寫
(注意:避免使用控制鍵和符號,不要使用字符 K、V、g、q、v、*、= 和功能鍵)

選項 

:map key command_seq
:map
:umap key
:ab string1 string2
:ab
:una string

 作用

定義一個鍵來運行 command_seq,如 :map e ea,無論什么時候都可以 e 移到一個字的末尾來追加文本
在狀態行顯示所有已定義的宏
刪除該鍵的宏
定義一個縮寫,使得當插入 string1 時,用 string2 替換 string1。當要插入文本時,鍵入 string1 然后按 Esc 鍵,系統就插入了 string2
顯示所有縮寫
取消 string 的縮寫



2.13 vim中文本的縮進

選項

ctrl+i或 tab
:set ai
:set sw=n
n>

作用

插入文本時,插入移動的寬度,移動寬度是事先定義好的
打開自動縮進
將移動寬度設置為 n 個字符
使 n 行都向右移動一個寬度,例如 3>> 就將接下來的三行每行都向右移動一個移動寬度

 

大概就是這些了,如果有錯誤,請留言!


免責聲明!

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



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