运维分享|Linux指令入门vim命令

2023-11-27 19:31:53 浏览数 (2)

简介: Vim 非常稳定,开发迭代版本贴别快。其特点有以下几个:持久的多级撤消树、广泛的插件系统、支持数百种编程语言和文件格式、强大的搜索和替换、与许多工具集成

1 Vim简介

1.1 什么是Vim?

Vim 是一个高度可配置的文本编辑器,旨在让创建和更改任何类型的文本变得非常高效。

1.2 Vim的优点

Vim 非常稳定,开发迭代版本贴别快。其特点有以下几个:

  • 持久的多级撤消树
  • 广泛的插件系统
  • 支持数百种编程语言和文件格式
  • 强大的搜索和替换
  • 与许多工具集成

1.3 Vim下载与使用

Vim的官方网址:https://www.vim.org/

Vim的下载地址:https://www.vim.org/download.php

Vim的版本:目前Vim的最新版本是Vim 9.0 ,也是最新的稳定版本。

Vim的平台支持的平台

1.4 Vim在Mac中的使用

当前我的机器已经安装了Vim,我们可以使用--help来查看下帮助文档。从文档中可以看到,我当前机器的版本是VIM - Vi IMproved 8.2。

代码语言:javascript复制
Aion.Liu $  vim --help
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Apr 19 2022 21:41:43)

Usage: vim [arguments] [file ..]       edit specified file(s)
   or: vim [arguments] -               read text from stdin
   or: vim [arguments] -t tag          edit file where tag is defined
   or: vim [arguments] -q [errorfile]  edit file with first error

Arguments:
   --     Only file names after this
   -v     Vi mode (like "vi")
   -e     Ex mode (like "ex")
   -E     Improved Ex mode
   -s     Silent (batch) mode (only for "ex")
   -d     Diff mode (like "vimdiff")
   -y     Easy mode (like "evim", modeless)
   -R     Readonly mode (like "view")
   -Z     Restricted mode (like "rvim")
   -m     Modifications (writing files) not allowed
   -M     Modifications in text not allowed
   -b     Binary mode
   -l     Lisp mode
   -C     Compatible with Vi: 'compatible'
   -N     Not fully Vi compatible: 'nocompatible'
   -V[N][fname]   Be verbose [level N] [log messages to fname]
   -D     Debugging mode
   -n     No swap file, use memory only
   -r     List swap files and exit
   -r (with file name)  Recover crashed session
   -L     Same as -r
   -T <terminal>  Set terminal type to <terminal>
   --not-a-term   Skip warning for input/output not being a terminal
   --ttyfail    Exit if input or output is not a terminal
   -u <vimrc>   Use <vimrc> instead of any .vimrc
   --noplugin   Don't load plugin scripts
   -p[N]    Open N tab pages (default: one for each file)
   -o[N]    Open N windows (default: one for each file)
   -O[N]    Like -o but split vertically
          Start at end of file
    <lnum>    Start at line <lnum>
   --cmd <command>  Execute <command> before loading any vimrc file
   -c <command>   Execute <command> after loading the first file
   -S <session>   Source file <session> after loading the first file
   -s <scriptin>  Read Normal mode commands from file <scriptin>
   -w <scriptout> Append all typed commands to file <scriptout>
   -W <scriptout> Write all typed commands to file <scriptout>
   -x     Edit encrypted files
   --startuptime <file> Write startup timing messages to <file>
   -i <viminfo>   Use <viminfo> instead of .viminfo
   --clean    'nocompatible', Vim defaults, no plugins, no viminfo
   -h  or  --help Print Help (this message) and exit
   --version    Print version information and exit

1.5 Vim在Linux中的使用

当我进入Liunx虚拟机,当前我的机器也安装了Vim,我们可以使用--help来查看下帮助文档。从文档中可以看到,我当前机器的版本是VIM - Vi IMproved 7.4。使用参数以及帮助文档同Mac中相差不多。

代码语言:javascript复制
 vim --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug  9 2019 03:17:15)

usage: vim [arguments] [file ..]       edit specified file(s)
   or: vim [arguments] -               read text from stdin
   or: vim [arguments] -t tag          edit file where tag is defined
   or: vim [arguments] -q [errorfile]  edit file with first error

