==注: 下文以对test.txt文件的操作为例. ==
1. 打开文件
# 打开文件
vim [FILE_NAME]
vim test.txt
vim +[LINE_NUM] [FILE_NAME]
vim +10 test.txt
vim +/[HIGHLIGHT_WORD] [FILE_NAME]
vim +/log test.txt
2. 命令模式
打开文件默认进入命令模式.
光标移动
gg
: 跳转到文件首部
shift + g
或 G
: 跳转到文件尾部
ctrl + 6
: 跳转到行首, 相当于 home
键
ctrl + 4
: 跳转到行尾, 相当于 end
键
ctrl + b
: 向前翻页, 相当于 page up
键
ctrl + f
: 向后翻页, 相当于 page down
键
[NUM] G
: 移动光标到指定NUM行, 同末行模式下 :[NUM]
[NUM] 方向键
: 光标像指定方向移动NUM行/字符
复制/粘贴
yy
: 复制光标所在行
[NUM] yy
: 复制从光标所在行开始向下NUM行
p
: 在光标所在位置粘贴
复制后末行会提示 [NUM] lines yanked
可视化复制:
ctrl + v
进入可视化模式-- VISUAL BLOCK --
, 方向键移动光标选中复制区域,yy
键复制,p
键粘贴esc
键退出该模式
剪切/删除
dd
: 剪切 (剪切之后, 下一行上移)
[NUM] dd
: 剪切从光标所在行开始向下NUM行
不粘贴的话, 相当于删除操作
shift +d
或 D
: 剪切指定行, 改行空白, 下一行不上移动
撤销/恢复
u
: 撤销 (undo) 一步操作, 末行模式 :u
效果相同
ctrl + r
: 取消/恢复 撤销操作
3. 末行模式
命令模式输入 :
进入末行模式.
退出末行模式:
esc
按键- 双击
esc
按键, 立即退出 - 删除末行全部指令
末行模式下输入部分指令点击 tab
键可显示指令提示.
保存
:w
: 保存
:w [FILE_PATH]
: 另存为
退出
:wq
: 保存并退出
:q
: 退出
q!
: 不保存, 强制退出
:x
: 文件存在改动, 自动保存退出, 不存在改动时, 直接退出. 推荐使用!!!
- 优点: 当文件不存在改动时, 习惯性使用
:wq
退出文件会更改文件的最后修改时间, 使用:x
可避免这种认为失误.
调用外部命令 (不常用)
![BASH_COMMAND]
!ls
: 不退出, 并列出当前目录文件
搜索
/[KEY_WORD]
: 搜索关键词
n
下一个, N
上一个
替换
注意下列指令中没有空格!
:s/[KEY_WORD]/[NEW_WORD]
: string replace, 替换光标所在行第一处符合条件的内容
:s/[KEY_WORD]/[NEW_WORD]/g
: 替换光标所在行全部符合条件的内容
:%s/[KEY_WORD]/[NEW_WORD]
: 替换文件中每行第一处符合条件的内容
:%s/[KEY_WORD]/[NEW_WORD]/g
: 替换文件中全部符合条件的内容
显示行号
set nu
: 显示行号, 退出后消失
配置默认显示行号
打开配置文件
# 全局配置文件
sudo vim /etc/vim/vimrc
# 个人配置文件
sudo vim ~/.vimrc
添加 set nu
文件编码方式
set fileformat
或 set ff
: 显示文件编码方式
set fileformat=[FORMAT]
或 set ff=[FORMAT]
: 设置文件编码为指定方式
语法高亮
:syntax on
: 打开高亮, 默认状态
:syntax off
: 关闭高亮
打开多个文件
vim [FILE_NAME1] [FILE_NAME2] [... FILE_NAME_N]
显示打开的文件
:files
: 显示已经打开的新的文件
#
表示此前打开的文件
%a
表示当前打开的文件
+
表示当前文件存在改动
切换文件
:open [FILE_NAME]
: 切换到另一个文件, 或打开一个新文件, 切换/打开前需要保存当前文件
bp
: 切换到上一个文件
bn
: 切换到下一个文件
4. 编辑模式
i
: 在光标所在字符前开始插入
a
: 在光标所在字符后开始插入
o
: 在光标所在行下面另起一行插入
下面的不常用
I
: 在光标所在行行首插入
A
: 在光标所在行行尾插入
O
: 在光标所在行上面另起一行插入
s
: 删除光标所在字符开始插入
S
: 删除光标所在行插入