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,$```的作用