摘要:學(xué)習(xí)整理注意后文中帶尖括號(hào)的描述表示鍵盤按鍵,比如回車是指回車按鍵。輸入文件名回車即可進(jìn)入編輯器編輯該文件。按鍵回車進(jìn)入替換模式可以連續(xù)替換多個(gè)字符。所有的命令都必須敲回車鍵結(jié)束。
前言
本文的初衷
從知道 vim 開始我就有心學(xué)習(xí)并嘗試過幾次,每次都是暫時(shí)的心血來潮,最終全部不了了之,就連最基本的 vimtutor 我都是學(xué)個(gè)兩三節(jié)就半途而廢,所以這次干脆寫篇文章,利用幾次學(xué)習(xí)把這篇文章完善起來。既方便自己堅(jiān)持學(xué)習(xí)記錄,又方便在之后使用中查看和復(fù)習(xí)。
如果正在看這篇文章的你已經(jīng)是個(gè)老手,或者已經(jīng)完整練過多次 vimtutor ,那么很遺憾本文并不會(huì)對(duì)你有更多的幫助。
安裝Windows 安裝 Git Bash
Linux 和 MacOS 無需安裝
單詞Vim 中的快鍵鍵都是有語義的,如果了解下面這些單詞,相信你記住快捷鍵也不是什么難事。
quit
write/read
yank(復(fù)制)
paste
delete
change
find
word
forward/backward
up/down
insert/append
do/undo/redo
replace
vim 中的模式與模式切換Vim 有多種模式,分別是:
正常模式 (normal)
插入模式 (insert)
冒號(hào)模式 (或者叫命令模式 command)
可視模式 (visual)
啟動(dòng) Vim (在終端輸入 vim <回車>)后,并不能直接輸入字符,vim 默認(rèn)處于「正常模式」。
正常模式
「正常模式」一般用于瀏覽文件,也包括一些復(fù)制、粘貼、刪除等操作。擊鍵時(shí)一般的鍵/鍵組合會(huì)被當(dāng)成功能鍵,而不會(huì)鍵入對(duì)應(yīng)的字符。
在此模式下,可以通過鍵盤在文本中移動(dòng)光標(biāo),移動(dòng)范圍從小到大是字符、單詞、行、段落和屏幕。
提示:不論位于什么模式,按下
插入模式
「正常模式」下按i I a A鍵,會(huì)進(jìn)入「插入模式」。
在「插入模式」下,擊鍵時(shí)會(huì)寫入相應(yīng)的字符。
命令模式
「正常模式」下按 :(冒號(hào))鍵,會(huì)進(jìn)入「冒號(hào)模式」。
在「冒號(hào)模式」下可以執(zhí)行一些輸入并執(zhí)行一些vim或插件提供的指令,就像在 shell 里一樣。這些指令包括設(shè)置環(huán)境、文件操作、調(diào)用某個(gè)功能等等。
可視模式
「正常模式」下按 v V
在「可視模式」下,按方向鍵選擇內(nèi)容。
vimtutor 學(xué)習(xí)整理注意:
后文中帶尖括號(hào)的描述表示鍵盤按鍵,比如 <回車> 是指回車按鍵。
在終端(我這里在 windows 下使用的 Gitbash)輸入 vim <回車> 即可進(jìn)入 Vim 編輯器;
輸入 vimtutor <回車> 即可進(jìn)入 vim 教程。
輸入 vim 文件名 <回車> 即可進(jìn)入 Vim 編輯器編輯該文件。
此時(shí)編輯器處于「正常模式」,也叫「normal 模式」。
我們稍后提到時(shí)再做介紹。
提示:按下
1.1 移動(dòng)光標(biāo)
h (左) j (下) k (上) l (右)
請(qǐng)隨意按下字母了解如何移動(dòng)光標(biāo)。
1.2 Vim 的退出
提示:
1.3 文本編輯之刪除
按 x 鍵刪除一個(gè)字符
將光標(biāo)移動(dòng)至某個(gè)單詞的起始處,按 dw 刪除一個(gè)單詞(英文)
按 dd 刪除一整行
按 d$ 會(huì)從當(dāng)前光標(biāo)處刪除至行末
提示: 輸入 d 之后,字母 d 會(huì)出現(xiàn)在屏幕的右下角,等待接下來輸入的命令,此時(shí)可以按
1.4 文本編輯之插入
按 i 鍵在光標(biāo)所在處進(jìn)入「插入模式」
此時(shí)左下角會(huì)出現(xiàn)「-- 插入 --」或者「-- INSERT --」的字樣,表示當(dāng)前處于「插入模式」。
按 I 鍵進(jìn)入「插入模式」,同時(shí)光標(biāo)會(huì)跳到所在行的行首。
此時(shí)可以輸入內(nèi)容,也可以選擇按
提示:注意大小寫,在 vim 中很多字母的大小寫有著不同但相似的功能。
1.5 文本編輯之添加
輸入 a 可以在光標(biāo)后進(jìn)入「插入模式」
輸入 A 可以在光標(biāo)所在行的行末進(jìn)入「插入模式」
提示:a i I A 都會(huì)帶您進(jìn)入插入模式,惟一的區(qū)別在于字符插入的位置。
22.1 關(guān)于命令和對(duì)象
前文中我們學(xué)習(xí)的命令都是 d 和某個(gè)動(dòng)作一起構(gòu)成的。 比如 d 和 w 表示刪除該單詞;d 和 $ 表示刪除至行末。
格式如下: d motion
d - 刪除操作符
motion - 操作符的操作對(duì)象
介紹幾個(gè)簡(jiǎn)單的動(dòng)作:
w - 從當(dāng)前光標(biāo)當(dāng)前位置直到下一個(gè)單詞起始處,不包括它的第一個(gè)字符。
e - 從當(dāng)前光標(biāo)當(dāng)前位置直到單詞末尾,包括最后一個(gè)字符。
$ - 從當(dāng)前光標(biāo)當(dāng)前位置直到當(dāng)前行末。
提示:在「正常模式」下僅按代表相應(yīng)動(dòng)作的鍵而不使用操作符,會(huì)看到光標(biāo)的移動(dòng)正如上面的動(dòng)作列表所描述的一樣。
2.2 使用計(jì)數(shù)指定動(dòng)作
2w 使光標(biāo)向前移動(dòng)兩個(gè)單詞
3e 使光標(biāo)移動(dòng)到第三個(gè)單詞的末尾
0 使光標(biāo)移動(dòng)到行首(^ 符號(hào)也可以做到這一點(diǎn),只是按起來沒有 0 方便)
提示:現(xiàn)在你一定也可以聯(lián)想到 2h 就表示光標(biāo)向前移動(dòng)兩個(gè)字符,3j 就表示光標(biāo)向下移動(dòng)三行等等;你可以任意組合來練習(xí)。
提示:輸入數(shù)字時(shí)你會(huì)發(fā)現(xiàn)右下角也出現(xiàn)了相應(yīng)的數(shù)字。
2.3 使用計(jì)數(shù)來刪除更多
格式如下: d number motion
d2w 或者 2dw 刪除兩個(gè)單詞
d2d 或者 2dd 刪除兩行
2.4 撤銷類命令
u 撤銷上一操作
U 撤銷對(duì)整行的操作
3.1 置入類命令
p 粘貼
使用 dd 命令刪除一整行內(nèi)容,然后將光標(biāo)移動(dòng)到想要粘貼的位置 上方,輸入 p 將該行粘貼置入
3.2 替換類命令
將光標(biāo)移動(dòng)到想要替換的字符前,輸入 r 回車,接著輸入想要的字符,就會(huì)把光標(biāo)處的字符替換。
按 R 鍵回車進(jìn)入「替換模式」可以連續(xù)替換多個(gè)字符。
提示:「替換模式」與「插入模式」相似,不過每個(gè)輸入的字符都會(huì)刪除一個(gè)已有的字符。
3.3 更改類命令
cw 改變文本直到一個(gè)單詞的末尾
拆開來看 c 和 w ,c 表示修改,w 表示一個(gè)單詞
注意:cw 命令會(huì)刪除光標(biāo)處至該單詞末尾的字符,并直接進(jìn)入「插入模式」。
提示:修改好內(nèi)容后記得按
3.4 使用 c 更改更多
更改類操作符的工作方式跟刪除類一致。操作格式是:
c [number] motion
c$ 表示從光標(biāo)處開始刪除至行末并進(jìn)入「插入模式」。
44.1 定位及文件狀態(tài)
windows 下的 Gitbash 在編輯器下方一直顯示當(dāng)前光標(biāo)所在行的信息。
G 跳轉(zhuǎn)到當(dāng)前文件最后一行
gg 跳轉(zhuǎn)到當(dāng)前文件第一行
行號(hào) G 跳轉(zhuǎn)到指定行
4.2 搜索類命令
/ 要搜索的字符串 <回車> 光標(biāo)會(huì)跳轉(zhuǎn)到搜索的此字符串前
? 要搜索的字符串 <回車> 逆向查找
n 查看下一個(gè)搜索的匹配項(xiàng)
N 查看上一個(gè)搜索的匹配項(xiàng)
4.3 配對(duì)括號(hào)的查找
將光標(biāo)移動(dòng)到任意一個(gè) ( { [ ] } ) 處,按下 % 光標(biāo)會(huì)跳轉(zhuǎn)到另一個(gè)對(duì)應(yīng)的括號(hào)處
4.4 替換命令
下方幾個(gè)命令中 old 代表替換前的詞,new 表示替換后的詞
:s/old/new <回車> 替換光標(biāo)所在行的第一個(gè)匹配串
:s/old/new/g <回車> 替換全行的匹配串
:#,#s/old/new/g <回車> 其中兩個(gè) # 號(hào)分別表示替換操作的起始行和結(jié)尾行,表示替換只在這之間進(jìn)行
:%s/old/new/g <回車> 替換整個(gè)文件中的每個(gè)匹配串
:%s/old/new/gc <回車> 替換整個(gè)文件中的每個(gè)匹配串之前會(huì)詢問是否替換
55.1 在 Vim 內(nèi)執(zhí)行外部命令
:!外部命令 <回車> 執(zhí)行外部命令
:!ls 列出所在目錄的文件
提示:
所有的外部命令都可以以這種方式執(zhí)行,包括帶命令行參數(shù)的那些。
所有的 : 命令都必須敲 <回車> 鍵結(jié)束。
5.2 保存文件
我們知道了當(dāng)前目錄之后,也可以執(zhí)行保存命令。
:w TEST 會(huì)將當(dāng)前文件重名為 TEST 并保存到當(dāng)前目錄
:!rm TEST 刪除文件
5.3 一個(gè)具有選擇性的保存命令
v motion :w fileName
按下 v 鍵,進(jìn)入「可視模式」,也叫「visual 模式」。
接著移動(dòng)光標(biāo)會(huì)發(fā)現(xiàn)會(huì)選中移動(dòng)過的區(qū)域并高亮。
然后按 : 將會(huì)看到屏幕底部出現(xiàn) :"<,">
接著輸入 w TEST
此時(shí)整個(gè)命令為::"<,"> w TEST ,表示將選中內(nèi)容保存為命為 TEST 的文件
5.4 提取和合并文件
:r TEST 將 TEST 文件的內(nèi)容置入當(dāng)前文件的當(dāng)前光標(biāo)處
提示:還可以讀取外部命令的輸出。例如, :r !ls 可以讀取 ls 命令的輸出,并把它放置在光標(biāo)下面。
66.1 打開類命令
o 在當(dāng)前光標(biāo)所在行的下方新起一行,并進(jìn)入「插入模式」
O 在當(dāng)前光標(biāo)所在行的上方新起一行,并進(jìn)入「插入模式」
6.2 附加類命令
輸入 e 可以使在光標(biāo)英文內(nèi)容中以單詞為單位跳轉(zhuǎn)
6.3 復(fù)制粘貼文本
使用操作符 y 復(fù)制文本,使用 p 粘貼文本
6.4 設(shè)置類命令的選項(xiàng)
輸入 :set xxx 可以設(shè)置 xxx 選項(xiàng)。一些有用的選項(xiàng)如下:
"ic" "ignorecase" 查找時(shí)忽略字母大小寫
"is" "incsearch" 查找短語時(shí)顯示部分匹配
"hls" "hlsearch" 高亮顯示所有的匹配短語
選項(xiàng)名可以用完整版本,也可以用縮略版本。
在選項(xiàng)前加上 no 可以關(guān)閉選項(xiàng): :set noic
77.1 獲取幫助信息
按下
連續(xù)輸入兩次
7.2 創(chuàng)建啟動(dòng)腳本
.vimrc 文件
7.3 補(bǔ)全功能
使用
使用
請(qǐng)確保 Vim 不是在以兼容模式運(yùn)行: :set nocp
一些 vimtutor 里沒提到的命令組合打開文件,鍵入 gg 將光標(biāo)移動(dòng)到文件的第一行,然后鍵入 dG 以刪除其中的所有行或文本。
:1,$d 刪除所有行或文本
結(jié)語vim 的使用就像編寫程序一樣,你總要在實(shí)踐中去掌握它。好了,現(xiàn)在神器在手,就看能不能熟練使用了。
(完)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25114.html
摘要:時(shí)間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。必填用于執(zhí)行命令,當(dāng)執(zhí)行完畢后,將產(chǎn)生一個(gè)新的文件層。可選指定此鏡像啟動(dòng)時(shí)默認(rèn)執(zhí)行命令。可選用于指定需要暴露的網(wǎng)絡(luò)端口號(hào)。可選向鏡像中掛載一個(gè)卷組。 時(shí)間:2017年09月16日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com 教學(xué)源碼:無 學(xué)習(xí)源碼:無 第一章:課程簡(jiǎn)介 1-1 課程介紹 Docke...
摘要:對(duì)于瀏覽器,的值可能是可以通過調(diào)用函數(shù),判斷用戶代理是否為瀏覽器。處理表單處理表單的方式很方便,可以使用超全局變量獲得數(shù)據(jù)。使得之中的特殊字符被正確的編碼,從而不會(huì)被使用者在頁面注入標(biāo)簽或者代碼。 曾經(jīng)簡(jiǎn)單的學(xué)習(xí)過PHP,看的是《PHP和MySQL Web開發(fā)》,還有萬能的搜索引擎的幫助。這次準(zhǔn)備系統(tǒng)的學(xué)習(xí)一下,參考資料是PHP Manual。 PHP能做什么 PHP主要用于服務(wù)端的腳...
摘要:轉(zhuǎn)載請(qǐng)注明出處原文排版地址點(diǎn)擊跳轉(zhuǎn)轉(zhuǎn)載請(qǐng)注明出處來源簡(jiǎn)單的理解就是用對(duì)其他主機(jī)上的容器進(jìn)行操作這一篇文章是比較舊的實(shí)現(xiàn)方式,之后的版本引入了,更加的方便,參考筆記原理每個(gè)主機(jī)拉取一個(gè)鏡像,啟動(dòng)運(yùn)行容器,在中注冊(cè)地址和所以不適用于生產(chǎn)環(huán)境因 轉(zhuǎn)載請(qǐng)注明出處 http://www.paraller.com 原文排版地址 點(diǎn)擊跳轉(zhuǎn) 轉(zhuǎn)載請(qǐng)注明出處 來源:parallers blog d...
摘要:介紹是一個(gè)基于的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于接口。是用開發(fā)的,并作為許可條款下的開放源碼發(fā)布,是當(dāng)前流行的企業(yè)級(jí)搜索引擎。本文從零開始,講解如何使用搭建自己的全文搜索引擎。 介紹 ElasticSearch 是一個(gè)基于 Lucene 的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch ...
閱讀 2654·2023-04-25 15:22
閱讀 2824·2021-10-11 10:58
閱讀 1044·2021-08-30 09:48
閱讀 1851·2019-08-30 15:56
閱讀 1730·2019-08-30 15:53
閱讀 1089·2019-08-29 11:16
閱讀 1048·2019-08-23 18:34
閱讀 1638·2019-08-23 18:12