Gvim常用操作
Gvim常用操作
[TOC]
1 前言
这篇笔记是vim使用记录。以前实习时用了半年多,从生疏到熟悉也花了一些时间,主要还是用到什么不会的就去百度一下。相关操作用的多了就还是很熟悉的。此外,长期使用后体会到gvim编辑器coding的效率是极高的。回到学校后在自己的windows上也安装了gvim,也在开发中使用。现在长时间不操作现在有些遗忘。
现在工作,决定整理出一个gvim常用操作的文档,可以在自己遗忘快速查阅,也可以共享于他人学习。
此篇笔记不涉及gvim及其插件的安装,默认已安装。
2 认识vim
vi/vim是Linux平台下常用的文本编辑器。
不同于Windows平台下的文本编辑器。如下图所示,vim分为三个工作模式:
1 命令模式
这是进入vim默认的模式。在该模式下可以直接输入命令对文本进行笔记。
如:按下键盘yy,则复制了光标所在行。再按下键盘p,则将寄存器里的文本粘贴到光标的下一行。
2 输入模型
输入模式下,就是通过键盘进行文本编辑。
进入输入模式有三种方法:键入i、a、o。区别在于,键入i进入输入模式时,光标在选中字符前。键入a进入输入模式时,光标在选中字符后。键入o进入输入模式时,光标在选中字符所在行的下一行(新建行)。
按Esc健退出输入模型,进入命令模式。
3 底线命令模式
底线命令模式下也是输入命令,主要是多字符命令。
在命令模式下输入“:”就会进入底线命令模式,然后键入命令回车即可执行命令,自动回到命令模式。
如,在命令模式下输入:w
,表示保存文本内容。此外:!cmd
可以执行终端命令,不过速度比terminal慢。
3 常用操作
vi/vim键盘图如下,从上可以看到很多常用操作。
3.1 基本命令
- 文件命令
命令 | 命令释义 | 备注 |
---|---|---|
gvim fimename | 通gvim新建filename文件并打开 | 在terminal中执行 |
:open ./flda/filename | 在gvim打开时打开/新建文件(常用) | 在底部命令模式 |
- 进入编辑模式
命令 | 命令释义 | 备注 |
---|---|---|
i | 进入编辑模式,光标在选中字符前 | insert |
a | 进入编辑模式,光标在选中字符后 | 个人理解为append |
o | 进入编辑模式,光标在选中字符所在行下一行(新建行) |
- 文件保存
命令 | 命令释义 | 备注 |
---|---|---|
w | 保存文件内容 | write |
q | 进入编辑模式,光标在选中字符后 | quit |
! | 强制执行 | |
:w filename | 相当于另存为 |
在命令模式下,输入“:”进入底线命令模式下使用,三个可以按需组合。
:w
保存文件,随后进入命令模式;
:q
关闭当前文件,未更改内容生效,若文件内容发生变动则不会退出并给出提示;
:wq
保存更改并退出文件;
:q!
不考虑是否保存,强制退出,为保存内容将丢失。
- 文本编辑命令
命令 | 命令释义 | 备注 |
---|---|---|
yy | 复制光标所在行内容至寄存器中(剪切板) | |
nyy | 从光标所在行开始复制,复制n行 | n这个操作用在很多地方 |
shift+y (Y) | 等同于yy命令 | |
y0 | 复制从行首字符到光标所在前一个字符,(不包括) | 不包括换行,粘贴时在光标字符后插入 |
y$ | 复制从光标所在字符到行尾字符,(包括) | 同上 |
p | 将寄存器内容粘贴,在光标的下一行() | paste |
np | 相同内容粘贴n次 | |
dd | 删除光标所在行 | delete |
ndd | 从光标所在行开始删除,删除n行 | |
shift+d (D) | 删除光标(包括光标字符)至行位的所有字符 | |
x | 删除光标选中字符 | shift+x向前删除,不常用 |
nx | 删除从光标字符起的n个字符 | 多次(单d+方向键)也可以 |
r | 替换光标字符:输入r后光标会在当前字符会下方闪烁,再键入新的字符就完成替换。 | |
shift+r (R) | 批量替换字符:输入R后,再输入的字符将替换光标所在字符,光标移至后一个字符。 | 我不常用 |
u | 撤销上一步操作 | |
ctrl+r | 重复上一次操作(cmd) | coding常用 |
以上都是在命令模式下键入的。
关于复制还有一个常用的就是复制一行中的指定几个字符:
一般先键入v进入可视模式,再移动光标选中要复制的字符,选择完成后键入单p进行复制,此时复制的内容和之前不一样不,不是整行。粘贴时键入p,就可以将寄存器内容粘贴(插入)在光标所在字符后面。
- 移动光标
命令 | 命令释义 | 备注 |
---|---|---|
h | 光标移动:左 | |
j | 光标移动:下 | |
k | 光标移动:上 | |
l | 光标移动:右 | |
gg | 光标快速跳到文本的开头 | |
shift+g (G) | 光标快速跳到文本的末尾 | |
n+G | 光标移动至第n行 | |
:n | 光标移动至第n行 | |
w | 以单词为单位,向后跳转 | |
b | 以单词为单位,向前后跳转 |
方向移动我使用方向键和功能键更多,但是之前实习看工程师使用hjkl
更多。
此外光标移动结合几个功能键使用:
home
光标移至行首
end
光标移至行尾
ctrl+home
光标移至文件首,等同
ctrl+end
光标移至文件未
3.2 命令操作
- 注释多行代码
1 光标放在待注释的位置(首行的行首)
2 键入ctrl+v
进入可视块模式,
3 移动光标选择所需要注释的行
4 键入shift+i (I)
进入输入模式
5 输入注释符(可多字符)
6 键入Esc完成注释
取消注释:ctrl+v
选中多行注释符,键入d。
不一定是注释使用,相同模式都可以,如删除,段中分隔等。
注意:
v
:可视,用于连续选择
ctrl+v
:可视块,用于按列选择
- 查找内容
命令 | 命令释义 | 备注 |
---|---|---|
:/words | 向光标之下寻找一个名称为 words 的字符串。 | 这两个都会把所有匹配的结果高亮,我通常只用这个 |
:?words | 向光标之上寻找一个名称为 words 的字符串。 |
若已知需要查找的某个词,可以将光标放在该词上,或在可视模式下选中该词,然后键入shift+8 (*)
进入搜索。
查找后使用n和N在高亮的匹配词之间跳转:n下一个匹配词,N上一个匹配词。
- 替换内容
命令 | 命令释义 | 备注 |
---|---|---|
:n1,n2s/word1/word2/gc | 在n1和n2行之间进行搜索,搜索字符为word1,并替换为word2。 | 尾部的c是在替换时需要用户确认,可选,常加 |
:%s/word1/word2/gc | 在整个文件之间进行搜索,搜索字符为word1,并替换为word2。 |
上面的n1,n2还可以使用通配符替代(我自己的理解),0:首行,$:尾行。
- 执行代码
:!+<终端中执行的命令>
,以执行python脚本为例:
1 | !python auto_flow.py |
可以和终端一样,通过方向键切换历史执行命令。
3.3 窗口相关
多窗口使用场景很多,这块也需要熟练使用。
一些可能和插件相关,我不确定
- 切分窗口
直接切输入指令:sp和:vsp,命令执行后会切分窗口,新窗口会打开之前窗口打开的文件,在该窗口双击新文件即可。
:sp
横向/水平切分
:vsp
纵向/垂直切分(vertical split )
选中侧边树目录上的文件,这些看插件里的手册。
命令 | 命令释义 | 备注 |
---|---|---|
F3 | 打开侧边树目录(来自插件nerdtree) | |
r | 在侧边树目录执行,刷新侧边树目录,文件变动需要刷新(常用) | |
以下命令前提时选中侧边树目录上的文件 | ||
i | 横向/水平切割窗口 | |
s | 竖向/垂直切割窗口 | |
t | 在新窗口打开 |
- 窗口跳转
通过命令来切换窗口减少鼠标使用,能提升开发效率。
命令 | 命令释义 | 备注 |
---|---|---|
ctrl+w j | 活动文件跳转为下方的文件,下方的文件为当前活动文件 | |
ctrl+w k | 向上移动 | |
ctrl+w h | 向左移动 | |
ctrl+w l | 向右移动 |
ctrl+w
之后加普通方向键也是一样的,我目前还是用这种的。
还有一个简单点的就是ctrl+w
后在键入w,循环切换窗口,选到自己想要的就停止。
- 关闭/退出窗口
:close
关闭当前窗口
:quit
关闭当前窗口(不常用)
:only
保留当前窗口,关闭其他所有窗口
3.4 ctags
这个我用的也不多,但是之前公司工程师在用。占个坑,后面来填。
其他
按鼠标滑轮,可将选中文字快速键入
仅常用的,工作中想到再补充~
整理完成,再次感谢实习导师对我的悉心指导:happy: