linux中的vim用法
p.p1 { margin: 0; font: 16px ".PingFang SC"; color: rgba(53, 53, 53, 1) }
p.p2 { margin: 0; font: 16px ".PingFang SC"; color: rgba(53, 53, 53, 1); min-height: 19px }
p.p3 { margin: 0; font: 12px ".PingFang SC" }
p.p4 { margin: 0; font: 12px "Helvetica Neue" }
p.p5 { margin: 0; font: 12px Helvetica; min-height: 14px }
span.s1 { font: 12px "Helvetica Neue" }
span.s2 { font: 12px ".PingFang SC" }
table.t1 { border-collapse: collapse }
td.td1 { border: 1px solid rgba(154, 154, 154, 1); padding: 1px 5px }
p.p1 { margin: 0; font: 16px ".PingFang SC"; color: rgba(53, 53, 53, 1) }
p.p2 { margin: 0; font: 16px ".PingFang SC"; color: rgba(53, 53, 53, 1); min-height: 19px }
p.p3 { margin: 0; font: 12px "Helvetica Neue" }
p.p4 { margin: 0; font: 12px ".PingFang SC" }
span.s1 { font: 12px ".PingFang SC" }
span.s2 { font: 12px "Helvetica Neue" }
span.s3 { font: 12px "Helvetica Neue"; color: rgba(0, 0, 0, 1) }
span.Apple-tab-span { white-space: pre }
三种模式,一般指令模式、编辑模式(i,I,o,O,a,A,ESC)、指令列命令模式(:/?)
一般指令模式:
移动:
数字n加上下左右键 向上下左右移动n个字符
ctrl+f 向下移动一页
ctrl+b 向上移动一页
ctrl+d 向下移动半页
ctrl+u 向上移动半页
n+空格 向右移动n个字符
0 移动到该行最前边的字符处
$ 移动到该行最后边的字符处
H 光标移动到这个屏幕最上方那一列的第一个字符处
M 光标移动到这个屏幕中央那一列的第一个字符处
L 光标移动到这个屏幕最下方那一列的第一个字符处
G 移动到这个文件的最后一列
n+G 移动到这个文件的第n列
gg 移动到文件的第一列,相当于1G
n+<Enter> 光标向下移动n列
搜索
/word 从光标处向下搜索
?word 从光标处向上搜索
n 重复前一个搜索动作
N 反向进行前一个搜索动作
替换
:n1,n2s/word1/word2/g n1,n2为数字,表示第n1与n2列之间查找字符串word1,并将该字符串替换成word2
:1,$s/word1/word2/g 从第1列到最后一列替换word1为word2
:1,$s/word1/word2/gc 在替换前显示提示字符给用户确定是否需要替换
删除
n+x 向后删除n个字符
n+X 向前删除n个字符
dd 删除光标所在的那一列
ndd 删除光标及向下的n行
d1G 删除光标到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除光标所在处到该列尾的字符
d0 删除光标所在处到该列首的第一个字符
复制粘贴
nyy 复制光标及向下n列的数据
y1G 复制光标所在列到第一列的数据
yG 复制光标所在列到最后一列的数据
y0 复制光标所在字符到该列行首的所有字符
y$ 复制光标所在字符到该列行尾的所有字符
p,P p将已复制的数据在光标下一列粘贴上,P将已复制的数据粘贴在光标在的上一列
J 将光标所在列与下一列数据合为同一列,中间有空格
复原
u 复原前一个动作
ctrl+r 重做前一个动作,与u相反
. 重复前一个动作
:e! 在vim下进行多种编辑行为后,恢复到原始状态
编辑模式
编辑
o:从下一行开始写,a:从当前字符后开始写,i:从当前字符前开始写
i/I i为从当前光标所在处插入,I为从目前所在列的第一个非空格处开始插入
a/A a为从当前光标所在处的下一个字符处开始插入,A为从光标所在列的最后一个字符处开始插入
o/O o在光标所在列的下一列插入新的一列,O为在上一列插入新的一列
r/R进入取代模式,r只会取代光标所在处的字符,R从光标所在处开始取代,直到按下ESC为止
退出与保存
:w :q :wq :q! :w保存,:q离开,:q!强制退出
ZZ 若文件没有改动,不存储离开,若文件变动,则存储后离开
另存为
:w filename 将编辑的数据存储成另一个文件
:n1,n2 w filename 将n1到n2的内容存储成另一个文件
编辑模式下操作其他文件/命令
:r filename 在编辑的数据中,读入另一个文件的数据,即将该文件内容加在光标所在列的后边
:! command 暂时离开vim到命令行模式下执行command并显示结果,例如:! ls -l
行号
:set nu 显示行号
:set nonu 取消行号
区域块的选择:
v 字符选择,将光标经过的地方反白选择
V 行选择,将光标经过的行反白选择
ctrl+v 区域块选择,可以用长方形的方式选择字符
y 将反白的地方复制
d 将反白的地方删除掉
p 将复制的区域块,粘贴在光标所在处
多文件编辑
vim + 多个文件名 同时编辑多个文件
:files 查看目前该vim开启的所有文件,显示%a的文件为当前正在编辑的文件
:N 编辑上一个文件
:n 编辑下一个文件
多窗口功能
打开一个文件后,通过:sp [文件名]在新窗口打开另一个文件,文件名缺失时,出现在新窗口中的是同一个文件
:sp [filename] 在新窗口中打开文件
ctrl+w后加方向键 切换当前所在窗口
:q 关闭当前窗口
linux中的vim用法的更多相关文章
- (转)linux 中特殊符号用法详解
linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员 $普通用户 脚本中 #!/b ...
- Linux中find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- [转]Linux中find常见用法示例
Linux中find常见用法示例[转]·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参 ...
- linux中make的用法
一.linux中make的用法 目的: 基本掌握了make 的用法,能在Linux系统上编程.环境: Linux系统准备: 准备三个文件:file1.c, file ...
- Linux中“!"的神奇用法
前言 实际上,不起眼的“!”在linux中有着很多让你惊叹的妙用.本文就来细数那些“!”的神奇用法. 执行上一条命令 例如,在执行完上面一条命令后,可以使用下面的方式再次执行上一条命令: $ wher ...
- Linux中sed的用法实践
Linux中sed的用法实践 参考资料:https://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html http://www.fn139 ...
- Linux中Sed的用法
Linux中Sed的用法 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: ...
- Linux中 find 常见用法示例
Linux中find常见用法示例 #find path -option [ -print ] [ -exec -ok command ] {} \; #-print 将查找到的文件输出到标准输出 #- ...
- linux中comm命令用法
linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令. comm命令功能: 选择或拒绝两个已排序的文件的公共的行. comm命令语法:comm [-12 ...
随机推荐
- C++的构造函数为何不能为虚函数
1. 存储空间角度:虚函数对应一个vtable,vtable存储于对象的内存空间 若构造函数是虚的,则需要通过 vtable来调用,若对象还未实例化,即内存空间还没有,无法找到vtable 2. 使用 ...
- BUCK BOOST学习总结
首先对于我这种电源方面的小白来说 关于电源用的最多的就是线性稳压了 开关类的如 TI 的TPS系列 我是只知道应用电路而不知道具体原理的 但是长此以往也不是个办法 于是今天就带打家详细的来讲一下 ...
- centos7 搭建 nginx web服务 反代理
Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. ...
- 统计行数、文件夹个数、文件个数的相关shell命令
极客君最近做项目,刚好遇到需要统计一些sql文件数量的问题,用到一些实用的shell命令,记录下来,以后万一还能用上呢? 如果在终端不打开文件看到一共多少行,则可以使用wc命令来实现: wc -l [ ...
- 【遥感数字图像处理实验】Erdas版详细图文实验教程(8实验全)
@ 目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 遥感数字图像的处理,是对遥感数字图像的计算机处理.与工业和医学数字图像不同,遥感数字图像类型更为多样,内容更为复杂.因此,遥感 ...
- kotlin中的嵌套类与内部类
Java中的内部类和静态内部类在Java中内部类简言之就是在一个类的内部定义的另一个类.当然在如果这个内部类被static修饰符修饰,那就是一个静态内部类.关于内部类 和静态内部类除了修饰符的区别之外 ...
- WEB安全防护相关响应头(下)
前篇"WEB安全防护相关响应头(上)"中,我们分享了 X-Frame-Options.X-Content-Type-Options.HTTP Strict Transport Se ...
- mybatis运行出现org.apache.ibatis.binding.BindingException
今天学习mybatis的第一天,发现用junit测试报出了次异常:org.apache.ibatis.binding.BindingException: Type interface cn.dzp.d ...
- java中的NIO和IO到底是什么区别?20个问题告诉你答案
摘要:NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多. 本文分享自华为云社区<jav ...
- NeuWare软件开发环境
NeuWare软件开发环境 NeuWare 全面支持各类主流编程框架(如TensorFlow,Caffe,Caffe2,MXNet和ONNX等).用户可面向上述编程框架,便捷地在MLU100上开发和部 ...