- 
                Notifications
    
You must be signed in to change notification settings  - Fork 12
 
Description
文件保存
命名文件并且保存到相应的位置中
saveas documents/demo.txt
这样即可以保存文件名为demo文件类型为txt的文件到documents中
批量操作
:%normal A;
%代表整个文件范围,在每行的结尾添加一个分号。
:%normal i//
在每行的开头添加//。
在执行指定的普通模式命令之前,vim 会先把光标移动到该行的起始处。
vim 处理换行符
- 设置文件格式
 
:set fileformats=unix,dos
- 查询当前文件格式
 
:set fileformat?
- 转换文件格式
 
:set fileformat=dos
- 设置文件结束符
 
:set endofline
- 去掉文件结束符
 
:set noendofline
- 显示换行
 
:set list
- 退出list mode
 
:set nolist
- 删除换行符
 
:%s/\n//g
- 删除dos文件的回车符^M
 
:%s/\r//g
批量替换
2.2.1 开启多进程模式 / 36
2.2.2 多进程模式的运行机制 / 39
使用:%s# / .*##gc来实现批量替换最好再选择a全部替换
2.2.1 开启多进程模式
2.2.2 多进程模式的运行机制
% normal A;
在全部的行尾加上;
文件撤销与反撤销
u为文件撤销
ctrl+r为文件反撤销
<C-r>=30*5
在insert模式下面进行运算
<C-r>0
粘贴寄存器里面的内容
可视模式
o来切换可视的端点
100i-
重复操作,---------....
Vim复制粘贴配置
nmap  "+y
nmap  "+gp
光标移动
| 操作 | 含义 | 
|---|---|
| j | 向下移动一个实际行 | 
| gj | 向下移动一个屏幕行 | 
| k | 向上移动一个实际行 | 
| gk | 向上移动一个屏幕行 | 
| 0 | 移动到实际行的行首 | 
| g0 | 移动到屏幕行的行首 | 
| ^ | 移动到实际行的第一个非空白字符 | 
| g^ | 移动到屏幕行的第一个非空白字符 | 
| $ | 移动到实际行的行尾 | 
| g$ | 移动到屏幕行的行尾 | 
文本修改
| 操作 | 含义 | 
|---|---|
| iw | 当前单词 | 
| aw | 当前单词及一个空格 | 
| iW | 当前字串 | 
| aW | 当前字串及一个空格 | 
| is | 当前句子 | 
| as | 当前句子及一个空格 | 
| ip | 当前段落 | 
| ap | 当前段落及一个空行 | 
ciw 命令只删除该单词,而不删除其前后的空白字符,随后它会进入插入模式,
这刚好是我们想要的效果。如果用的是 caw 的话,那最后两个单词就会连在一起,变
成“mostadjectives”。虽然这很容易修正,但如果一开始就能避免此问题,那岂不是更
好么。
宏录制
详看技巧70
查找命令
/text  查找text,按n健查找下一个,按N健查找前一个。
?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。vim中有一些特殊字符在查找时需要转义  .[]^%/?~$
:set ignorecase  忽略大小写的查找
:set noignorecase  不忽略大小写的查找查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。
:set hlsearch  高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。
:set nohlsearch  关闭高亮搜索显示
:nohlsearch  关闭当前的高亮显示,如果再次搜索或者按下n或N键,则会再次高亮。
:set incsearch  逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成。
:set wrapscan  重新搜索,在搜索到文件头或尾时,返回继续搜索,默认开启。
替换命令
ra 将当前字符替换为a,当期字符即光标所在字符。
s/old/new/ 用old替换new,替换当前行的第一个匹配
s/old/new/g 用old替换new,替换当前行的所有匹配
%s/old/new/ 用old替换new,替换所有行的第一个匹配
%s/old/new/g 用old替换new,替换整个文件的所有匹配
:10,20 s/^/    /g 在第10行知第20行每行前面加四个空格,用于缩进。ddp 交换光标所在行和其下紧邻的一行
C、C++操作
:! g++ demo.cpp
:! ./a.out