vim编辑器操作笔记

vim编辑器功能非常强大,对应的快捷操作也很多,同样网上也有很多博客教程。这里是按自己的使用思路,对常用到的功能做一个简练的笔记,随着实践中不断用到的更多功能再补充完善。

一、vi/vim是什么?

vi - Visual Interface

即可视化界面编辑器。

vim - Vi IMproved, a programmers text editor

即为vi的增加版,具有语法着色功能,尤其适用于程序文本编辑。

vim的配置文件:

-- 全局vim配置文件
/etc/vimrc
-- 个人vim配置文件
~/.vimrc
-- 配置root用户vim文件时显示行号
echo "set nu" >> /root/.vimrc

二、vim的模式

 

如上图示,vim有3种模式。

命令模式切换为输入模式:

i:在当前光标所在字符的前面,转为输入模式
I:在当前光标所在行首,转换为输入模式
a:在当前光标所在字符的后面,转为输入模式
A:在当前光标所在行尾,转换为输入模式
o:在当前光标所在行的下方新建一行,并转为输入模式
O:在当前光标所在行的上方新建一行,并转为输入模式
s:删除光标所在字符
r:替换光标处字符

2.1 命令模式 command mode

初始进入vim时的模式,主要的编辑操作命令也都集中在此模式。后文中如不特别说明是末行命令模式,则默认为此命令模式下的操作方法。

-- 撤销
u
-- 恢复
ctrl+r


-- 删除当前光标字符(剪切同删除)
x
-- 复制基础命令,一般要在高亮模式或搭配光标移动命令使用,见下文
y
-- 复制当前行
yy
-- 相应的从当前行开始复制n行为nyy
nyy

-- 删除基础命令,一般要在高亮模式或搭配光标移动命令使用,见下文
d
-- 删除当前行
dd
-- 相应的从当前行开始删除n行为ndd
ndd


-- 粘贴(在光标后面),如果删除的或复制的为整行内容,则粘贴到光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面

-- 粘贴(在光标前面),如果删除的或复制的为整行内容,则粘贴到光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面

-- 重复上一次编辑操作,如输入dd删除行之后,再输入.就可以重复dd删除行的操作
.

高亮模式(可视化模式),用于选择文本。

-- 字符模式
v
-- 行模式
V 
-- 块模式
ctrl+v

2.2 插入模式 insert mode

正常录入的模式。

2.3 末行命令模式 last line mode

主要用于以下操作。

-- 保存
w
-- 退出 q
-- 保存并退出 wq 或 x
-- 强制保存,管理员才有权限 w!
-- 强制退出 q!

查找:

-- 从当前位置向后查找
/PATTERN
-- 从当前位置向前查找
?PATTERN
-- 向下查找
n
-- 向上查找
N

替换:

-- 替换,n1为起始行,n2为结束行,g表示全局,i表示忽略大小写
n1,n2s/Pattern/String/gi
-- 替换全文的一为1,1,$或1,%表示全文
1,$s/一/1/gi
-- 替换10-20行的一为1
10,20s/一/1/gi

选择多行的操作:

-- 复制n1到n2行
n1,n2y
-- 复制第10行
10y
-- 复制第10-20行
10,20y -- 删除n1到n2行 n1,n2d
-- 删除第10行
10d
-- 删除第10-20行
10,20d

还有许多其它的便利性功能。

-- 显示行号
set nu
-- 取消显示行号
set nonu
-- 忽略大小写
set ic (set ignorecase)
-- 大小写敏感
set noignorecase
-- 开启自动缩进
set ai (set autoindent)
-- 取消自动缩进
set noai
-- 高亮显示匹配文本
set hlsearch
-- 取消高亮显示匹配文本
set nohlsearch
-- 打开语法高亮显示
syntax on
-- 关闭语法高亮显示
syntax off -- 执行bash命令,列举/etc目录,按Enter回到vim编辑状态 ! ls /etc/

三、vim的光标移动

行内跳转:

-- 行首
Home 或 0
-- 行首第一个非空白字符
^
-- 行尾
End 或 $

行间跳转:

-- 跳转到第n行
nG
-- 跳转到第一行
1G -- 跳转到最后一行 G
-- 向下移动n行,如1$表示当前行尾,2$表示下一行的行尾
n$
-- 末行模式下跳转到第n行
输入行号n后回车即可

逐字符移动:

-- 左、下、上、右
h、j、k、l
-- 移动n个字符
nh、nj、nk、nl

以单词为单位移动:

-- 下一个词首
w
-- 下一个词尾
e
-- 上一个词首
b
-- 移动n个单词
nw、ne、nb

翻屏:

-- 向上翻一屏
Ctrl+b
-- 向下翻一屏
Ctrl+f
-- 向上翻半屏
Ctrl+u
-- 向下翻半屏
Ctrl+d

配合光标跳转命令的复制(剪切、删除同理):

-- 复制到行首
y0 或 y^ 或 y Home
-- 复制到行尾
y$ 或y End
-- 复制一个word
yw 相应的复制n个word为ynw,如y3w
-- 复制到文件尾
yG
-- 复制到文件首
y1G

四、Vim的分屏及多文件操作

同时打开多个文件:

-- 打开file1,file2,file3
vim file1 file2 file3
-- 末行命令模式下切换文件
next 
prev 
last 
first
-- 全部退出
qa

分屏编辑一个文件:

-- 水平拆分窗口
ctrl+w s
-- 垂直拆分窗口
ctrl+w v
-- 窗口间切换光标
ctrl+w Arrow或hjkl
-- 末行命令模式下退出所有窗口
:qa

分屏编辑多个文件:

-- 水平分割显示
vim -o file1 file2
-- 垂直分割显示
vim -O file1 file2

将当前文件中部分内容保存为另外一个文件:

-- 末行模式下,将当前文件另存为到路径指定的文件
w /path/file
-- 末行模式下,将n1到n2行文本另存到路径指定的文件
n1,n2w /path/file

将另一个文件的内容填充在当前文件中:

-- 末行命令模式下,将file内容附件到当前文件光标位置
:r /path/file

五、vim的剪贴板

vim 有 12 个粘贴板,分别是
0、1、2、...、9、a、"
其中"为临时粘贴板,比较特殊,直接按 y 就复制到这个粘贴板中了,直接按 p 就粘贴这个粘贴板中的内容。
另外,+为系统粘贴板,“+y复制,”+p粘贴或shift+insert粘贴 ,即与系统其它ctrl+c,ctrl+v也相通。
 
剪贴板操作:
-- 查看各个粘贴板里的内容
:reg 
-- 双引号+粘贴板号+y,复制到某个粘贴板,例如"ay 复制到粘贴板a
"ny
-- 双引号+粘贴板号+p,从某个粘贴板粘贴,例如"ap 从粘贴板a粘贴
"np

 

 

 

posted @ 2020-10-10 17:43  览岳  阅读(279)  评论(0编辑  收藏  举报