常用的vi/vim基本命令(持续更新)
2024-08-22 12:54:29
★删除/复制/粘贴
全部删除:按esc后,然后dG
全部复制:按esc后,然后ggyG
全选高亮显示:按esc后,然后ggvG或者ggVG
按“+p“可将系统全局粘贴板里的内容粘贴进来
y:拷贝当前行到新的buffer
yy:拷贝当前行
"xyy:拷贝当前行的buffer名为x的buffer
p: 小写p代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面
P: 大写P代表贴至游标前(上)
整行的复制粘贴在游标的上(下)一行,非整行的复制则是粘贴在游标的前(后)
x:向后删除游标所在位置的字符
X:向前删除游标前面的字符
nX:删除前面的n个字符,游标所在的字符将不会被删
dd:删除当前行
ndd:删除第n行
★撤销/还原
u:撤销最后的改变
U:还原当前行的内容
★查找
/要搜索的字符串或者字符
例如:/user
下一个匹配:n
上一个匹配:N (shift+n)
▪从文件的结尾往开始处搜索
?要搜索的字符串或者字符
例如:?user
★跳转到文件头
输入冒号(:),打开命令输入框
输入命令1,是“一”的阿拉伯数字,不是小写的L
★跳转到文件尾
输入冒号(:),打开命令输入框
输入命令:$
★关闭高亮显示
命令模式下,输入:nohlsearch
nohlsearch是(no highlight search缩写)
也可以:set nohlsearch
可以简写:
noh或者set noh
●Vim中常用的命令
命令 作用
dd 删除(剪切)光标所在整行
5dd 删除(剪切)从光标处开始的5行
yy 复制光标所在整行
5yy 复制从光标处开始的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
●末行模式中可用的命令
命令 作用
:w 保存
:q 退出
:q! 强制退出(放弃对文档的修改内容)
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
:s/one/two 将当前光标所在行的第一个one替换成two
:s/one/two/g 将当前光标所在行的所有one替换成two
:%s/one/two/g 将全文中的所有one替换成two
?字符串 在文本中从下至上搜索该字符串
/字符串 在文本中从上至下搜索该字符串
★字符替换
s 命令来替换字符串。
:s/John/Jim/ 替换当前行第一个 John 为 Jim
:s/John/Jim/g 替换当前行所有 John 为 Jim
:n,$s/John/Jim/ 替换第n行开始到最后一行中每一行的第一个 John 为 Jim
:n,$s/John/Jim/g 替换第 n 行开始到最后一行中每一行所有 John 为 Jim
n 为数字,若 n 为 .,表示从当前行开始到最后一行
例如n=1时,做全文替换。
1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串str1
或者::g/str1/s//str2/g //也是全文替换
:%s/John/Jim/(等同于 :g/John/s//Jim/) 替换每一行的第一个 John 为 Jim
:%s/John/Jim/g(等同于 :g/John/s//Jim/g) 替换每一行中所有 John 为 Jim
//可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符。
:s#John/#Jim/# 替换当前行第一个 John/ 为 Jim/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
解释:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;
不加 g,表示只对搜索字符串的首次出现进行替换;
g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
★字符替换确认
需要某个字符串在文章中某些位置出现时被替换,而其它位置不被替换的操作,需要用户来进行确认。
例如
:s/John/Jim/g 替换当前行所有John为Jim
在命令后面加上一个字母c就可以实现,即:s/John/Jim/gc
其中,c是confirm的缩写。
★删除文本中的^M
对于换行,window下用回车换行(0A0D)来表示,linux下是回车(0A)来表示。将window上的文件拷到unix上用时,总会有个^M.
▪ 使用命令:cat filename1 | tr -d “^V^M” > newfile;
▪ 使用命令:sed -e “s/^V^M//” filename > outputfilename.
上述的^V和^M指的是Ctrl+V和Ctrl+M.必须要手工进行输入,而不是粘贴。
▪ 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//.
▪ :%s/^M$//g
如果上述方法无用,请尝试: [Page]
▪ tr -d \"\\r\" < src >dest
▪ tr -d \"\\015\" dest
▪ strings A>B
最新文章
- 自动爬取ZiMuZu的内容发布到Wordpress
- 技术文档--volley 框架
- SqlDependency数据库同步+signalr 推送消息
- 循环嵌套,while循环,穷举迭代循环
- 周爱民-javascript
- 如何配置仿真器DM8127+SEED-XDS560v2PLUS和连接不上的问题的解决
- ajax使用中发现的问题与深入扩展(for循环中嵌套ajax)
- 程序猿的道路~~(How to be a programmer?)
- iOS修改截取图片不规范问题
- [PATCH] UBUNTU: SAUCE: (no-up) apparmor: Sync to apparmor3 - RC1(v3.4.x kernel)
- iOS5新特性: Core Image 示例
- gridView 主从表实现
- springcloud(八):配置中心服务化和高可用
- servlet与jsp篇(一)$.ajax交互
- concurrent.futures进行并发编程
- c++ 实现拓扑排序
- Pycharm的激活码,亲测可用(20181223)
- 潭州课堂25班:Ph201805201 第五课:格式化输出和深浅复制 (课堂笔记)
- fastcgi协议分析与实例
- webpack使用五