????最近剛剛學(xué)習(xí)了一些vi命令(使用的是Ubuntu學(xué)習(xí)的)肪康,為了以后用到的時(shí)候方便查閱宜岛,所以在這里記錄一下。
? ? 當(dāng)你新建一個(gè)py文件的時(shí)候囱怕,可以使用vi + 文件名霍弹,當(dāng)回車(chē)后,進(jìn)入當(dāng)前文件里面娃弓,此時(shí)為命令模式典格。編輯此文件共有三種模式:
????在命令模式下,當(dāng)你按i,a,o的時(shí)候可以進(jìn)入到編輯模式(插入模式)忘闻,當(dāng)你按ESC的時(shí)候又回到命令模式钝计;當(dāng)你在命令模式下,輸入一個(gè)冒號(hào)齐佳,可以進(jìn)入末行模式私恬,也就是光標(biāo)移動(dòng)到最后一行,此時(shí)輸入相關(guān)命令可以保存并退出炼吴;當(dāng)你在末行模式下本鸣,按ESC可以切換到命令模式。如下圖所示:
在命令模式下硅蹦,可以輸入如下命令:
? ? i:在當(dāng)前光標(biāo)的前面插入一個(gè)字符
? ? I:移動(dòng)光標(biāo)到行首
? ? a:在當(dāng)前光標(biāo)的后面插入一個(gè)字符
????A:移動(dòng)到行末
? ? o:移動(dòng)到下一行
? ? O:移動(dòng)到上一行
????yy:復(fù)制光標(biāo)所在的這一行
????4yy:復(fù)制 光標(biāo)所在行開(kāi)始向下的4行
????p:粘貼
????dd:剪切 光標(biāo)所在的這一行
????2dd:剪切 光標(biāo)所在的行向下2行
????D:從當(dāng)前的光標(biāo)開(kāi)始剪切荣德,一直到行末
????d0:從當(dāng)前的光標(biāo)開(kāi)始剪切,一直到行首
????x:刪除當(dāng)前的光標(biāo)童芹,每次只會(huì)刪除一個(gè)
????X:刪除當(dāng)前的光標(biāo)前面的那個(gè)涮瞻,每次只會(huì)刪除一個(gè)
????h:向左移動(dòng)? ?j:向下移動(dòng)? ?k:向上移動(dòng)? ?l:向右移動(dòng)
????H:移動(dòng)到當(dāng)前屏幕的上方
????M:移動(dòng)到當(dāng)前屏幕的中間
????L:移動(dòng)到當(dāng)前屏幕的下方
????ctrl+f:向下翻一頁(yè)代碼
????ctrl+b:向上翻一頁(yè)代碼
????ctrl+d:向下翻半頁(yè)代碼
????ctrl+u:向上翻半頁(yè)代碼
????20G:快速的定位到第二十行代碼
????gg:快速回到整個(gè)代碼的第一行????
????G:快速的定位到整個(gè)代碼的最后一行
????w:向后跳一個(gè)單詞的長(zhǎng)度,即跳到下一個(gè)單詞的開(kāi)始處
????b:向前跳一個(gè)單詞的長(zhǎng)度假褪,即跳到上一個(gè)單詞的開(kāi)始處
????u:撤銷(xiāo)剛剛的操作
????ctrl+r:反撤銷(xiāo)
????選中一片代碼使用下列2個(gè)命令
? ? v:從當(dāng)前光標(biāo)開(kāi)始向后選擇,需要繼續(xù)按上下左右方向鍵
????V:選中一行署咽,需要繼續(xù)按上下左右方向鍵
????>>:向右移動(dòng)代碼
????<<:向左移動(dòng)代碼
????. :重復(fù)執(zhí)行上一次的命令
????{ :按段移動(dòng),上移
????}:按段移動(dòng),下移
????dw:刪除光標(biāo)開(kāi)始位置的字(一個(gè)單詞)宁否,包含光標(biāo)所在字符
????r:替換一個(gè)字符
????R:替換光標(biāo)以及后面的字符
????/要查找的內(nèi)容:搜索(需要按回車(chē))
????n:下一個(gè)
????N:上一個(gè)
????shift+zz:相當(dāng)于wq
在末行模式下窒升,如下:
????:%s/abc/123/g :末行模式下,吧當(dāng)前文件的abc替換成123
????:1,10s/abc/123/g:吧第一行到第十行之間的abc替換成123
????w:保存
????q:退出
????wq:保存并退出
????q!:強(qiáng)制退出慕匠,不保存
在編輯模式下,如下:
????輸入ctrl+n 或者 ctrl+p會(huì)自動(dòng)補(bǔ)全饱须,列表的方式顯示有同樣前綴的名稱(chēng)。