BLOG

Record, summarize, and improve.

vim

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