★删除/复制/粘贴
全部删除:按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 

常用的vi/vim基本命令(持续更新)的更多相关文章

  1. python3.4学习笔记(六) 常用快捷键使用技巧,持续更新

    python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...

  2. # OpenGL常用函数详解(持续更新)

    OpenGL常用函数详解(持续更新) 初始化 void glutInit(int* argc,char** argv)初始化GULT库,对应main函数的两个参数 void gultInitWindo ...

  3. 【CDN+】 一些常用的Linux命令,crontab+VI+Hive(持续更新)

    前言 本文主要是记录下工作中可能用到的一些linux指令,当作字典查用 Crontab 基本命令 # 安装 yum -y install vixie-cron crontabs#查看状态 servic ...

  4. Android 常用开源库总结(持续更新)

    前言 收集了一些比较常见的开源库,特此记录(已收录350+).另外,本文将持续更新,大家有关于Android 优秀的开源库,也可以在下面留言. 一 .基本控件 TextView HTextView 一 ...

  5. vim常用指令及快捷键(持续更新)

    (这些文章都是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) 发现了个非常赞的网站  http://openvim.com/ 以下很多操作都是安装好vund ...

  6. vscode常用快捷键和插件(持续更新),以及一些常用设置的坑和技巧

    一 常用快捷键 ctrl+shift+p:  打开命令面板,最常用了 ctrl+p: 搜索窗口: 直接输入文件名,跳转到文件 > 可以进入 Ctrl+Shift+P 模式 ? 列出当前可执行的动 ...

  7. ML—R常用多元统计分析包(持续更新中……)

    基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面要综述的包主要分为以下几个部分: 1) 多元数据可视化(Visualising multivaria ...

  8. Android常用开源库集合【持续更新】

    1.FastJson  阿里巴巴工程师做的一个方便的JSON转换库 2.ButterKnife 只要作用能代替代码中大量的findviewbyid语句的使用,使用@injectview注入方式 3.v ...

  9. Linux常用命令及工具记录(持续更新)

    一.命令 convmv   作用:文件名的编码转换   安装:sudo apt-get install convmv   使用:convmv * -f gbk -t utf8 --notest   c ...

随机推荐

  1. Qt元对象系统简介

    在Qt中提供了c++的扩展,提供了一种元对象系统的机制,(meta-object-system)的机制.其中包含了信号与槽的内部机制,能够访问到QObject子类的元对象信息的功能. Q_OBJECT ...

  2. tensorflow显存管理

    在运行上面的blog的Tensorflow小程序的时候程序我们会遇到一个问题,当然这个问题不影响我们实际的结果计算,但是会给同样使用这台计算机的人带来麻烦,程序会自动调用所有能调用到的资源,并且全占满 ...

  3. 关于gg_bd_ad_720x90.js和follow.js

    很多人对gg_bd_ad_720x90.js和follow.js 抱有疑问,这是个什么鬼? 我也迷惑了一阵子,今天偶然发现了这两个源文件. 大家一起欣赏下. 注意红色加粗代码. 1.follow.js ...

  4. PDF常见问题总结

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  5. C/C++之单例模式实现

    /*** * 保证一个类仅有一个实例,并提供一个访问它的全局访问点 */ #include <iostream> #include <string> using namespa ...

  6. 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持

    前言 距离上一篇文章<基于EF Core的Code First模式的DotNetCore快速开发框架>已过去大半个年头,时光荏苒,岁月如梭...比较尴尬的是,在这大半个年头里,除了日常带娃 ...

  7. VMware前路难测,多个厂家群雄逐鹿

    以VMware为例,虚拟机巨头公布了第二财季报告所示,它第二财季收入同比增长13%,达到了21.7亿美元,而且该公司收入和每股收益均超出预期. 在人们高谈Salesforce.亚马逊等新兴云计算厂商取 ...

  8. Java笔记 #02# 带资源的try语句

    索引 普通的 try.java 带资源的 try.java 当资源为 null 的情况 可以参考的文档与资料 / test.txt 待读取的内容 hello. / 普通的 try.java 读取 te ...

  9. Python3 matplotlib的绘图函数subplot()简介

    Python3 matplotlib的绘图函数subplot()简介 一.简介 matplotlib下, 一个 Figure 对象可以包含多个子图(Axes), 可以使用 subplot() 快速绘制 ...

  10. MSM8937系统启动流程【转】

    本文转载自:https://blog.csdn.net/chenzhen1080/article/details/54945992?utm_source=blogxgwz8 1 Boot Addres ...