Linux打怪通关攻略(5)Vim命令指北针

一、Vim基本操作

三种模式切换

命令操作
其它模式==>普通模式按 Esc键
普通模式==>插入模式
普通模式==>命令模式按 : (shift 加 冒号)
普通模式==>可视模式按 v 可视模式,按 V 可视块模式

命令行模式下保存文档

进入命令行模式,输入 w 回车,保存文档。输入 :w <filename> 可以将文档另存为其他文件名或存到其它路径下。

命令行模式下退出 vim

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

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

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

普通模式下退出 vim

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

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

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

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

二、文档编辑

重复命令

命令操作
10x删除 10 个连续字符
3dd删除 3 行文本
d3w删除光标后面的3个单词

光标快速移动

行间跳转

命令操作
nG / ngg游标移动到第 n 行 (如果默认没有显示行号,请先进入命令模式,输入 :set nu 以显示行号)
gg游标移动到到第一行
G到最后一行
Ctrl+o快速回到上一次(跳转前)光标所在位置

行内跳转

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

复制粘贴和剪切

复制及粘贴文本

命令操作
y复制
yy复制游标所在的整行
3yy复制 3 行
y^ / y0复制至行首,不含光标所在处字符
y$复制至行尾,含光标所在处字符
yw复制一个单词
y2w复制两个单词
yG复制至文本末
y1G复制至文本开头
p(小写)粘贴至光标后(下)
P(大写)粘贴至光标前(上)

剪切及粘贴文本

命令操作
dd删除
p(小写)粘贴至光标后(下)
P(大写)粘贴至光标前(上)

三、Vim 查找替换

字符的替换及撤销

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

快速缩进

命令操作
>>整行将向右缩进
<<整行将向左缩进

进入命令行模式下对 shiftwidth 值进行设置可以控制缩进和回退的字符数。

获取目前的设定值:

set shiftwidth?

设置缩进为 10 个字符:

set shiftwidth=10

调整文本位置

命令行模式下:

命令操作
ce(center)使本行内容居中;
ri(right)使本行文本靠右;
le(left)使本行内容靠左。

查找

快速查找

命令操作
/ 需要查找的字符串向下查找
? 需要查找的字符串向上查找
n查找下一个内容
N查找上一个内容

高级查找

命令操作
\*向后寻找游标所在处的单词
\#向前寻找游标所在处的单词
g\*\*,但部分符合该单词即可
g\#\#,但部分符合该单词即可

以上查找 n,N 的继续查找命令依然可以用。

四、Vim 高级功能

多文件编辑

编辑多个文件有两种形式,一种是在进入 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
# 出现如下提示按下回车即可恢复,如果有多个版本需要输入对应的交换文件前的数字选择要恢复的版本。
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 可以在一个界面里打开多个窗口进行编辑,这些编辑窗口称为 vim 的视窗。

打开方法有很多种,例如可以使用在命令行模式下输入 :new 打开一个新的 vim 视窗,并进入视窗编辑一个新文件(普通模式下输入 Ctrl+w 也可以),除了 :new 命令,下述列举的多种方法也可以在命令模式或普通模式下打开新的视窗:

命令操作
命令行模式下输入 :sp 1.txt打开新的水平分屏视窗来编辑 1.txt
命令行模式下输入 :vsp 2.txt打开新的垂直分屏视窗来编辑 2.txt
普通模式下 Ctrl+w s将当前窗口分割成两个水平的窗口
普通模式下 Ctrl+w v将当前窗口分割成两个垂直的窗口
普通模式下 Ctrl+w q 即 :q结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!
普通模式下 Ctrl+w o打开一个视窗并且隐藏之前的所有视窗
普通模式下 Ctrl+w j移至下面视窗
普通模式下 Ctrl+w k移至上面视窗
普通模式下 Ctrl+w h移至左边视窗
普通模式下 Ctrl+w l移至右边视窗
普通模式下 Ctrl+w J将当前视窗移至下面
普通模式下 Ctrl+w K将当前视窗移至上面
普通模式下 Ctrl+w H将当前视窗移至左边
普通模式下 Ctrl+w L将当前视窗移至右边
普通模式下 Ctrl+w -减小视窗的高度
普通模式下 Ctrl+w +增加视窗的高度

文档加密

创建加密文档vim -x file1

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

在 vim 执行外部命令

在命令行模式中输入 ! 可以执行外部的 shell 命令。

命令操作
:!ls显示当前目录的内容
:!rm FILENAME删除名为 FILENAME 的文件
:w FILENAME将当前 VIM 中正在编辑的文件另存为 FILENAME 文件

功能设定

vim 的功能设定

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

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

获取目前的设定

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

set 功能的说明

  1. 命令行模式下输入 :set autoindent(ai) 设置自动缩进
  2. 命令行模式下输入 :set autowrite(aw) 设置自动存档,默认未打开
  3. 命令行模式下输入 :set background=dark 或 light,设置背景风格
  4. 命令行模式下输入 :set backup(bk) 设置自动备份,默认未打开
  5. 命令行模式下输入 : set cindent(cin) 设置 C 语言风格缩进
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海岸星的清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值