vi是Linux下的一个文本编辑器,下面介绍vi相关内容。
1.vi的模式:vi有三种模式,特定的模式下只能做特定的事情:
1)命令模式:命令模式下,可以通过输入相关命令来控制vi:
光标控制类:
(1)k j l h 控制光标的 上 下 左 右
(2)ctrl + d 向下移动半页
(3)ctrl + u 向上移动半页
(4)gg 光标移动到第1行
(5)shitt + g 光标移动到最后一行(其实就是G)
(6)n + G 光标移动到第n行
文本搜索类:
(7)/word 向上搜索名为word的字符串
(8)?word向下搜索名为word的字符串
(9)n 重复上一个命令 N重复下一个命令
文本替换类:
(10):n1,n2s/word1/word2/g 从第n1行到第n2行中,把word1 替换为 word2
(11):n1,%s/word1/word2/g 从第n1行到最后一行中,把word1 替换为 word2(或%s/word1/word2/g效果一样)
(12):n1,%s/word1/word2/gc 从第n1行到最后一行中,把word1 替换为 word2(需要用户确认,c参数代表确认)
文本删除类:
(13)x 删除光标后面一个字符
(14)X 删除光标前一个字符
(15)nx 删除光标后 n个字符
(16)nX 删除光标前n个字符
(17)dd 删除光标所在的行
(18)ndd 删除光标及以下的n行
(19)d1G 删除光标处到第1行的内容
(20)dG 删除光标处到最后一行的内容
文本复制粘贴类:
(21)yy 复制当前行
(22)复制当前光标及以下的n行
(23)y1G 删除光标所在处到第一行的内容
(24)yG删除光标所在处到最后一行的内容
(25)p 将复制内容粘贴到下一行
(26)P 将复制内容粘贴到上一行
撤销/反撤销类
(27)u 撤销
(28)ctrl + r 重复上一次动作
切换模式类(进入编辑模式):
(39)i 进入编辑模式,光标停留在当前位置
(40)I 进入编辑模式,光标停留在当前行首
(41)a 进入编辑模式,光标停留在当前位置的笑一个字符
(42)A 进入编辑模式,光标停留在当前行的行尾
(43)o 进入编辑模式,在当前行的下一行新建一行
(44)O 进入编辑模式,在当前行的上一行新建一行
(55)r 进入编辑模式,并替换当前光标所在的字符
(56)R 进入编辑模式,并替换当前光标所在及以后的字符,直到按下esc
切换模式类(进入末行模式):
(57):进入末行模式
(58):w 保存当前内容
(59):w! 强制保存
(60):q 退出
(61):q! 强制退出,不保存更改内容
(62):wq 退出并保存
(63):ZZ 保存更改,并退出
(64):w [filename] 另存为 filename(实际输入时不需要输入[])
(65):n1,n2w [filename] 将第n1行到第n2行的内容另存为filename
(66):r [filename],读取filename的内容到光标以后
(67):! [cmd],暂时离开vi,去执行cmd命令(与在terminal下输入命令的是一样的效果),按enter可返回vi
2)编辑模式:
(1)字符按键以及Shift组合,输入字符
(2)ENTER,回车键,换行
(3)BACK SPACE,退格键,删除光标前一个字符
(4)DEL,删除键,删除光标后一个字符
(5)方向键,在文本中移动光标
(6)HOME/END,移动光标到行首/行尾
(7)Page Up/Page Down,上/下翻页
(8)Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
(9)ESC,退出输入模式,切换到命令模式
3)末行模式:
(1)w 保存当前内容
(2)w! 强制保存
(3)q 退出
(4)q! 强制退出,不保存更改内容
(5)wq 退出并保存
(6)ZZ 保存更改,并退出
(7)w [filename] 另存为 filename(实际输入时不需要输入[])
(8)n1,n2w [filename] 将第n1行到第n2行的内容另存为filename
(9)r [filename],读取filename的内容到光标以后
(10)! [cmd],暂时离开vi,去执行cmd命令(与在terminal下输入命令的是一样的效果),按enter可返回vi
2.vi的配置,一般我们会安装vim,vim时vi 的升级版,我们发现vim最开始跟vi一样,没有行号,也没文本高亮等这些功能,我们可以通过配置vim的配置文件(/etc/vim/vimrc)来启用这些功能,sudo /etc/vim/vimre,在文件末尾加入以下内容:
" 显示行号
set number
" 语法高亮
set syntax=on
" Tab键的宽度为4
set tabstop=4
" 统一缩进为4
set softtabstop=4
" 自动缩进
set autoindent
" 代码补全
set completeopt=preview,menu
" 去掉输入错误的提示声音
set noeb
" 不需要备份
set nobackup
" 禁止生成临时文件
set noswapfile