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