Linux 编辑器:vi & vim
https://www.vim.org/download.php (opens new window)
对于运维来说,很少能碰见没有装 Vim 或 Vi 编辑器的Linux 系统;为了方便截图且不影响服务器,以下在 Windows 系统下载 gVim 编辑器进行操作。
# 下载安装
下载安装就不细说,启动 Vim 后,vim 在 Normal 模式下,按i
进入 Insert(下称输入)模式 ,左下角会有个“--插入--”或“--insert--”字样,然后就可以输入字符了。
按ESC
键返回 Normal(下称常规)模式,掌握如下简单命令就可以初步编辑文本了:
x
->删除当前光标的字符dd
->删除光标所在行并存到剪贴板p
->粘贴剪贴板:wq
->存盘并退出(:w
存盘、:q
退出)
PS.常规模式下,所有的键都是功能键;而以:
开头的的命令需要按回车Enter
键才能生效。
# 常规模式
如果不确定是否回到常规模式吗,多按几次 ESC
键即可。
# 插入命令
a
->在光标后插入o
->在当前行后插入一个新行O
->在当前行前插入一个新行cw
->替换从光标所在位置后到一个单词结尾的字符
# 粘贴拷贝
yy
->拷贝当前行p/P
->粘贴(p 粘贴到当前位置之后,P 粘贴到当前位置之前)
# 移动光标
0
->数字零,到当前行行首^
->到当前行第一个不是 blank 字符(空格、tab、换行、回车等)的位置$
->到当前行行尾g_
->到当前行最后一个不是 blank 字符的位置/p
->搜索“p”的字符串,按n下一个:n
、nG
->到第 n 行gg
->到第一行G
->到最后一行w
->到下一个单词的开头e
->到下一个单词的结尾%
->匹配括号移动,包括 (、{、[(需要把光标先移到括号上)*
、#
->匹配光标当前所在的单词,移动光标到下一个(或上一个)
PS.很多命令可以和移动命令联动,所以可以组合出很多类似于半自动的命令出来。
# Undo/Redo
u
->undoCtrl+r
->redo
# 操作文件
:e <path>
->打开文件
:w
->存盘
:saveas <path>
->另存为 :wq
、ZZ
->保存并退出
:x
表示仅在需要时保存
:q!
->退出不保存
:qa!
->强行退出所有的正在编辑的文件
:bn
、:bp
->同时打开多个文件,切换下一个或上一个文件,:n
也可以切换到下一个文件
J
->把所有的行连接起来变成一行
# 重复命令
.
->(小数点) 可以重复上一次的命令N<command>
->重复某个命令 N 次
# 进阶操作
# 块操作
块操作,典型的操作: 0``Ctrl+v``Ctrl+d``i-- ESC
^
->到行头
Ctrl+v
->开始块操作
Ctrl+d
->向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
i-- [ESC]
->i
是插入,插入“--”,按 ESC 键来为每一行生效。
在 Windows 下的 gVim,需要使用Ctrl+p
而不是Ctrl+v
(热键冲突)
# 自动提示
在 Insert 模式下,你可以输入一个词的开头,然后按Ctrl+n``Ctrl+p
# 宏录制
q1
操作序列q
、@1
、@@
q1
->把你的操作记录在寄存器 a@1
->会 replay 被录制的宏@@
->用来 replay 最新录制的宏
q1YpCtrl+aq->
q1->开始录制
Yp->复制行.
Ctrl+a->增加 1.
q->停止录制.
@1->在 1 下面写下 2
@@->在 2 正面写下 3
100@@->创建新的 100 行,并把数据增加到 104
2
3
4
5
6
7
8
# 可视化选择
v
、V
、Ctrl+v
可视列、行、块
# 分屏:split
和vsplit
:split
->创建分屏
:vsplit
->创建垂直分屏
Ctrl+w_dir_
->_dir_是方向,可以是hjkl
或←↓↑→
,切换分屏
Ctrl+w>_
->最大化尺寸 (Ctrl+w | 垂直分屏)
Ctrl+w>+、-
->增加尺寸