Linux之vi/vim编辑器学习
目录
什么是vim?
vi/vim的使用
什么是vim?
Linux vi/vim
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
目前使用较多的是vim编辑器
vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能丰富。
vi/vim的使用
三种模式:
1、命令模式(Command mode)
2、输入模式(Insert mode)
3、底线命令模式(Last line mode)
1、命令模式:
刚启动vi/vim就进入了命令模式,这时候输入动作会被识别为指令而非输入字符。
"i":切换到输入模式,以输入字符。
"x":删除当前光标所在处的字符
":":切换到底线命令模式
2、输入模式
命令模式下按"i"进入输入模式
输入模式中可以操作以下案件:
shift+字符按键:输出大写字符
Enter:换行
Back Space:退格键,删除光标后一个字符
Del:删除键,删除光标前一个字符
方向键:在文本中移动光标
Home/End:移动光标到行首/行尾
Page Up/Page Down:上/下翻页
Esc:退出输入模式,切换到命令模式
3、底线命令模式
在底线命令模式下:
q:退出程序
w:保存文件
q!:不保存强制退出
wq:保存退出
命令模式下按键说明
翻页/移动光标功能
ctrl+d:屏幕【向下】移动半页
ctrl+u:屏幕【向上】移动半页
+:将光标移动到非空格符的下一行
-:将光标移动到非空格符的上一行
n+<Space>:n是指数字,20+空格:光标会移动会向后面移动20个字符(!!)
"[Home]"功能键:移动到这一行第一个字符处(!!)
"[End]"功能键:移动到这一行最后一个字符处(!!)
gg:移动到这个档案第一行
n+<Enter>:n为数字,光标向下移动n行
搜索/替换功能
/word: 向光标之下寻找一个名称为“word”的字符串
?word: 向光标之上寻找一个称为“word”的字符串
n:重复前一个搜寻动作(相当于重新打了上一次搜寻指令)
N:与n相反,[反向]进行前一个搜寻动作(这里的反向指搜寻动作指令里面的行为反向),如上个搜寻动作是向下搜寻字符串那么[N]就是想上搜寻字符串
n1,n2s/word1/word2/g:在n1到n2行之间寻找word1这个字符串,并将该字符串取代为word2。
n1,n2s/word1/word2/gc:在n1到n2行之间寻找word1这个字符串,并将该字符串取代为word2。在取代前给用户确认是否要取代。(c=confirm)
dd: 删除光标所在的那一整行
ndd: n为数字,删除光标所在的向下n行,如:20dd是删除向下20行(包括本行)
d1G: 删除光标所在到第一行的所有数据
dG: 删除光标所在到最后一行的所有数据
yy: 复制光标所在的那一行(常用)
nyy: 复制光标所在的向下n行内容
J:将光标所在行与下一行的数据结合成同一行
c:重复删除多个数据
u:重复前一个动作
[Ctrl]+r:重做上一个动作
( u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次)
编辑模式的按钮说明
i、a、o、r均可以进入编辑模式
Esc:退出编辑模式
底线命令模式下按键说明
ZZ:(大写的Z)保存退出
ZQ:不保存,强制退出
w[filename]: 另存新档
r[filename]: 将[filename]这个档案内容加到游标所在行后面
n1,n2 w [filename]: 将n1到n2的内容存储称filename这个档案
:! command: 暂时离开vi指令行,执行command的显示结果
例如:
:! ls /
暂时离开编辑模式,看根目录下的目录信息
vim环境的变更
:set nu:显示行号,设定之后,会在每一行的前缀
set nonu: