这里列出bigash经常用到的vim操作,供日后回忆和学习用
这里特别推荐Github的一个项目Learn-Vim_zh_cn
模式
vim中的模式其实看每个人的理解,这里只是罗列了部分,在:h Normal中可查看,当然这不影响使用,只需要知道最基本的几个就好
1.正常模式(Normal mode)
直接打开vim时的默认模式,无论在那种模式下,Esc键就会进入正常模式,这个模式下可以移动光标,删除某行,复制多行,粘贴多行
2.命令行模式(Command line mode)
正常模式下输入 / 或者 : 进入命令行模式,在该模式下可以进行保存,退出,搜索,替换,显示行号等
3.插入模式(Insert mode)
正常模式下按下 i 键 ,进入插入模式,也就是我们编辑时需要进行的操作,退出按下Esc(Escape)
4.可视模式(Visual mode)
可视模式就是选中一块区域进行操作,包括删除,替换,复制,粘贴,改变大小等,正常模式下按v进入字符文本,按V进入行文本
5.选择模式(Select mode)
可以用光标或者鼠标高亮选择文本,任何输入都会替换高亮文本
6.多行命令执行模式 (Ex mode)
EX指的是Execute在正常模式下输入 gQ进入 :visual退出
Buffers Windows Tabs
Vim中,关于显示方面的抽象概念
- Buffers(缓冲区)
buffer就是内存中的一块空间,我们可以在这里写入或编辑文本,在Vim中打开一个一个文件就会对应创建一个新的buffer,如打开两个文件
vim a.md b.md #这时会显示a.md
:bnext #在命令行模式输入,切换到下一个buffer
- Windows(窗口)
一个window就是在buffer上的一个窗口,即你可以拥有多个窗口来显示buffer - Tabs (选项卡)
Tabs就是windows的集合
vim a.md
:tabnew b.md #在命令行中输入
即可得:
语法构成
Operation
shift+o #在光标所处行的上一行插入
o #在光标所处行的下一行插入
shift+i #在光标所处的行头插入
shift+a #在光标所处的行末插入
u #回退刚才的操作
b #back 回退到这个上个词的词首
c #修改当前行
w #前进到下一个词的词首
cw #更改这一个词
ciw #词中修改这个词 change in word
ci" #修改""中的内容,其他同理
y #复制 yank
fv #find v 找到下一个v字母处
/ #搜索
yaw #yank all word 复制整个单词
vim的操作有一个结构,就是 在每一个operation后面可以加入motion,这样可以就可以实现快捷操作,像上面的fv,cw等是这个逻辑
Motion
用来在vim中到处移动,当然Motion操作还有很多
h #左
j #下
k #上 (前面加入数字n直接移动n行)
l #右 (这里用方向键也可以完成)
} #移动到下一个段落
% #跳转到当前行的末尾
部分语法
这里记录的是bigash个人常用的部分指令
打开多个窗口
vim -o2 #打开2个水平分割的窗口
vim -O2 #打开2个垂直排列的窗口
查询指令
正常模式下 ,vim中不会的就可以直接在vim中输入指令查询,前提都是英文,看得懂的英文
:h : quit #查看:quit的帮助文档
外部指令
按下:! XX 即可执行外部指令,比如python c等
:!python3 % # %代表当前文件
挂起
按下Ctrl+Z后即可将Vim挂起,也可以用:stop或者:suspend 返回时需要在终端运行fg
终端Vim指令
可以和终端的命令绑定从而启动Vim 如
ls -al | vim -
若有其他常用的,再做补充