12 Linux-vim编辑器

12 vim编辑器

12.1 vim编辑器简介

vim是一个全屏幕纯文本编辑器,是vi编辑器的增强版

12.2 vim基本使用

12.2.1 vim的工作模式

vim工作在三种模式之下:

image-20210603162514386

命令模式:是主要使用快捷键的模式。命令模式想要进入输入模式,可以使用以下的方式

命令作用
a 在光标所在字符后面插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新行
O 在光标上插入新行

输入模式:主要用于文本编辑,和记事本类似,输入数据就好。

末行模式(编辑模式):

命令作用
:w 保存不退出
:q 不保存退出
:wq 保存并退出
:! 强制
:q! 强制退出且不保存
:wq! 强制保存并退出

12.2.2 命令模式操作

移动光标

1)上下左右移动光标

上、下、左、右方向键移动光标
H、j、k、l 移动光标

2)把光标移动到文件头或尾

gg      移动到文件头
G 移动到文件尾(shift+g)

3)移动到行首或行尾

^       移动到行首
$ 移动到行尾

4)移动到指定行

:n      移动到第几行

删除或剪切

1)删除字母

x       删除单个字母
nx 删除 n 个字母

n 是数字,如果打算从光标位置删除连续的10 个字母,可以使用“10x”即可。删除字母并不符合使用习惯,一般习惯在编辑模式中,用“Backspace”键删除字母。

2)删除整行或剪切

dd          删除单行
ndd 删除多行
:n1,n2d 删除指定范围的行

删除整行或多行,这是比较常用的删除方法。这里的dd 快捷键既是删除,也是剪切。删除内容

放入了剪切板,如果不粘贴就是删除,如果粘贴就是剪切。粘贴方法如下:

p           粘贴到光标后
P(大) 粘贴到光标前

3)从光标所在行删除到文件尾

dG          从光标所在行删除到文件尾

“d”是删除行,“G”是文件尾,连起来就是从光标所在行删除到文件尾。如果把光标放在文件首,那么“dG”就变成了删除整篇文档了。

复制

yy          复制单行
nyy 复制多行

撤销

u           撤销
ctrl+r 反撤销

“u”键能一直撤销到文件打开时的状态,类似Windows 下“ctrl+z”键的作用。 “ctrl+r”能一直反撤销到最后一次操作状态,类似Windows 下“ctrl+y”键的作用。

替换

r       替换光标所在处的字符
R 从光标所在处开始替换字符,按 ESC 结束

“r”键替换单一字符,不用进入输入模式,实际使用时,比进入输入模式删除后再修改,要方便。

vim 配置文件

设置参数含义
:set nu :set nonu 显示与取消行号。
:syntax on :syntax off 是否依据语法显示相关的颜色帮助。在Vim 中修改相关的配置文件或 Shell 脚本文件时(如前面示例的脚本/etc/init.d/sshd),默认会显 示相应的颜色,用来帮助排错。如果觉得颜色产生了干扰,则可以取消 此设置
:set hlsearch :set nohlsearch 设置是否将查找的字符串高亮显示。默认是set hlsearch 高亮显示
:set ruler :set noruler 设置是否显示右下角的状态栏。默认是set ruler 显示
:set showmode :set noshowmode 设置是否在左下角显示如“—INSERT--”之类的状态栏。默认是set showmode 显示
:set list :set nolist 设置是否显示隐藏字符(Tab 键用“^I”表示,回车符用“$”表示)。 默认是nolist 显示。如果使用set list 显示隐藏字符,类似“cat –A 文件名”。

vim 支持更多的设置参数,可以通过“:set all”进行查看。

这些设置参数都只是临时生效,一旦关闭文件再打开,又需要重新输入。如果想要永久生效,需要手工建立vim 的配置文件“~/.vimrc”,把需要的参数写入配置文件就永久生效了。

补充:Windows 下回车符在Linux 中是用“^M$”符号显示,而不是“$”符。这样会导致Windows下编辑的程序脚本,无法在Linux 中执行。这时可以通过命令“dos2unix”,把Windows 格式转为Linux格式,当然反过来“unix2dos”命令就是把Linux 格式转为Windows 格式。这两个命令默认没有安装,需要手工安装才能使用。

查找

/查找内容   从光标所在行向下查找
?查找内容 从光标所在行向上搜索
n 下一个
N 上一个

替换

:1,10s/old/new/g        替换1 到10 行的所有old 为new
:%s/old/new/g 替换整个文件的old 为new

替换字符串,我举几个例子:在shell 中“#”开头是注释,那我是否可以注释文件的前10 行呢?手工一个一个注释很麻烦,那么批量替换吧:

:1,10s/^/#/g        注释1 到10 行
:1,10s/^#//g 取消注释

而在C 语言,PHP 语言等大多数语言中,是使用“//”开头作为注释的,我们当然可以用vim 来写这些程序语言脚本,那么批量加入“//”注释吧:

:1,10s/^/\/\//g         1 到10 行,行首加入//
:1,10s/^\/\///g 取消1 到10 行行首的//

12.3 vim 使用技巧

12.3.1 在vim 中导入其他文件内容或命令结果

导入其他文件内容

:r 文件名      把文件内容导入光标位置

可以把其他文件的内容导入到光标所在位置

在vim 中执行系统命令

:!命令        在vim 中执行系统命令

这里只是在vim 中执行系统命令,但并不把系统命令的结果写入到文件中。主要用于在文件编辑中,查看系统信息,如时间。

导入命令结果

:r !命令      在vim 中执行系统命令,并把命令结果导入光标所在行

在vim 中执行系统命令,并把命令结果导入光标所在行。

12.3.2 设定快捷键

:map 快捷键 快捷键执行的命令 自定义快捷键

vim 允许自定义快捷键,常用的自定义快捷键如下:

:map ^P I#<ESC> 按“ctrl+p”时,在行首加入注释
:map ^B ^x 按“ctrl+b”时,删除行首第一个字母(删除注释)

注意:^P 快捷键不能手工输入,需要执行ctrl+V+P 来定义,或ctrl+V ,然后ctrl+P。^B 快捷键也是一样

12.3.3 字符替换

:ab 源字符 替换为字符 字符替换

在vim 编辑中,有时候需要频繁输入某一个长字符串(比如邮箱),这时使用字符串替换,能增加输入效率,例如:

:ab mymail shenchao@163.com     当碰到“mymail”时,转变为邮箱

注意:“源字符”不应设置的太短,否则有可能影响输入。

12.3.4 多文件打开

在vim 中可以同时打开两个文件,只要执行如下命令:

[root@localhost ~]# vim -o abc bcd
[root@localhost ~]# vim -O abc bcd
#-o 小写o 会上下分屏打开两个文件
#-O 大写O 会左右分屏打开两个文件

这样可以同时打开两个文件,方便操作。如果是“-o”上下打开两个文件,可以通过先按“ctrl+w”,再按“上下箭头”的方式在两个文件之间切换。

如果是“-O”左右打开两个文件,可以通过先按“ctrl+w”,再按“左右箭头”的方式在两个文件之间切换。

posted @ 2021-06-04 10:53  孤独的小人物  阅读(110)  评论(0)    收藏  举报