Arguments:
   --                   Only file names after this
   -v                   Vi mode (like "vi")
   -e                   Ex mode (like "ex")
   -E                   Improved Ex mode
   -s                   Silent (batch) mode (only for "ex")
   -d                   Diff mode (like "vimdiff")
   -y                   Easy mode (like "evim", modeless)
   -R                   Readonly mode (like "view")
   -Z                   Restricted mode (like "rvim")
   -m                   Modifications (writing files) not allowed
   -M                   Modifications in text not allowed
   -b                   Binary mode
   -l                   Lisp mode
   -C                   Compatible with Vi: 'compatible'
   -N                   Not fully Vi compatible: 'nocompatible'
   -V[N][fname]         Be verbose [level N] [log messages to fname]
   -D                   Debugging mode
   -n                   No swap file, use memory only
   -r                   List swap files and exit
   -r (with file name)  Recover crashed session
   -L                   Same as -r
   -A                   start in Arabic mode
   -H                   Start in Hebrew mode
   -F                   Start in Farsi mode
   -T <terminal>        Set terminal type to <terminal>
   -u <vimrc>           Use <vimrc> instead of any .vimrc
   --noplugin           Don't load plugin scripts
   -p[N]                Open N tab pages (default: one for each file)
   -o[N]                Open N windows (default: one for each file)
   -O[N]                Like -o but split vertically
                        Start at end of file
    <lnum>              Start at line <lnum>
   --cmd <command>      Execute <command> before loading any vimrc file
   -c <command>         Execute <command> after loading the first file
   -S <session>         Source file <session> after loading the first file
   -s <scriptin>        Read Normal mode commands from file <scriptin>
   -w <scriptout>       Append all typed commands to file <scriptout>
   -W <scriptout>       Write all typed commands to file <scriptout>
   -x                   Edit encrypted files
   --startuptime <file> Write startup timing messages to <file>
   -i <viminfo>         Use <viminfo> instead of .viminfo
   -h  or  --help       Print Help (this message) and exit
   --version            Print version information and exit

2 Vim详细介绍

2.1 Vim三种模式

vim有三种操作模式,分别是

  • 命令模式(Command mode)
  • 输入模式(Insert mode)
  • 底线命令模式(Last line mode)

三种模式切换快捷键:

模式

快捷键

命令模式

ESC

输入模式

i或a

底线命令模式

:

2.2 命令模式(CM)

在命令模式中控制光标移动和输入命令,可对文本进行复制、粘贴、删除和查找等工作。

命令模式中常用的快捷操作:

操作

快捷键

光标左移

h

光标右移

l(小写L)

光标上移

k

光标下移

j

光标移动到下一个单词

w

光标移动到上一个单词

b

移动游标到第n行

nG

移动游标到第一行

gg

移动游标到最后一行

G

快速回到上一次光标所在位置

Ctrl o

删除当前字符

x

删除前一个字符

X

删除整行

dd

删除一个单词

dw或daw

删除至行尾

d$或D

删除至行首

d^

删除到文档末尾

dG

删除至文档首部

d1G

删除n行

ndd

删除n个连续字符

nx

将光标所在位置字母变成大写或小写

~

复制游标所在的整行

yy(3yy表示复制3行)

粘贴至光标后(下)

p

粘贴至光标前(上)

P

剪切

dd

交换上下行

ddp

替换整行,即删除游标所在行并进入插入模式

cc

撤销一次或n次操作

u{n}

撤销当前行的所有修改

U

恢复撤销操作

Ctrl r

整行将向右缩进

>>

整行将向左退回

<<

若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开

ZZ

「实验步骤」

1、首先我们创建一个文本文件:春望.txt

2、使用vim 春望.txt回车后就进入了命令行模式。

3、可以看到里面是一个空空的文本

4、当我们在此模式下,输入o则是换行 输入。

5、确认已经输入的内容

2.3 输入模式(IM)

在命令模式下按i或a键就进入了输入模式,在输入模式下,您可以正常的使用键盘按键对文本进行插入和删除等操作。

注意⚠️:

1、通常情况下,我们使用i命令进入输入比较多,这里的i代表insert或者input的首字母。

2、我们通常所说的命令或者字符都是是英文输入状态下。

「实验步骤」

1、按下i进入输入模式,输入《春望》的诗名(这里我就直接拷贝这里了,为了方便拷贝,我放在代码块)。

代码语言:javascript复制
《春望》
国破山河在,城春草木深。
感时花溅泪,恨别鸟惊心。
烽火连三月,家书抵万金。
白头搔更短,浑欲不胜簪。

2.4 底线命令模式(LLM)

在命令模式下按:键就进入了底线命令模式,在底线命令模式中可以输入单个或多个字符的命令。

操作

命令

保存

:w

退出

:q

保存并退出

:wq(:wq!表示强制保存退出)

将文件另存为其他文件名

:w new_filename

显示行号

:set nu

取消行号

:set nonu

使本行内容居中

:ce

使本行文本靠右

:ri

使本行内容靠左

:le

向光标之下寻找一个名称为word的字符串

:/word

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

:?word

重复前一个搜寻的动作

:n

从第一行到最后一行寻找word1字符串,并将该字符串取代为word2

:1,$s/word1/word2/g或 :%s/word1/word2/g

「实验步骤」

1、按下ECS键回到命令模式,并输入底线命令:ce,使诗名居中。这里执行都是一行行执行。

2、当我们输入完成内容后,按下Esc键,然后输入:wq来保存已经输入的内容

总结

针对在Mac和Linux,Vim命令是我们经常使用的一个软件工具,所以希望能够记住这个命令,学以致用。当然有些时候,如果机器没有Vim,而是有另外一个工具Vi(这个比较常用,相对于Vim来说,个人认为Vim是Vi的一个增强版)

笔记属于个人的喜好,但是形成了自我的风格就是博文了。希望在记录自己博文道路越走越远。


我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