vim 高级编辑技巧
- 建议参考IBM官方文档
https://www.ibm.com/developerworks/cn/linux/l-cn-tip-vim/ - 重新输入以前输入过的某条命令
Ctrl + r - 全局替换
格式:
":%s/要替换字符/替换为新字符/g"
:%s/old/new/g
指定行替换
格式: ":起始行,终止行s/要替换字符/替换为新字符/g"
:1,5 s/old/new/g - 多文件替换
多文件替换,比如要替换所有.c文件中a_value为b_value,可以使用如下方法:
vi *.c
:argdo %s/a_value/b_value/ge | update
其中update是直接替换覆盖原文件,若需要确认,则可使用
:argdo %s/a_value/b_value/gec | update - 多行注释:
首先按 esc 进入命令行模式下,按下 Ctrl + v,进入列(也叫区块)模式;
在行首使用上下键选择需要注释的多行;
按下键盘(大写)"I" 键,进入插入模式;
然后输入注释符("//"、"#" 等);
最后按下 "Esc" 键。
注:在按下 esc 键后,会稍等一会才会出现注释,不要着急~~ 时间很短的 - 删除多行注释:
首先按 esc 进入命令行模式下,按下 Ctrl + v, 进入列模式;
选定要取消注释的多行;
按下 "x" 或者 "d".
注意:如果是 "//" 注释,那需要执行两次该操作,如果是 "#" 注释,一次即可 - 删除行首的多字符
首先按 esc 进入命令行模式下,按下 Ctrl + v, 进入列模式, 按"右箭头"选择要删除的字符长度;
按"向下"箭头选择要删除多少行
按下"d",即可删除 - 其他
显示行号: set nu
取消显示行号: set nonu
回到句尾: shift + $
回到句首: shift + ^
段首 : {
段尾 : }
前一修改处 : g,
后一修改处 : g;
删除光标之后的单词剩余部分 : dw
删除光标之后的该行剩余部分 : d$
把下一行合并到当前行尾 : J
撤消更改: u
自动补全: Ctrl-p
显示当前编辑文件名及行数: Ctrl-g
按住ctrl + alt 选块复制粘贴
vim 高级编辑技巧的更多相关文章
- [转]基于Protel DXP软件的PCB高级编辑技巧大全
来源:基于Protel DXP软件的PCB高级编辑技巧大全 一.放置坐标指示 放置坐标指示可以显示出PCB板上任何一点的坐标位置. 启用放置坐标的方法如下:从主菜单中执行命令 Place/Coordi ...
- vim高级编辑(一)
本文出自 http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...
- vim 高级使用技巧
前言:逃离windows有很长时间了,特别是当今android盛行的时代,我们没有理由不选择ubuntu作为编译开发android之首选.其实操作系统只是我们使用的一个工具, windows也好lin ...
- vim 高级使用技巧第二篇
上篇我贴上了我使用的vim配置及插件配置,有这些东西只能是一个脚本堆积,无从谈高效的代码阅读开发. 下面我们就来写经常使用的命令,就从配置F系列快捷键开始吧. F+ n 快捷键配置 F1基本上时帮助, ...
- vim编辑技巧
算上大学上课linux接触四年了,可惜除了工作接触的那些,其他地方还是很水的,都不精通,今日翻来看了看以前过目即忘的vim技巧,发现,如无几年操作经验,这些技巧很难领悟的.这里写下来,以备后查. 区块 ...
- vi/vim系统编辑命令使用技巧
01前言 在Linux系统中会有很多的文件信息,这些文件的内容如果需要编辑,就必须借助vi或vim编辑命令. vi是Linux命令行界面下的重要文字编辑器.vim是vi命令的增强版. [语法格式] v ...
- vim常用操作技巧与配置
vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中 ...
- Vim实用小技巧
Vim实用小技巧 一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为 ...
- vi/vim高级命令集粹
vi/vim高级命令集粹 (ctrl +v过来 留着以后看) 1.交换两个字符位置 xp 2.上下两行调换 ddp 3.把文件内容反转 :g/^/m0/ (未通过) 4.上下两行合并 J 5.删除所有 ...
随机推荐
- stl stack用法
栈后进先出 #include<iostream> #include<algorithm> #include<cstdio> #include<stack> ...
- UnderWater+SDN论文之三
Software-Defined Underwater Acoustic Modems: Historical Review and the NILUS Approach Source: IEEE J ...
- 【kindle笔记】之 《浪潮之巅》- 2018-1-
<浪潮之巅> 这本书推荐自最爱的政治课老师. 政治课老师张巍老师.我会一直记得你的. 以这样的身份来到这个学校,他人的质疑,自己的忐忑,老板的不公.犹犹豫豫谨小慎微地前进. 第一次听到这样 ...
- VS如何在调试时进入到dll文件
背景: 项目A:用C#写的一个类库文件 项目B:引用项目A的dll文件,完成编码,也是C#编写的. 需求:怎么能在调试的时候,调试断点能够从项目B中进入项目A中的代码. 解决办法就是: 假设,项 ...
- MyEclipse 配置 Tomcat
安装好Tomcat,MyEclipse 之后,利用这两个工具可以开发部署Web 应用,步骤相对手动部署要简洁的多,这里有一个特别要注意的地方:系统里安装JDK.Tomcat.MyEclipse 的版本 ...
- Git本地仓库push至GitHub远程仓库每次输入账户密码问题解决(亲测可行)
在使用git push命令将本地仓库内容推送至GitHub远程仓库的每一次git都要让我们输入GitHub的用户名和密码.这着实让我们心烦.我们会有疑问,我明明设置了公钥呀!怎么还需要输入账户和密码? ...
- oss上传和下载的笔记
<<<<<<<<<对oss操作,上传文件>>>>>>>>>>>>>& ...
- 剑指offer(1)
题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- AJAX+springmvc遇到的问题
当我使用AJAX将表单的值传入处理器中后,经过了一个判断再进行页面跳转时,不能在处理器中使用重定向,它会将重定向的页面内容在AJAX的data中显示出来而不是显示一个页面 所以只能在AJAX 的suc ...
- python语法糖/装饰器
1.python高阶函数和嵌套函数 1.1高阶函数 def func1(x): return x**2 def func2(x): return x**3 def func(x,y): return ...