Linux vim操作

介绍

vim 是 Unix及类Unix系统文本编辑器。

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。
光标移动

h 或 向左箭头键(←)	光标向左移动一个字符
j 或 向下箭头键(↓)	光标向下移动一个字符
k 或 向上箭头键(↑)	光标向上移动一个字符
l 或 向右箭头键(→)	光标向右移动一个字符
[Ctrl] + [f]	屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]	屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]	屏幕『向下』移动半页
[Ctrl] + [u]	屏幕『向上』移动半页
0 或功能键[Home]	这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]	移动到这一行的最后面字符处(常用)
H	光标移动到这个屏幕的最上方那一行的第一个字符
M	光标移动到这个屏幕的中央那一行的第一个字符
L	光标移动到这个屏幕的最下方那一行的第一个字符
G	移动到这个档案的最后一行(常用)
nG	n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg	移动到这个档案的第一行,相当于 1G 啊! (常用)
n<Enter>	n 为数字。光标向下移动 n 行(常用)

搜索替换

/word	向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word	向光标之上寻找一个字符串名称为 word 的字符串
n	这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N	这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
... 还支持很多操作

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):

:q	退出程序
:q!	若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:w	将编辑的数据写入硬盘档案中(常用)
:w!	若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关
:wq	储存后离开,若为 :wq! 则为强制储存后离开 (常用)

按ESC键可随时退出底线命令模式。

问题

如何显示文件行号

# 例如用vi查看下面的文件
vi file.log

# 步骤
# 1. 进入命令模式
# 2. 输入:set number 或者 :set nu
# 3. 按回车键。之后文件的左侧每一行,就会显示出行号

# 如果想不显示行号
# 1. 进入命令模式
# 2. 输入:set nonumber 或者:set nonu

如何查看文件格式

# 在Linux系统中,如果确定一个文件的格式,到底是dos的还是unix格式?

# 步骤
# 1. 进入命令模式
# 2. 输入:set ff
# 3. 按回车键,就会显示该文件的格式

如何设置文件格式

# 在Linux系统中,如果设置一个文件的格式为unix格式

# 步骤
# 1. 进入命令模式
# 2. 输入:set ff=unix
# 3. 按回车键,就设置好了

删除单行内容

将光标移动到需要删除的行
按一下ESC键,确保退出编辑模式
按两次键盘上面的d键,就可以删除了。

删除多行

将光标移动到需要删除的行
按一下ESC键,确保退出编辑模式
在dd命令前面加上要删除的行数。例如,如果要删除第4行以下的3行,请按下 3 dd

删除给定范围的行

实例一

如果你想要删除指定范围的行,比如从第3行到第5行,按ESC,然后输入下面的命令,然后回车。
:3,5d

实例二

删除最后一行,按ESC,然后输入下面的命令,然后回车。
:$d

实例三
. 代表当前的意思。

删除当前行之前的所有行
:1,.-1d

实例四

删除当前行之后的所有行
:.+1,$d

通过条件匹配删除行

实例一

删除包含text关键字的行

:g/text/d

实例二

删除不包含#关键字的行

:%g!/#/d
#或者
:v/#/d

实例三

删除以#开的的注释内容。

:g/^#/d

实例四

删除所有空行

:g/^$/d

vim操作时导致出现swp文件的现象

我们使用vim命令编辑某文件,出现存在swp文件的提示,此时我们可以直接按E键进行正常进行编辑,但是下次还是可能出现。

解释一下,出现这种情况是此文件产生了交换文件,即后缀为.swp的文件。.swp文件即swap(交换分区),当使用vi或者vim编辑一个文件时,就是产生,编辑完成正常退出时,这个文件就会自动删除,.swp文件是隐藏文件,在目录下使用ls -al才能查看。

出现原因:
1:当我们编辑一个文件的时候,另外一个人也在编辑的时候,会出现;
2:当我们编辑文件时候,突然断电,或者突然断网,为了防止数据丢失,也会出现这种文件。

解决方案:
当产生此文件时,我们可以直接rm -f .abc.swp删除此swp文件,否则每次编辑就会出现提示,但是如果是在文件编辑之后,出现非正常退出,此时我们的配置并没有保存在abc文件中,我们需要使用 vi -r abc进行恢复,然后回车,配置就会从.swp中恢复到abc中,然后再删除.swp文件。

参考资料

Linux vi/vim
vim 百度百科

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值