map : 正常模式,可视化模式和运算符模式可用
nmap :正常模式可用
vmap :可视化模式可用
omap :运算符模式可用
map! :插入模式和命令行模式可用
imap :插入模式可用
cmap :命令行模式可用
vim查找两个关键字
/.*cpu0\&.*jalr
先用vim -b data 以2进制打开文件,然后用xxd工具转化,在vim的命令行模式下:
:%!xxd --将当前文本转化为16进制格式
:%!xxd -r --将16进制转化为普通文本
通过.xxx.swp文件恢复暂存内容
vim -r xxx
为了关闭此功能,我们要在设置项的名字前添加单词“no”:
:set noignorecase
如果我们在某个布尔类型的选项之后添加叹号,则可以反转该设置:
:set ignorecase!
如果我们在结尾加一个问号,则可以获取该选项当前的状态:
:set ignorecase?
我们还可以通过引入&号后缀,将任意选项重置为默认值:
:set ignorecase&
强制写入文件
:w !sudo tee % > /dev/null
(tee file 从stdin中读取数据并写入file中)
删除每行前1个字符
:%s/^.\{1\}//
删除每行后1个字符
:%s/.\{1\}$//
替换第 n 行开始到最后一行中每一行所有 vivian 为 sky,若 n 为 .,表示从当前行开始到最后一行
:n,$s/vivian/sky/g
替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/(等同于:g/vivian/s//sky/)
替换每一行中所有 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g)
g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作
Vim配置文件/etc/vim/vimrc
set number 显示行号
set nocompatible (compatible关闭所有扩展)
filetype on 文件类型检测
set history=1000 历史
set background=dark 背景色
syntax on 打开语法高亮
set autoindent 自动缩进
set cindent C语言自动缩进
set smartindent 为新行添加同上行的缩进
set tabstop(ts)=4 tab键长度
set shiftwidth=4 缩进宽度
set showmatch 括号自动匹配
set ruler 状态栏显示光标的位置
set hls 搜索时高亮显示
set ignorecase 搜索时忽略大小写
set incsearch 搜索时输入时进行匹配
set mouse=a 鼠标
s#^#//#g 注释代码块
CTRL+P/N 自动补全
Shift+k 查看man
:!command 执行shell命令
:e file 打开另一个文件
CTRL+6 切换文件
:%s/old/new/gc %全局替换 g匹配所有old c选择是否替换
CTRL+R 重做
c 删除并进入插入模式
ciw 删除此单词并进入插入模式
dw 删除到下一个单词前包括空格
de 删除到下一个单词前不包括空格
d$ 删除到行尾
CTRL+u 上翻半屏
CTRL+d 下翻半屏
纵向分屏 vim -O file1 file2
横向分屏 vim -o file1 file2
纵向分屏 :vsp
横向分屏 :sp