vim的常见操作
vim常见操作
复制
yank, y
yy:复制整行 nyy/yny
y^/y0:复制当前行到行头的内容
y$:复制当前到行尾的内容
yw:复制一个word nyw/ynw 复制n个word
yG:复制到文档结尾 nyG/ynG :删除当前光标所在行到第n行
剪切(删除)
delete, d
操作类似于复制,此处不赘述
dd
dj/dk:删除上/下一行
d^/d0
d$=D
dw
daw:删除当前字符所在单词
dG
x:删除当前光标所在字符,相当于delete
X:删除光标前一个字符,相当于backspace
nx/nX
粘贴
put, p
p:小写p代表贴至游标后,整行复制贴在游标下行
P:大写P代表贴至游标上,整行复制贴在游标上方
tips:
u:撤回上一个动作
ctrl + r:恢复上一个动作
.:重复上一个动作
选择
v:按行选择
ctrl+v:按块选择
全选:ggvG/ggVG (gg是为了回到文档第一行)
选中之后可按y复制或者d剪切,然后p粘贴
移动光标
ctrl + f:向下移动一页
ctrl + b:向上移动一页
0/home:移动到本行最前面
$/end:移动到本行行尾
G:移动到文档最后一行
gg:移动到文档第一行
nG:n为数字,移动到文档的第n行
n<enter>:n为数字,光标向下移动n行
h/j/k/l 左/上/下/右移动
nh/j/k/l n为数字
搜索替换
/<word>:向光标之下搜索字符串<word>
?<word>:向光标之上寻找字符串<word>
*:向后(下)寻找游标所在处的单词
#:向前(上)寻找游标所在处的单词
fx 找到光标后第一个为x的字符 3fd 找到光标后第三个为d的字符
F 同f,反向查找。
tips:
配合n/N使用向上/下继续查找要搜索的word
:set ignorecase 不区分大小写 :set smartcase:区分大小写
若想只在查找某个字符串时忽略大小写,只需在字符串前加
\c
,如:/\cword
;大小写铭感则是/\Cword
/word\>
表示只匹配以word为结尾的单词;/\<word
表示只匹配以word为开头的单词;/\<word\>
表示匹配完整的word
这个单词
cc:替换本行,即删除当前行并在此行插入
cw:替换本单词,即删除当前单词并在此插入
~:反转游标所在字母的大小写
:s/word1/word2/ 替换当前行第一个 word1为 word2
:s/word1/word2/g 替换当前行所有 word1为 word2
:n1,n2s/word1/word2/:在n1-n2行搜索,,每一行的第一个word1用word2替代
:n1,n2s/word1/word2/g:在n1-n2行搜索,所有word1用word2替代
:%s/word1/word2/(等同于 :g/word1/word2/) 替换每一行的第一个 word1为 word2
:%s/word1/word2/g(等同于 :g/word1/word2/g) 替换每一行中所有 word1为 word2
:.,+ns/word1/word2/g:n为数字,表示在当前行以及+n中进行替换
:1,$s/word1/word2/g或者:%s/word1/word2/g:第一行到最后一行搜索word1并用word2替代
:1,$s/word1/word2/gc或者:%s/word1/word2/gc:第一行到最后一行搜索word1并用word2替代,替代前需要用户确认是否替换
conclusion:
g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对文档中所有包含搜索字符串的行进行替换操作。
vim 环境调整
:set nu/number 显示行号
:set nonu 不显示行号
:set smartindent 自动缩进
最新文章
- dedecms 文章页图片改为绝对路径
- 【JUC】JDK1.8源码分析之ConcurrentLinkedQueue(五)
- CentOS开机无法进入系统,如何查错
- HDu1003(maxn sum)
- LeetCode Single Number III
- PHP上传文件详解 错误提示
- ORACLE EXP命令
- C蛮的全栈之路-node篇(一) 环境布置
- PHP文章管理(2)
- 如何判断一个变量是数组Array类型
- CSS之box-sizing的用处简单介绍
- linux下sophos,clamav+clamtk杀毒软件
- JAVA进阶7
- 第五次编程作业-Regularized Linear Regression and Bias v.s. Variance
- java 读取外部和source下配置文件
- Linux 学习笔记 3:Shell 基础
- [iOS]创建界面方法的讨论
- GUI_文件管理器(练习)
- Typecho博客迁移
- 简易selenium自动化测试框架(Python)
热门文章
- leetCode刷题 | 两数相加
- neo4j在docker容器环境中无法启动的问题
- Spring JDBC 框架使用JdbcTemplate 类的一个实例
- HDU 2012 (水)
- JS理论--正则表达式RegExp的创建、元字符、优先度、方法(test(),exec(),match(),replace())
- 黑马程序员_毕向东_Java基础视频教程——位运算练习(随笔)
- 感觉shopex现在的升级方式太慢了
- Appium自动化(10) - appium高级元素定位方式之 UI Automator API 的详解
- spark机器学习从0到1介绍入门之(一)
- python3.x 基础一