Vi、Vim的命令及使用
Vi、Vim基本命令
Vi文文本编辑器,是Visual interface的简称。(无敌编辑器)
Vim它是Vi的增强版,即Vi Improved。(vim需要安装)
Vi有四种模式:
- 工作模式,可查看文件信息
- 命令模式,控制光标移动,可对文本进行复制、粘贴、删除和查找等
- 输入模式,正常的文本录入
- 末行模式,保存或退出文档
Vim拥有5种编辑模式:命令模式、输入模式、末行模式、可视化 模式、查询模式。
- 命令模式(其它模式→ESC)
- 输入模式(命令模式→a、i、o、A、I、O)
- 末行模式(命令模式→:)
- 可视化模式(命令模式→v)
- 查询模式(命令模式→?、/)
命令、输入模式常用命令
操作类型 | 命令 | 作用 |
---|---|---|
光标移动 | h、j、k、l | 左、下、上、右 |
⬅、⬇、⬆、➡ | 左、下、上、右 | |
删除 | dd | 删除(剪切)光标所在整行 |
#dd | 删除(剪切)从光标处开始的#行 | |
d^ | 删除当前光标之前本行所有字符 | |
d$ | 删除当前光标之后本行所有字符 | |
删除列 | 若想删除一列,可以在命令模式下按ctrl + v,然后使用光标整列选取删除 | |
复制 | yy | 复制光标所在整行 |
#yy | 复制从光标处开始的#行 | |
粘贴 | p | 剪切(dd)或复制(yy)过的数据粘贴到光标后面 |
P | 剪切(dd)或复制(yy)过的数据粘贴到光标前面 | |
搜索 | /word | 从上而下在文中查找字符串“word” |
word | 从下而上在文中查找字符串“word” | |
n | 显示搜索命令定位到的下一个字符串 | |
N | 显示搜索命令定位到的上一个字符串 | |
撤销操作 | u | 撤销上一步的操作 |
ctrl + r | 撤销撤销操作 | |
翻页 | ctrl+f 或 Page Down | 文件向下翻一屏 |
ctrl+b 或 Page Up | 文件向上翻一屏 | |
进入编辑模式 | a | 在当前字符后添加文本 |
i | 在当前字符前添加文本 | |
o | 在当前后面插入一空行 | |
行间跳转 | shift + ^ | 行首 |
shirf + $ | 行尾 | |
1G或gg | 文件首部 | |
shift + G | 文件尾部 | |
#G | 跳转至文件第#行 |
末行模式常用命令
操作类型 | 命令 | 作用 |
---|---|---|
保存文件 | :w | 保存 |
:w /root/newfile | 保存文件至/root/newfile | |
退出vi | :q | 退出 |
:q! | 强制退出 | |
保存退出vi | :wq或:x | 保存退出 |
:wq!或:x! | 强制保存退出 | |
行号 | :set nu | 显示行号 |
:set nonu | 不显示行号 | |
大小写 | :set ic | 区分显示字符大小写 |
:set noic | 忽略字符大小写 | |
缩进 | :set ai | 设定自动缩进 |
:set noai | 取消自动缩进 | |
替换 | : s/old/new | 当前光标所在行的第一个old替换成new |
: s/old/new/g | 当前光标所在行的所有old替换成new | |
:%s/old/new/g | 将全文中的所有old替换成new | |
:%s/old/new/gi | 将全文中的所有old替换成new并忽略大小写(参数i) | |
:#,#s/old/new/g | 将全文中的所有old替换成new | |
:%s/old/new/gc | 将全文中的所有old替换成new,在替换命令末尾加c命令,将对每个替换动作进行确认 | |
搜索 | ?word | 在文本中从下至上搜索“word”字符串 |
/word | 在文本中从上至下搜索“word”字符串 | |
:set hlsearch | 高亮显示查找到的文本 | |
:set nohlsearch | 取消高亮显示 | |
其他操作 | :e /…/… | 打开新文件进行编辑 |
:r /…/… | 在当前文件中读入其他文件内容 | |
:ADDR1,ADDR2w /…/… | 将当前文件中部分内容另存为另外一个文件 末行模式下使用w命令 | |
:! COMMAND | 跟SHELL交互 |
使用vim编辑多个文件
vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
:qa 全部退出
分屏显示一个文件
Ctrl+w, s: 水平拆分窗口
Ctrl+w, v: 垂直拆分窗口
Ctrl+w, ARROW(表示上下左右箭头):在窗口间切换光标
:qa 关闭所有窗口
分窗口编辑多个文件
vim -o : 水平分割显示
vim -O : 垂直分割显示
配置文件
/etc/vimrc
~/.vimrc
set hlsearch " //高亮度反白
set backspace=2 " //可随时用退格键删除
set autoindent " //自动缩排
set tabstop=4 " //缩进
set softtabstop=4
softtabstop // 是“逢4空格进1制表符”,前提是tabstop=4
set shiftwidth=4 // 自动缩进空格长度
set mouse=a " // 使用鼠标
set selection=exclusive
set selectmode=mouse,key
set ruler " //可显示最后一行的状态
set showmode " //左下角那一行的状态
set nu " //可以在每一行的最前面显示行号啦!
set bg=dark " //显示不同的底色色调
syntax on " //进行语法检验,颜色显示
下图为Vim的键盘快捷键