建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

Linux下的vim命令你确定全部了解?(Linux 中 vim 是什么意思?)

GG网络技术分享 2025-03-18 16:14 0


Linux下的vim命令你确定全部了解?

这一节主要是全面介绍vim(vi的高阶版本),另外现在几乎所有的linux分之版本vi命令都做了vim的软连接,如果验证的话可以再终端执行 ls -l `which vi`

vim软连接vi

所以本节所介绍的vi即vim,两者没有很大区分。

文本编辑器那么多,为什么要学习vi文本编辑器呢?因为:

  1. 几乎所有的Unix like系统都会内置vi文本编辑器,相对其他文本编辑器而言,偏底层,适用行非常强
  2. 很多别的文本编辑软件的底层是调用vi的
  3. vim具有部分语法检查功能,程序编辑能力
  4. 编辑速度很快

以上四点中最重要的大概就是第二点了,所以说学会了vi,可以很大程度上避免\"重复造轮子\".怎么才算学会了vi呢,vi有很多有趣的快捷键,有很多你不知道的东西,一起来看一看吧.

熟悉linux的人都知道vi有三种模式,

命令模式(也称一般指令模式)

此模式是执行vi指令后的默认进入的模式,在此模式下可以通过\"上下左右\"移动光标,可以\"删除字符\"或者\"删除整列\",可以\"复制\"和\"黏贴\"

编辑模式(插入模式,或者替换模式)

这个模式是最常用到模式,也是最重要的模式,当执行vi指令编辑文件的时候,按下i,I,o,O,r,R,a,A等任意一个字母都会进入编辑模式,编辑结束之后,按ESC退出,编辑模式

命令行模式

在命令模式下,输入\": / ?\"三者之中任意一个都会进入命令行模式,在此模式当中,可以实现 搜索,读取,存盘,显示行号,退出vi等等

用一张图来看一下三种模式的关系:

三种模式的关系

从图中可以看出,命令模式可以于命令行模式或者编辑模式(插入模式)相互转换,编辑模式于命令行模式无法相互转换.

vim按键说明

命令模式下主要使用的功能:

移动光标:

h 或 左方向键 (←) 光标向左移动一个字符

j 或 下方向键 (↓) 光标向下移动一个字符

k 或 上方向键 (↑) 光标向上移动一个字符

l 或 右方向键 (→) 光标向右移动一个字符

如果想要移动多行的话,可以在相应字母前加数字,eg:\"30j\" 或 \"30↓\" 是向下移动光标30行.

[Ctrl] + [f] 屏幕“向下”移动一页,相当于 [Page Down]按键 (常用)

[Ctrl] + [b]屏幕“向上”移动一页,相当于 [Page Up] 按键 (常用)

[Ctrl] + [d]屏幕“向下”移动半页

[Ctrl] + [u]屏幕“向上”移动半页

0 或功能键[Home]这是数字“ 0 ”:移动到这一列的最前面字符处 (常用)

$ 或功能键[End]移动到这一列的最后面字符处(常用)

nG n 为数字。移动到这个文件的第 n 列。例如 20G 则会移动到这个文件的第 20 列(可配合 :set nu)

gg 移动到这个文件的第一列,相当于 1G 啊! (常用)

n<Enter> n 为数字。光标向下移动 n 列(常用)

搜寻与取代:

/word向光标之下寻找一个名称为 word 的字串。eg:/star就是在当前文件中搜寻star字符串

?word向光标之上寻找一个字串名称为 word 的字串。

n 是搜索下一个的意思,

N 与 n 刚好相反,为“反向”进行前一个搜寻动作

使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键字!

:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1 这个字串,并将该字串取代为 word2 !举例来说,在 100 到 200 列之间搜寻 satr 并取代为 STAR 则:\":100,200s/star/STAR/g”。(常用)

删除复制与黏贴:

x, X 在一列字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是倒退键) (常用)

nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, “10x”。

dd 删除光标所在的那一整行(常用)

ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)

d1G 删除光标所在到第一行的所有数据

dG 删除光标所在到最后一行的所有数据(删除光标之后所有)

d$ 删除光标所在处,到该行的最后一个字符(删除光标那一行)

d0 那个是数字的 0 ,删除光标所在处,到该行的最前面一个字符

yy 复制光标所在的那一行(常用)

nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)

y1G 复制光标所在行到第一行的所有数据

