Vim编辑器

vi编辑器

  • vim是Vi improved的缩写,是vi的改进版
  • linux中,vi被认为是事实上的标准编辑器

进入vi编辑器

  • 通过以下方式进入vi编辑器:
命令 描述
vi filename 如果filename存在,则打开;揉着创建一个新的文件叫做filename
vi -R filename 以只读模式打开现有文件
view filename 以只读模式打开现有文件
  • 竖线(|)代表光标的位置。
  • 波浪号(~)代表该行没有任何内容。如果没有 ~,也看不到任何内容,那说明这一行肯定是有空白字符(空格、tab 缩进、换行符等)或不可见字符。

工作模式

  • 普通模式
  • 由Shell进入vi编辑器时,首先进入普通模式。在普通模式下,从键盘输入任何字符都被当作命令来解释。普通模式下没有任何提示符,输入命令后立即执行,不需要回车,而且输入的字符不会在屏幕上显示出来。
  • 普通模式下可以执行命令、保存文件、移动光标、粘贴复制等。
  • 编辑模式
  • 编辑模式主要用于文本的编辑。该模式下用户输入的任何字符都被作为文件的内容保存起来,并在屏幕上显示出来。
  • 命令模式
  • 命令模式下,用户可以对文件进行一些高级处理。尽管普通模式下的命令可以完成很多功能,但要执行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式。

退出vi编辑

  • 退出之前,可以在w命令后面指定一个文件名,则可以将文件另存为新文件:
w filename2

移动光标

  • 为了不影响文件内容,必须在普通模式(按两次 Esc 键)下移动光标。使用下表中的命令每次可以移动一个字符:
命令 描述
k 向上移动
j 向下移动
h 向左移动
l 向右移动
  • 两点提醒:
  • vi 是区分大小写的,输入命令时注意不要锁定大写。
  • 可以在命令前边添加一个数字作为前缀,例如,2j 将光标向下移动两行。
  • 其他移动命令:
命令 说明
0 将光标定位在一行的开头
$ 将光标定位在一行的末尾
w 定位到下一个单词
b 定位到上一个单词
( 定位到一句话的开头(句子是以 ! . ? 三种符号来界定的)
) 定位到一句话的结尾
{ 定位到段落开头
} 定位到段落结尾
[[ 回到段落的开头处
]] 向前移动到下一个段落的开头处
1G 移动到文件第一行
G 移动到文件最后一行
nG或:n 移动到文件第n行
H 移动到屏幕顶部
nH 移动到屏幕顶部第n行
M 移动到屏幕中间
L 移动到屏幕底部
nL 移动到屏幕底部第n行
:x x为一个数字,标识移动到行号为x的行

控制命令

命令 描述
CTRL+d 向前滚动半屏
CTRL+f 向前滚动全屏
CTRL+u 向后滚动半屏
CTRL+b 向后滚动全屏
CTRL+e 向上滚动一行
CTRL+y 向下滚动一行
CTRL+I 刷新屏幕

编辑文件

命令 描述
i 在当前光标位置之前插入文本
I 在当前行的开头插入文本
a 在当前光标位置之后插入文本
A 在当前行的末尾插入文本
o 在当前位置下面创建一行
O 在当前位置上面创建一行

删除字符

命令 描述
x 删除当前光标下的字符
X 删除光标前面的字符
dx 删除从当前光标到单词结尾的字符
d^ 删除从光标到行首的字符
D 删除从当前光标到行尾的字符
dd 删除当前光标所在行的字符

可以在命令前面添加一个数字前缀,表示重复操作的次数,例如,2x 表示连续两次删除光标下的字符,2dd 表示连续两次删除光标所在的行。


修改文本

命令 描述
cc 删除当前行,进入编辑模式
cw 删除当前字,进入编辑模式
r 提花当前光标下的字符
R 从当前光标开始替换字符,按Esc键退出
s 用输入的字符代替当前字符,进入编辑模式
S 用输入的文本代替当前的行,进入编辑模式

粘贴复制

命令 描述
yy 复制当前行
nyy 复制n行
yw 复制一个单词
nyw 复制n行
p 将复制的文本粘贴到光标的后面
P 将复制的文本粘贴到光标的前面

set命令

命令 说明
:set ic 搜索时忽略大小写
:set ai 设置自动缩进
:set noai 取消自动缩进
:set nu 显示行号
:set sw 设置缩进的空格数。例如,将缩进空格数设置为4::set sw=4。
:set ws 循环搜索:若果知道文件末尾也没有查找到指定的字符,那么回到开头继续查找
:set wm 设置自动换行。例如,设置距离边际2个字符时换行::set wm=2 。
:set ro 将文件类型改为只读
:set term 输出终端类型
:set bf 忽略输入的控制字符,如BEL、BS、CR
posted @ 2016-08-03 19:09  英吹斯汀ING  阅读(257)  评论(0编辑  收藏  举报