Linux Vim编辑器快速入手

目录

一. 三种常用模式的切换

二.退出vim

2.1 命令行模式下退出 vim

2.2 普通模式下退出 vim

三. 删除文本

四. 重复执行上次命令

4.1 重复执行上次命令

4.1 执行指定次数相同的命令

五. 游标的快速跳转

5.1 行间跳转G

5.2 行内跳转

六. 复制粘贴和剪切

6.1 复制及粘贴文本

6.2 剪切及粘贴

七. 字符的替换及撤销(Undo 

八. 快速缩进

8.1 使用命令进行快速调整缩进操作

8.2 调整文本位置

九. 查找

9.1 快速查找

9.2 高级查找

十. 多文件编辑

十一. 可视模式命令简介

十二. 创建加密文档

十三. 功能设定


一. 三种常用模式的切换

vim 命令启动进入普通模式

普通模式 --> 按 i(插入)或 a(附加)-->插入模式

插入模式或命令行模式  -->  Esc 或者 Ctrl+[ -->普通模式

普通模式 -->  按 :   -->命令行模式 -->  输入 wq 回车后保存并退出 vim

(输入 :w <filename> 可以将文档另存为其他文件名或存到其它路径下。)

注意每次要先回到普通模式才能切换成以不同的方式进入插入模式。

二.退出vim

2.1 命令行模式下退出 vim

从普通模式输入 : 进入命令行模式,输入 wq 回车,保存并退出编辑。

以下为其它几种退出方式:

命令说明
:q!强制退出,不保存
:q退出
:wq!强制保存并退出
:w <文件路径>另存为
:saveas 文件路径另存为
:x保存并退出
:wq保存并退出

2.2 普通模式下退出 vim

普通模式下按下 Shift+zz 即可保存退出 vim。

三. 删除文本

普通模式下删除 vim 文本信息

进入普通模式,使用下列命令可以进行文本快速删除:

命令说明
x删除游标所在的字符
X删除游标所在前一个字符
Delete同 x
dd删除整行
dw删除一个单词(不适用中文)
d$D删除至行尾
d^删除至行首
dG删除到文档结尾处
d1G删至文档首部

除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:

2dd 表示一次删除 2 行。

四. 重复执行上次命令

4.1 重复执行上次命令

在普通模式下 .(小数点)表示重复上一次的命令操作。

e.g:普通模式下输入 x,删除第一个字符,输入 .(小数点)会再次删除一个字符,除此之外也可以重复 dd 的删除操作。

4.1 执行指定次数相同的命令

进入普通模式输入 N<command>,N 表示重复后面的次数

在普通模式下,你还可以使用 dw 或者 daw(delete a word)删除一个单词,所以你可以很容易的联想到 dnw(n 替换为相应数字) 表示删除 n 个单词。

五. 游标的快速跳转

普通模式下,下列命令可以让光标快速调转到指定位置,我们分别讨论快速实现行间跳转和行内跳转。

5.1 行间跳转G

命令说明
nG(n Shift+g) / ngg游标移动到第 n 行 (如果默认没有显示行号,请先进入命令模式,输入 :set nu 以显示行号)
gg游标移动到到第一行
G(Shift+g)到最后一行

小技巧:你在完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置,这个技巧很实用,比如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 Ctrl+o 就可以回到你之前的位置。vim 中会用很多类似的小技巧就等着你去发掘。

5.2 行内跳转

普通模式下使用下列命令在行内按照单词为单位进行跳转:

命令说明
w到下一个单词的开头
e到当前单词的结尾
b到前一个单词的开头
ge到前一个单词的结尾
0^到行头
$到行尾
f<字母>向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
F<字母>向前搜索<字母>并跳转到第一个匹配的位置
t<字母>向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用)
T<字母>向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用)

六. 复制粘贴和剪切

6.1 复制及粘贴文本

  • 普通模式中使用 y 复制

  • 普通模式中,yy 复制游标所在的整行(3yy 表示复制 3 行)

  • 普通模式中,y^ 复制至行首,或 y0。不含光标所在处字符。

  • 普通模式中,y$ 复制至行尾。含光标所在处字符。

  • 普通模式中,yw 复制一个单词。

  • 普通模式中,y2w 复制两个单词。

  • 普通模式中,yG 复制至文本末。

  • 普通模式中,y1G 复制至文本开头。

  • 普通模式中使用 p 粘贴

  • 普通模式中,p(小写)代表粘贴至光标后(下)

  • 普通模式中,P(大写)代表粘贴至光标前(上)

