• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

vim linux文本编辑器 中文手册教学


Recommended Posts

0x00 简介

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

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

0x01 特点

  • 根据设定可以和原始vi完全兼容
  • 多缓冲编辑
  • 任意个数的分割窗口(横,竖)
  • 具备列表和字典功能的脚本语言
  • 可以在脚本中调用 Perl, Ruby, Python, Tcl, MzScheme
  • 单词缩写功能
  • 动态单词补完
  • 多次撤销和重做
  • 对应400种以上文本文件的语法高亮
  • C/C++, Perl, Java, Ruby, Python 等40种以上语言的自动缩排
  • 利用ctags的标签中跳转
  • 崩溃后文件恢复
  • 光标位置和打开的缓冲状态的保存 复原(session功能)
  • 可以对两个文件进行差分,同步功能的diff模式
  • 远程文件编辑
  • Omni补完(上下文相关的补完)

0x02 安装

VI和VIM在众多 Linux发行版本系统通常都已经 默认安装,Centos也不例外。

那么怎么判断是否系统安装了vim文本编辑器呢?

如果在命令行模式下输入“vim”,输出结果为“Command not found”,则表示此系统未安装vim。

在未安装vim的 Linux系统中,使用如下命令即可安装vim:

Copy[[email protected] ~]#yum install vim 

需要注意的,此命令运行时,有时需要手动确认[y/n],如果需要省略手动输入 “y” 过程,可以用以下参数:

Copy[[email protected] ~l#yum -y install vim 

当安装完成,我们输入以下命令即可启动vim文本编辑器

Copy[[email protected] ~]#vim
https://www.whbwiki.com/wp-content/uploads/2021/06/图片-1.png

 

0x03 使用

视频播放器
 
 
00:00
 
00:36
 
 

3种工作模式

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

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。
[c-alert type=”success”]若想要编辑文本:启动vim,进入了命令模式,按下i,切换到输入模式。[/c-alert]

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

输入模式

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

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

底线命令模式

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

  • q 退出程序
  • w 保存文件

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

简单的说,我们可以将这三个模式想成底下的图标来表示:

https://www.runoob.com/wp-content/uploads/2014/07/vim-vi-workmodel.png

使用实例

使用 vi/vim 进入一般模式

如果你想要使用 vim 来建立一个名为 runoob.txt 的文件时,你可以这样做:

Copy$ vim runoob.txt

直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!

https://www.runoob.com/wp-content/uploads/2014/07/078207F0-B204-4464-AAEF-982F45EDDAE9.jpg

按下 i 进入输入模式(也称为编辑模式),开始编辑文字

在一般模式之中,只要按下 i,o, a 等字符就可以进入输入模式了!

在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。

这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

https://www.runoob.com/wp-content/uploads/2014/07/1C928383-471E-4AF1-A61E-9E2CCBD5A913.jpg

按下 ESC 按钮回到一般模式

好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!

在一般模式中按下 :wq 储存后离开 vi

OK,我们要存档了,存盘并离开的指令很简单,输入 :wq 即可保存离开!

https://www.runoob.com/wp-content/uploads/2014/07/B2FB5146-327C-4019-AC96-DD7A8EE7460C.jpg

OK! 这样我们就成功创建了一个 runoob.txt 的文件。

0x04 常用命令

一般模式可用的复制粘贴、搜索替换等

Copy
 
搜索替换:
 
/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
 
 
 
删除、复制与贴上:
 
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
 
dd 删除游标所在的那一整行(常用)
 
ndd n为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
 
yy 复制游标所在的那一行(常用)
 
nyy n为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
 

一般模式切换到编辑模式的常用命令

Copy
 
进入输入或取代的编辑模式:
 
i, I 进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)
 
[Esc] 退出编辑模式,回到一般模式中(常用)
 

一般模式切换到指令行模式的常用命令

Copy
 
指令行的储存、离开等指令:
 
:w 将编辑的数据写入硬盘档案中(常用)
 
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
 
:q 离开 vi (常用)
 
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
 
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
 
 
 
vim 环境的变更:
 
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
 
:set nonu 与 set nu 相反,为取消行号!
 

0x05 更多

更多命令请访问菜鸟教程查询:https://www.runoob.com/linux/linux-vim.html

Link to comment
Share on other sites