【Linux】Vim编辑器

1. 启动vim:vim 文件名(如果是不存在的,则新建)
2. 打开文件:vim 文件名(文件必须存在)
3. vim的模式
  • 正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空

以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容,也可以使用复制、粘贴来处理你的文件数据。

  • 插入模式(按i键进入) 左下角显示–INSERT—

在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到你按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下【Esc】即可退出编辑模式。

  • 可视模式(不知道如何进入) 左下角显示–VISUAL—
  • 命令行控制界面(shift+:)

输入【 : / ? 】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中,可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的!

4. 插入命令
i    在当前位置生前插入
I    在当前行首插入
a    在当前位置后插入
A    在当前行尾插入
o    在当前行之后插入一行
O    在当前行之前插入一行

【r, R】 进入取代模式:

r   只会取代光标所在的那一个字符一次
R   会一直取代光标所在的文字,直到按下 ESC 为止;
5. 移动命令
h			左移一个字符
l			右移一个字符,这个命令很少用,一般用w代替。
k			上移一个字符
j			下移一个字符
w           光标跳到下个字的开头
e           光标跳到下个字的字尾
H           光标移动到这个屏幕的最上方那一行的第一个字符
M           光标移动到这个屏幕的中间那一行的第一个字符
L           光标移动到这个屏幕的最下方那一行的第一个字符
G           移动到这个文件的最后一行
nG          移动到这个文件的第n行(可配合:set nu)
gg          移动到这个文件的第一行,相当于1G
End         移动到这一行的最后面字符处:$,我测试好像不行
Home        移动到这一行的最前面字符处:0数字,但不能用数字小键盘上的数字
Ctrl + e    向下滚动一行
Ctrl + y    向上滚动一行
Ctrl + d    向下滚动半屏
Ctrl + u    向上滚动半屏
Ctrl + f    向下滚动一屏
Ctrl + b    向上滚动一屏
n<space>    光标向右移动n个字符
n<Enter>    光标向下移动n行
6. 撤销和重做
u			撤销(Undo)
U			撤销对整行的操作
trl + r		重做(Redo),即撤销的撤销。
7. 删除命令
x				删除当前字符
X				删除当前字符的前一个字符。X=dh
nx				连续向后删除n个字符
3x				删除当前光标开始向后三个字符

D				删除当前字符至行尾。D=d$
dl				删除当前字符, dl=x
dh				删除前一个字符
dd				删除当前行
dj				删除上一行
dk				删除下一行
d$				删除光标所在处,到该行的最后一个字符
d0				删除光标所在处,到该行的最前一个字符
dG				删除光标所在到最后一行的所有数据
d1G				删除光标所在行到第一行的所有数据

d$					删除当前字符之后的所有字符(本行)
ndd					删除光标所在的向下n行
10d					删除当前行开始的10行。
kdgg				删除当前行之前所有行(不包括当前行)
:1,$d				删除所有行
:1,10d				删除1-10行
:11,$d				删除11行及以后所有的行
J(shift + j) 		删除两行之间的空行,实际上是合并两行。
jdG(jd shift + g)	删除当前行之后所有行(不包括当前行)
8. 复制和粘贴

p在当前光标后粘贴,如果之前使用了yy命令来复制一行,就在当前行的下一行粘贴。

p               将已复制的数据在光标下一行粘贴上
P               则为贴在光标的上一行

yy              复制当前行
y0              复制光标所在的那个字符到该行行首的所有数据
y$              复制光标所在的那个字符到该行行尾的所有数据
yG              复制光标所在行到最后一行的所有数据
y1G             复制光标所在行到第一行的所有数据
nyy 			拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。

u               恢复前一个操作
Ctrl+r          重做上一个操作
.               是重复前一个操作

shift+p 		在当前行前粘贴
:1,10 co 20 	将1-10行插入到第20行之后。
:1,$ co $ 		将整个文件复制一份并添加到文件尾部。

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制d

dp    交换当前行和其下一行
xp    交换当前字符和其后一个字符
9. 剪切命令
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切

ndd 		剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴
:1,10d 		将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。
:1,10m 20	将第1-10行移动到第20行之后。
10. 退出命令
:w          保存编辑的内容
:w!         强制写入该文件,但跟你对该文件的权限有关
:q          离开vi
:q! 		强制退出并忽略所有更改
:wq         保存后离开
:x          保存后离开
:e! 		放弃所有修改,并打开原来文件。
ZZ          若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开
11. 命令行命令
:w filename         将编辑的数据保存成另一个文件(类似另存)
:r filename         在编辑的数据中,读入另一个文件的数据。即将【filename】 这个文件的内容加到光标所在行后面。

:n1,n2 w filename   将n1到n2的内容保存成filename这个文件。
:! command          暂时离开vi 到命令行模式下执行command的显示结果!
"""
例如 【:! ls /home】即可在 vi 当中察看/home底下以ls输出的文件信息!
""" 

:set nu             显示行号
:set nonu           与 set nu 相反,为取消行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值