打开文件进入普通模式练习上述命令,这会儿你就可以随意 yy 了。

6.2 剪切及粘贴

其实前面讲得 dd 删除命令就是剪切,你每次 dd 删除文档内容后,便可以使用 p 来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行。

ddp,就这么简单,即实现了快速交换光标所在行与它下面的行。

七. 字符的替换及撤销(Undo 

替换和 Undo 命令都是针对普通模式下的操作:

命令说明
r+<待替换字母>将游标所在字母替换为指定字母
R连续替换,直到按下 Esc
cc替换整行,即删除游标所在行,并进入插入模式
cw替换一个单词,即删除一个单词,并进入插入模式
C(大写)替换游标以后至行末
~反转游标所在字母大小写
{n}u撤销一次或 n 次操作
U(大写)撤销当前行的所有修改
Ctrl+rredo,即撤销 undo 的操作

八. 快速缩进

8.1 使用命令进行快速调整缩进操作

这一小节学习如何在 vim 中进行快速缩进,缩进操作均在普通模式下有效。

打开文件进行编辑:

vim protocols

  • 普通模式下输入 15G,跳转到 15 行
  • 普通模式下输入 >> 整行将向右缩进(使用,用于格式化代码超爽)
  • 普通模式下输入 << 整行向左回退
  • 普通模式下输入 : 进入命令行模式下对 shiftwidth 值进行设置可以控制缩进和回退的字符数

shiftwidth 命令

shiftwidth 命令是指上一节 >> 命令产生的缩进(可以简写成sw),普通模式下输入 : 进入命令行模式下对 shiftwidth 值进行设置可以控制缩进和回退的字符数。

获取目前的设定值:

:set shiftwidth?

设置缩进为 10 个字符:

:set shiftwidth=10

输入 ESC 回到普通模式,再次尝试 >> 看缩进量是否变化。

8.2 调整文本位置

命令行模式下输入 :ce(center)命令使本行内容居中:

:ce

命令行模式下输入 :ri(right)命令使本行文本靠右:

:ri

命令行模式下输入 le(left)命令使本行内容靠左:

:le

九. 查找

9.1 快速查找

普通模式下输入 / 然后键入需要查找的字符串,按回车后就会进行查找。

? 与/ 功能相同,只不过 ? 是向上而 / 是向下查找。

进入查找之后,输入 n 和 N 可以继续查找。n 是查找下一个内容,N 查找上一个内容。

快速查找练习:

使用 vim 打开文件进行编辑(搜索高亮需要在配置文件 .vimrc 中设置 set hls,实验环境中已经设置好了)。

vim protocols

  • 普通模式下输入 /icmp 然后回车即可查找字符串 icmp
  • 普通模式下输入 n 查找下一个 icmp
  • 普通模式下输入 ?tcp 向上查找字符串 tcp
  • 普通模式下输入 N 查找上一个出现的 tcp
  • 命令行模式下输入 noh 然后回车即可取消搜索

9.2 高级查找

  • 普通模式下输入 \* 寻找游标所在处的单词
  • 普通模式下输入 \# 同上,但 \# 是向前(上)找,\* 则是向后(下)找
  • 普通模式下输入 g\* 同 \*,但部分符合该单词即可
  • 普通模式下输入 g\# 同 \#,但部分符合该单词即可

以上查找 nN 的继续查找命令依然可以用。

十. 多文件编辑

使用 vim 编辑多个文件

编辑多个文件有两种形式,一种是在进入 vim 前使用的参数就是多个文件。另一种就是进入 vim 后再编辑其他的文件。 同时创建两个新文件并编辑

vim 1.txt 2.txt

默认进入1.txt文件的编辑界面

  • 命令行模式下输入 :n 编辑 2.txt 文件,可以加 ! 即 :n! 强制切换,之前一个文件的输入没有保存,仅仅切换到另一个文件
  • 命令行模式下输入 :N 编辑 1.txt 文件,可以加 ! 即 :N! 强制切换,之前文件内的输入没有保存,仅仅是切换到另一个文件

进入 vim 后打开新文件

  • 命令行模式下输入:e 3.txt 打开新文件 3.txt
  • 命令行模式下输入:e# 回到前一个文件
  • 命令行模式下输入:ls可以列出以前编辑过的文档
  • 命令行模式下输入:b 2.txt(或者编号)可以直接进入文件 2.txt 编辑
  • 命令行模式下输入:bd 2.txt(或者编号)可以删除以前编辑过的列表中的文件项目
  • 命令行模式下输入:e! 4.txt,新打开文件 4.txt,放弃正在编辑的文件
  • 命令行模式下输入:f 显示正在编辑的文件名
  • 命令行模式下输入:f new.txt,改变正在编辑的文件名字为 new.txt

恢复文件

由于在线环境无法复现此场景,请在本地尝试。

如果因为断电,终端意外关闭等原因造成文档没有保存,可以采用恢复方式。

vim 在编辑的时候会自动在当前文件目录下生成一个交换文件,一般以 <filename>.swp 的格式保存,如果有多个版本的交换文件,还可能是 .swn.swm 等字母。注意这个交换文件的更新不是实时的,因为实时的更新会占用磁盘,影响系统其他正常进程的速度。

当 vim 意外终止且没有保存已编辑的内容时,可以使用交换文件对文件进行恢复,注意需要在编辑这个文件的地方进行编辑,因为交换文件默认在编辑的目录生成。

例如假设 1.txt 意外关闭,我们可以输入 vim 然后输入 :recover 1.txt

vim
:recover 1.txt

# 出现如下提示按下回车即可恢复,如果有多个版本需要输入对应的交换文件前的数字选择要恢复的版本。
Using swap file ".1.txt.swp"
Original file "~/test/1.txt"
Recovery completed. You should check if everything is OK.
(You might want to write out this file under another name
and run diff with the original file to check for changes)
You may want to delete the .swp file now.

或者输入 vim -r 后直接选择用于恢复的文档的交换文件即可:

vim -r 1.txt

十一. 可视模式命令简介

  • 在普通模式下输入 v(小写),进入字符选择模式,就可以移动光标,光标走过的地方就会选取。再次按下 v 后就会取消选取。
  • 在普通模式下输入 Shift+v(小写),进入行选择模式,按下 V 之后就会把整行选取,您可以上下移动光标选更多的行,同样,再按一次 Shift+v 就可以取消选取。
  • 在普通模式下输入 Ctrl+v(小写),这是区域选择模式,可以进行矩形区域选择,再按一次 Ctrl+v 取消选取。
  • 在可视模式下输入 d 删除选取区域内容
  • 在可视模式下输入 y 复制选取区域内容

十二. 创建加密文档

vim -x file1

输入您的密码,确认密码,这样在下一次打开时,vim 就会要求你输入密码。

十三. 功能设定

vim 的功能设定

可以在编辑文件的时候进行功能设定,如命令行模式下输入 :set nu(显示行数),设定值退出 vim 后不会保存。要永久保存配置需要修改 vim 配置文件。

vim 的配置文件 ~/.vimrc(实验楼环境中配置文件在 /etc/vim/vimrc),可以打开文件进行修改,不过务必小心不要影响 vim 正常使用。

获取目前的设定

  • 命令行模式下输入 :set 或者 :se 显示所有修改过的配置
  • 命令行模式下输入 :set all 显示所有的设定值
  • 命令行模式下输入 :set <option>? 显示 option 的设定值
  • 命令行模式下输入 :set nooption 取消当前设定值

set 功能的说明

  • 命令行模式下输入 :set autoindent(ai) 设置自动缩进
  • 命令行模式下输入 :set autowrite(aw) 设置自动存档,默认未打开
  • 命令行模式下输入 :set background=dark 或 light,设置背景风格
  • 命令行模式下输入 :set backup(bk) 设置自动备份,默认未打开
  • 命令行模式下输入 : set cindent(cin) 设置 C 语言风格缩进

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值