新手入门之VIM 编辑小技巧
一:命令狀態(tài)下, 有如下一些常用命令:
新增: ??a 光標(biāo)后面添加文本 ? ? ? ? ? ? A 光標(biāo)所在行末尾添加文本
插入:? ??i 光標(biāo)前面插入文本 ? ? ? ? ? ??I 從光標(biāo)所在行的開(kāi)始處插入文本
刪除與修改:
? ? ? ? ? ? ? x 刪除光標(biāo)處的字符 ? ? ? ? ? ? ? ? ? ?dd 刪除光標(biāo)所在的整行
? ? ? ? ? ? ? 3dd 刪除光標(biāo)所在行以及下面的兩行
? ? ? ? ? ? ? D 刪除光標(biāo)到行尾的文本, 常用于刪除注釋語(yǔ)句 (d$)
光標(biāo)移動(dòng):
? ? ? ? ? ? ? ?^ 光標(biāo)移動(dòng)到行首 ? ? ? ? ? ? ? ? ? ?? $ 光標(biāo)移動(dòng)到行尾
? ? ? ? ? ?????Ctrl+d 向下翻半頁(yè) ? ? ? ? ? ? ? ? ? ? Ctrl+f 向下翻一頁(yè)
? ? ? ? ? ?????Ctrl+u 向上翻半頁(yè) ? ? ? ? ? ? ? ? ? ? Ctrl+b 向上翻一頁(yè)
? ? ? ? ? ?????gg 光標(biāo)定位到文檔頭 ? ? ? ? ? ? ? ? G 光標(biāo)定位到文檔尾
? ? ? ? ? ?????H 光標(biāo)定位到當(dāng)前頁(yè)首 ? ? ? ? ? ? ?? w 光標(biāo)往后移一個(gè)字
? ? ? ? ? ?????b 光標(biāo)往前移一個(gè)字
? ? ? ? ? ? ?? L 光標(biāo)定位到當(dāng)前頁(yè)的最后一行的行首
查找與替換:
/[str] 查找字符串 str ? ? ? ? ? ? ? ? ??接著命令 n 移動(dòng)到下一個(gè)找到的字符串, ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 命令 N 移動(dòng)到上一個(gè)找到的字符串
部分替換:(只能替換光標(biāo)之所在的行)
? ? ? ? ? ? ? ?:s/[src]/[dst] ? ? ?/i 忽略大小寫(xiě) ? ? ?/g 全部匹配
? ? ? ? ? ? ? ?eg : ? s/hello/world/ig ? ? ? 只能替換一行
? ? ? ? ? ? ? ?eg: ? ??3,6 s/[src]/[dst]/ig( 3-6 行中找) ? ? 3,6 s/hello/world
全部替換:
? ? ? ? ? ?? %s/[src]/[dst]/g ? ? 將文檔中所有 src 的字符串替換為 dst 字符串
? ? ? ? ? ? ??:%s/^ //g ? ? ? ? ? ? 將文檔每一行的行首的空格去掉
塊操作:
? ? ? ? ? v 可視化塊選擇狀態(tài), 選中塊之后, 可以對(duì)塊進(jìn)行刪除(d),復(fù)制(y),剪 ? ?
? ?? ?????切(x)
? ? ? ? ??yy 復(fù)制光標(biāo)所在的整行
? ?? ?????[n]yy 從光標(biāo)開(kāi)始往下復(fù)制 n 行,[n]表示一個(gè)整數(shù)
? ?? ?????p 將復(fù)制后的文本粘貼到光標(biāo)處
? ?? ?????u 撤銷上次操作
結(jié)束編輯:
? ? ? ? ? ? ? ?:q 在未修改文檔的情況下退出
? ? ? ? ? ?????:q! 放棄文檔的修改, 強(qiáng)行退出
? ? ? ? ? ?????:w 文檔存盤(pán)
? ? ? ? ? ?????:wq 文檔存盤(pán)退出 ? ? ? ? 也可以: x ?保存退出?
?
計(jì)數(shù):
比如我有一個(gè)log文件,我文件里符合規(guī)則的字符是yes,我想查找這個(gè)abc.log文件中的yes字符數(shù)量,怎么查找呢,如下:
:%s/yes//gn?
跳轉(zhuǎn):?
括號(hào)匹配:??
% 可以讓光標(biāo)從它當(dāng)前所在的括號(hào)跳轉(zhuǎn)到與它相匹配的括號(hào)上去, 對(duì)花括號(hào)和
圓括號(hào), 方括號(hào)都有效, 常用于手工檢查括號(hào)是否匹對(duì).??
標(biāo)示位置? ??
?
你可以在檔案□做些標(biāo)記再隨時(shí)返回被標(biāo)記的位置.
m char (MARK) 把這個(gè)地方標(biāo)示成 char
' char (quote character) 跳到被標(biāo)為 char的那一行
'' (按兩次') 回到剛才的位置
char 可以是小寫(xiě)的 a-z中的任一個(gè) . 一個(gè)標(biāo)記在除了下面的這兩種情況
外會(huì)一直存在
1) 重覆使用相同的標(biāo)示 char .
或 2) 刪掉了被標(biāo)示的那一行.
文字段落
有時(shí)候一段一段的移動(dòng)游標(biāo)會(huì)比較方便.我們可以用 {,},(,) 來(lái)達(dá)到這些功能
{ (左大括號(hào)) 跳到上一段的開(kāi)頭
} (右大括號(hào)) 跳到下一段的的開(kāi)頭.
( (左小括號(hào)) 移到這個(gè)句子的開(kāi)頭
) (右小括號(hào)) 移到下一個(gè)句子的開(kāi)頭
[[ 跳往上一個(gè)函式
]] 跳往下一個(gè)函式
其他:
? ? ? ? ? ?vim -b egenea-base.ko?? 加上-b參數(shù),以二進(jìn)制打開(kāi)
? ? ? ? ? :%!xxd ?十六進(jìn)制模式 ? ? ? ? ? ? ??:%!xxd ? –r 返回文本模式
? ? ? ? ? ?若不小心按了 Ctrl+s, ? vim 會(huì)處于僵死狀態(tài), 按Ctrl+q 可以恢復(fù)。
? ? ? ? ? ?vim +3 main.c //表示定位到 main.c 的第 3 行
? ? ? ? ?? vim +/main ? ?main.c ? ? ?//表示定位main.c的第一個(gè)main?處
? ? ? ? ? ?命令模式下輸入:new 2.c ? ? ? ? ?//表示再打開(kāi)一個(gè) vim,是橫向的?
? ? ? ? ?? 用vnew 2.c 表示縱向
? ? ? ? ? ?兩個(gè)窗口之間進(jìn)行切換的方式: Ctrl+w, ?w
? ? ? ? ? ?在命令模式中輸入 gg=G 可以自動(dòng)對(duì)齊 ? ?
? ? ? ? ?? set nu顯示行號(hào),set nonu關(guān)閉行號(hào)
sed: 管道查找替換程序
? ? ? ? ? ? ?cat a.txt | sed 's/aa/bb/' > b.txt //將 a.txt 中的 aa 替換成 bb ? ? ? ? ?
? ? ? ? ? ? ? 并重定向輸出到 b.txt 中
?
讓終端有顏色,添加?.bashrc 里面下面的語(yǔ)法:?
?
export PS1="\[\e[37;1m\][\[\e[32;1m\]\u\[\e[37;1m\]@\h \[\e[36;1m\]\w\[\e[0m\]]\\$>"?
總結(jié)
以上是生活随笔為你收集整理的新手入门之VIM 编辑小技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Leetcode PHP题解--D29
- 下一篇: oracle database 11g