vim基本操作练习

多行编辑

在一般模式下
ctrl+v 多行块选中
v 选中
选中之后可以使用y 复制, d 删除, p 粘贴

多文件编辑

touch test1 test2 创建两个文件
echo “aaa” > test1
echo “bbb” > test2
vim test1 test2 同时打开两个文件
默认打开第一个test1
切换到test2 :n
从test2 切换到test1 :N

vimtutor介绍的功能

在安装vim的主机上 执行 vimtutor ,如果安装的是中文版的,会有中文的文档,以下记录vimtutor中介绍的所有基础功能

光标移动

hjkl 对应 左下上右
ctrl + f 向下翻页
ctrl + b 向上翻页
zz当前行移动到屏幕中间
zt 当前行移动到屏幕顶端
zb 当前行移动到屏幕底端
H  光标移动到屏幕顶部
L 光标移动到屏幕底部
M 光标移动到屏幕中间
ctrl + w 窗格间移动

:q 退出
x 删除当前光标的字符
i 添加字符
a 添加到行末
:wq 文件保存退出
dw 删除到下个单词的词首
d$ 删除到行末
de 删除到词末
2w 向后移动两个单词到词首
3e 向后移动3个单词到词尾
0 移动到行首
d2w 删除两个单词
dd 删除一行
2dd 删除两行
u 撤回
U 撤回当前行的操作
ctrl + r 重做
dd 删除当前行,放在vim的register中
p 将register的内容粘贴出来
r 替换单个字符
ce 修改到词尾
ctrl+g 查看在当前文档的位置
G 跳转到文档底部
gg 跳转到文档开头
493 G 跳转到493行
普通模式下 / + 字符串 搜索该字符串 按n查找下一处 N查找上一处
? + 字符串 与 / 的方式方向相反
ctrl + o 回到光标之前的位置
ctrl + i 与o相反
% 跳转到匹配的([{ 对应的位置

替换命令

:s/old/new 替换当前行的第一个字符串
:s/old/new/g 替换全行的所有的字符串

:起始行,终止行s/old/new/g 替换行范围内的字符串
:%s/old/new/g 全文替换
:%s/old/new/gc 全文替换,每个串都进行确认

输入:! 执行vim外部的shell命令
如 :!ls

v 选中文本,选中后 :w filename 当前选中保存到文件中

o 当前行下边添加
O 当前行上边添加

a 添加到当前字符之后
A 添加到当前行末

e 移动到单词尾

R 替换后边的单词

v 选中之后,用y 复制 ,用 p粘贴

option
/ignore
:set ic (ignore case) 不分大小写
:set hls is 高亮 is是搜索的过程中自动匹配到第一个
:set noic 关闭不分大小写
:set nohls

/ignore\c 单次忽略大小写

:help 进入帮助文档

ctrl + w 切换窗口

:set nocp 运行在不兼容模式下

:e 使用ctrl + d ,会出现所有的e开头的命令

查看完整版的vim手册
:help user-manual

常用命令记录

比如说有这么个字符串 “testdfat”,假设光标停留在第一个 t 位置。

di":delete all content inside “,结果字符串为”"

dta:delete all content to a,结果字符串为"at"

dfa:delete all content from current location, until a is found,结果字符串为"t"

连续按 di( 就可以把括号中的内容删除了。代表的意思是 delete all content inside ( 所以结果字符串为 ()

基于单词的移动

w 下个单词的开头
b 反向移动到当前,上个单词的开头
e 下个单词的结尾
ge 上个单词的结尾

fx 正向查找x ;查找下一个 ,查找上一个
Fx 查找下一个x的上一个x
tx 查找下一个x的上一个x
Tx 查找下一个x
% 跳转到匹配对应的括号

复制粘贴

y 复制
p 粘贴
d 删除

vim 寄存器原理

常规的 y p d 都会操作默认的寄存器,
会出现的状况是,复制一个文本,删除了需要替换的单词,使用y粘贴时,粘贴的是刚刚被删掉的单词
如果使用选中需要被替换的单词,再用p粘贴,就没有该问题
或者在插入模式使用ctrl+r " 或 ctrl+r 0 来将默认寄存器或者复制寄存器的内容放到当前位置

复制专用寄存器0
"0p 粘贴的是上次复制的内容,不受默认寄存器的影响

命名的寄存器进行操作
使用时先加上寄存器的名称
"ayiw 把当前单词放在名称为a的寄存器中
"ap 将名称为a的寄存器中的单词粘贴出来
"_ 黑洞寄存器,放入黑洞寄存器的内容有去无回
"+ 系统剪贴板 可以获取到如mac剪贴板中的内容

vim setting
set clipboard+=unnamed 设置系统剪贴板与vim剪贴板通用

你可能感兴趣的:(工具,vim)