vim 查找
當前文件文本查找
大家應該都知道,在 VIM 裏面如果要搜索某個關鍵字,只要鍵入 /xxx
就可以了,而鍵入 ?xxx
可以反向查找.
例如,我要找到所有 hello,我就鍵入
/hello
然後回車,一個文件中,所有出現這個字樣的地方都會被高亮顯示。按n鍵,就可以自動把光標跳到下一個,N 會反向跳。
最快的方式是讓光標停留在想要查找的單詞的任意一個字母上面, 然後輸入
shift + *
即可快速選中該單詞,並且可以通過 n 或 N 進行上一個或下一個的匹配。
但是,用好這個功能,怎麼消除高亮呢?
只要鍵入
:noh
當前文件夾文本查找
在當前文件夾下面所有 .c 文件中查找字符串 hello
:vimgrep /hello/gj ./*.c
解釋一下:
g
: 如果一行中出現多處,只顯示一次,沒有g就會出現多次
j
: 只是列出所有匹配的行,沒有j那麼就會跳去第一個匹配的行
查找的結果可以用 ":copen"
命令查看,在列表裏,將光標移動至相應的位置,按回車就打開對應的文件了.
注:
:copen 打開quickfix
:cclose 關閉quickfix
:cc 是在轉到當前查找到的位置
:cn 轉到下一個位置
:cp 轉到前一個位置
vim 查找並刪除
刪除 hello
:g/hello/d
vim 統計單詞數
統計 hello
:%s/hello//gn
vim 編輯二進制數據
vim 作爲十六進制編輯器
用vim打開二進制文件,切換到 command 模式,
輸入 :
%!xxd
可以把當前打開的文件轉化爲十六進制編輯模式,編輯完成以後再 :
%!xxd -r
轉換回去保存
在vim 下,首先找開文件,按 esc 鍵,輸入:%!xxd
可以把當前buffer中的文件轉換成十六進制和ASCII的形式,其中十六進制部分可以編輯,但 ASCII 部分不會隨着編輯同步變動
編輯完成後,按 esc 鍵,輸入:%!xxd -r
可以把文件轉換回去,然後保存文件。
%!xxd
中的 %
是 command-line command 模式下的 %
,表示地址範圍,相當於`` `1,$```的作用