1.vim簡介
vim是一種有模式的文本編輯器,如:普通模式、插入模式、可視模式等。初入門最常用的是普通模式和插入模式。
Git Bash下輸入“vim a.md”進(jìn)入vim編輯頁面。
編輯頁面下“i”命令進(jìn)入插入模式;插入模式下“ESC”鍵進(jìn)入編輯模式。
編輯模式下有很多命令,這些命令可以通過組合輸入來快速高效的完成對文本的編輯,例如:“dd”表示刪除光標(biāo)所在行,而輸入“2dd”(“dd”重復(fù)兩次)則表示刪除光標(biāo)后兩行。
2.編輯模式
編輯模式的主要功能是移動光標(biāo),然后對文本進(jìn)行剪切、刪除、復(fù)制、插入、替換等
tips:
- 編輯模式下光標(biāo)指向它右側(cè)的字符,與windows下的word不同。例如要刪除字符“M”,在word中要先把光標(biāo)移到“M”的右側(cè),然后刪除。而vim的編輯模式下使用<code>x</code>命令時。要先把光標(biāo)移動到“M”的左側(cè),然后使用。
- Vim 編輯器經(jīng)常以一對大、小寫字母(如 p 和
P)來提供一對相似的功能。通常,小寫命令在光標(biāo)的后面進(jìn)行操作,大寫命令在光標(biāo)的前面進(jìn)行操作。 - 普通模式下有很多命令,這些命令可以通過組合輸入來快速高效的完成對文本的編輯,例如:“dd”表示刪除光標(biāo)所在行,而輸入“2dd”(“dd”重復(fù)兩次)則表示刪除光標(biāo)所在行及下一行。
2.1打開、保存、退出文本
<pre>
:e path_to_file/filename 打開path_to_file/filename文本
:w 保存當(dāng)前修改,不退出
:w file_temp 文件另存為file_temp
:q 在未作修改的情況下退出(修改后不保存直接退出會提示)
:q! 放棄所有修改,退出編輯程序。
:wq 先保存后退出的組合命令
</pre>
<p> </p>
2.2移動光標(biāo)
移動一個字符:
<pre>
k 上移
j 下移
h 左移
l 右移
</pre>
tips:在命令前加上數(shù)字代表命令執(zhí)行次數(shù),如:5k,表示上移5行。
<pre>
H 移動到屏幕頂端的行
M 移動到屏幕中央的行
L 移動到屏幕底端的行
nH 移動到屏幕頂端往下的第n行
nL 移動到屏幕頂端往上的第n行
</pre>
tips:這些命令(全都是大寫)不會滾屏,只是對當(dāng)前頁面進(jìn)行操作。(感覺用5k這樣的方式也可以很快的實現(xiàn)啊。)
按單詞移動(ew大小寫啥的沒整明白)
<p> </p>
整行移動
<pre>
0 移動到行首
$ 移動到行末
移動到下一行開頭
移動到上一行開頭
</pre>
tips:“+”“-”不管你的光標(biāo)在當(dāng)前行何處,總是移動到下一行或上一行的行首。假如現(xiàn)光標(biāo)在第二行的第二個字符,按“k”/“j”就會移動到上一行或下一行的第二個字符處。
<p> </p>
滾屏
<pre>
Ctrl+f 往前滾動一整屏
Ctrl+b 往后滾動一整屏
Ctrl+d 往前滾動半屏
Ctrl+u 往后滾動半屏
zEnter 將光標(biāo)所在行移動到屏幕頂端
z. 將光標(biāo)所在行移動到屏幕中間
z- 將光標(biāo)所在行移動到屏幕低端
Ctrl+g 顯示當(dāng)前行信息
nG 轉(zhuǎn)至第n行
G 轉(zhuǎn)至文本末尾
gg 移至文本開頭
</pre>
tips:10zEnter,是把第10行移 滾動到屏幕頂端。
<p> </p>
根據(jù)文本塊移動
<pre>
( 移動到當(dāng)前句子開頭
) 移動到下一個句子開頭
{ 移動到當(dāng)前這一段開頭
} 移動到下一段開頭
[[ 移動到當(dāng)前這一節(jié)的開頭
]] 移動到下一節(jié)的開頭
</pre>
疑問:什么是區(qū)分段落、句子、節(jié)的區(qū)別???
<p> </p>
2.2刪除和替換
<pre>
rc 用 c 替換光標(biāo)所指向的當(dāng)前字符;
x 刪當(dāng)前光標(biāo)所在的一個字符。
dd 刪除當(dāng)前行,并把刪除的行存到剪貼板里(去除空隙)
d$ 從當(dāng)前光標(biāo)起刪除字符直到行的結(jié)束
d0 從當(dāng)前光標(biāo)起刪除字符直到行的開始
J 刪除本行的回車符(CR),并和下一行合并
p 粘貼剪貼板
</pre>
tips:
- "3dd”表示刪除光標(biāo)所在行和下兩行。“3p”表示復(fù)制三次
- “3x”表示刪除光標(biāo)所指向的前 3 個字符;“3rA”用 A 替換光標(biāo)所指向的前 5 個字符
“光標(biāo)指向的前”是光標(biāo)指向的字符以及它右邊的文本。(等我學(xué)會怎么整圖片后用圖片表示更清楚些)
?替換的命令沒搞明白,后續(xù)整明白了再寫。
<p> </p>
2.4復(fù)制粘貼
<pre>
yy 復(fù)制當(dāng)前行到內(nèi)存緩沖區(qū)
nyy 復(fù)制 n 行內(nèi)容到內(nèi)存緩沖區(qū)
5yy 復(fù)制 5 行內(nèi)容到內(nèi)存緩沖區(qū)
“+y 復(fù)制 1 行到操作系統(tǒng)的粘貼板
“+nyy 復(fù)制 n 行到操作系統(tǒng)的粘貼板
</pre>
tips:緩沖區(qū)與粘貼板是什么區(qū)別?是什么?
<pre>
p 小寫字母 p,將剪切板的內(nèi)容粘貼到光標(biāo)的后面
P 大寫字母 P,將剪切板區(qū)的內(nèi)容粘貼到光標(biāo)的前面
</pre>
tips: - 如果剪切板的內(nèi)容是字符或字,直接粘貼在光標(biāo)的前面或后面;如果緩沖區(qū)的內(nèi)容為整行正文,執(zhí)行上述粘貼命令將會粘貼在當(dāng)前光標(biāo)所在行的上一行或下一行
- 這里光標(biāo)前就是光標(biāo)的左邊,光標(biāo)后就是光標(biāo)的右邊(注意區(qū)分“光標(biāo)指向前”與“光標(biāo)前”的不同)
- 注意上述兩個命令中字母的大小寫。
<p> </p>
2.5字符串搜索
<pre>
:/str/ 正向搜索,將光標(biāo)移到下一個包含字符串 str 的行
:?str? 反向搜索,將光標(biāo)移到上一個包含字符串 str 的行
</pre>
<p> </p>
新人初學(xué),有很多地方難免有錯,懇請各位指正,在此感謝。其中沒搞明白的問題,在學(xué)習(xí)后再做更新。