yG 复制光标所在行到最后一行的所有数据

y0 复制光标所在的那个字符到该列行首的所有数据

y$ 复制光标所在的那个字符到该列行尾的所有数据

p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在光标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)

J 将光标所在行与下一行的数据结合成同一行

c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]

u 复原前一个动作。(常用)(类似于windows中的ctrl+z)

[Ctrl]+r重做上一个动作。(常用)(类似于windows中的ctrl+y)

编辑模式下使用的主要功能:

i, I 进入插入模式(Insert mode):i 为“从目前光标所在处插入”, I 为“在目前所在行的第一个非空白字符处开始插入”。 (常用)

a, A 进入插入模式(Insert mode):a 为“从目前光标所在的下一个字符处开始插入”, A 为“从光标所在行的最后一个字符处开始插入”。(常用)

o, O 进入插入模式(Insert mode):这是英文字母 o 的大小写。o 为“在目前光标所在的下一行处插入新的一行”; O 为在目前光标所在处的上一行插入新的一行!(常用)

r, R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)

命令模式下使用的主要功能:

:w 将编辑的数据写入硬盘文件中(常用)

:w! 若文件属性为“只读”时,强制写入该文件。不过,到底能不能写入, 还是跟你对该文件的文件权限有关啊!

:q 离开 vi (常用)

:q! 若曾修改过文件,又不想储存,使用 ! 为强制离开不储存盘案。注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有“强制”的意思~

:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)

ZZ 这是大写的 Z 喔!若文件没有更动,则不储存离开,若文件已经被更动过,则储存后离开!

: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 相反,为取消行号!

vim区块选择(Visual Block)

v 字符选择,会将光标经过的地方反白选择!

V 列选择,会将光标经过的列反白选择!

[Ctrl]+v区块选择,可以用长方形的方式选择数据

y 将反白的地方复制起来

d 将反白的地方删除掉

p 将刚刚复制的区块,在光标所在处贴上!

区块选择

按i进入编辑模式,找到一处空白地方,按ESC退出编辑模式,按p黏贴刚才复制的内容

批量复制

区块选择还有一个重要的功能,批量注释:

在第一列,先按ctrl+v,按向下方向键,选择需要注释的行数,按shift+i,然后shift+#,最后连按两次ESC就可以实现多行注释(小编非常喜欢这个快捷方式,常用到)

vim多文件编辑

vim可以同时编辑多个文件,格式:vim filename1 filename2 ...

:n 编辑下一个文件

:N 编辑上一个文件

:files 列出目前这个 vim 的打开的所有文件

示例:

root@ubuntu:/tmp# vi hosts1 hosts2

vim编辑多个文件

输入:n就进入到下一个文件中,输入:N就可以到上一个文件中

vim多窗口功能

在命令行模式下输入:sp是对同一个文件的多窗口操作,:sp filename引入其他文件多窗口操作(多用于对比操作,非常有用)

示例一,:sp

vim多窗口

示例二,:sp filename

vim多窗口不同文件

:sp [filename] 打开一个新窗口,如果有加 filename, 表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容(同步显示)。

[ctrl]+w+ j [ctrl]+w+↓按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下方向键),则光标可移动到下方的窗口。

[ctrl]+w+ k [ctrl]+w+↑同上,不过光标移动到上面的窗口。

[ctrl]+w+ q 其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+w+↓ 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+w+q 啊!

以上就是本节所有的vim的功能介绍了,是否对你有帮助呢,如果对您有帮助将万分荣幸,走过路过不要错过,点一波赞,关注一下,后面陆续有Linux知识文章更新,谢谢各位看客!

Linux 中 vim 是什么意思?

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

Linux 中 vim 是什么意思? (https://www.wpmee.com/) WordPress教程 第1张

vi/vim 的使用

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

命令模式:

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

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

以下是常用的几个命令:

i 切换到输入模式,以输入字符。

x 删除当前光标所在处的字符。

: 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符

ENTER,回车键,换行

BACK SPACE,退格键,删除光标前一个字符

DEL,删除键,删除光标后一个字符

方向键,在文本中移动光标

HOME/END,移动光标到行首/行尾

Page Up/Page Down,上/下翻页

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序

w 保存文件

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

推荐教程:《Linux运维》

以上就是Linux 中 vim 是什么意思?的详细内容,更多请关注php中文网其它相关文章!

标签:

提交需求或反馈

Demand feedback