admin 管理员组文章数量: 887018
文章目录
- 前言
- vim模式
- command与operator 命令与操作符
- 模式切换
- 其余模式转普通
- 普通转插入
- 普通转替换
- 单字符替换
- 普通替换
- 普通转可视
- 普通可视(字符)
- 行可视(行)
- 块可视(块)
- 普通转命令
- excommand
- movement/range 动作/范围
- 图解
- 字符
- 词
- 行
- 段与块
- 页
- 窗口与文件
- 查找
- motion
- 命令模式
- 命令模式与普通模式的区别
- 命令格式
- range
- excommand
- 行的删除,拷贝,打印
- 行的复制,移动,粘贴
- 批量操作(vs暂不支持)
- normal命令
- global命令
- args
- 普通模式操作符和动作
- 基本操作
- 直接普通模式 :操作次数+操作符+对象范围
- 普通转可视化模式 :v+对象范围+操作符
- 大小写切换
前言
本文仅为vim知识点的基本框架梳理,用于检查知识点是否掌握清楚,并无详细的操作讲解和样例.
直接看这个vim详细教学
vim模式
普通模式 normal
插入模式 insert
替换模式 replace
可视模式 visual
命令模式 :
command与operator 命令与操作符
模式切换
其余模式转普通
Esc
或键盘映射jj或capslock为Esc
//capslock方法
win
+r
输入shell:startup
新建 hello.ahk
文件
内容为
Capslock::Esc
普通转插入
i光标前插入
a光标后插入
I行首插入
A行末插入
o下一行插入,前加n则操作重复n次
O上一行插入,前加n则操作重复n次
普通转替换
单字符替换
r+你想将当前字符替换的字符
普通替换
R
普通转可视
普通可视(字符)
v
行可视(行)
V
块可视(块)
Ctrl
+v
块可以理解为矩阵
普通转命令
:
excommand
d(delete) 删除 dd删除整行 D删到行尾
x 删除单个字符
c(change) 修改(删除并进入插入模式) cc修改整行 C改到行尾
y(yank) 复制 yy复制整行
p(paste) 粘贴
r 替换单个字符
‘>’ 向右缩进
< 向左缩进
. 重复操作redo
u 撤销操作undo
J 与下一行合并
movement/range 动作/范围
图解
https://people.csail.mit.edu/vgod/vim/vim-cheat-sheet-en.png
字符
h左
j下
k上
l右
词
w跳到下一个单词开头
b跳到本单词或上一个单词开头
e跳到本单词或下一个单词结尾
ge 跳到上一个单词结尾
行
0跳到行首
^跳到从行首开始的第一个非空字符
$跳到行尾
gg跳到第一行
G跳到最后一行
段与块
{和} 跳转到段落首/段落尾
[{和}] 跳转到块首/块尾
详见图解
% 选中括号中的内容
页
B和F 跳转到上一页/下一页
窗口与文件
H 跳转到窗口头
zt 滚动到窗口头
M 跳转到窗口中部
zz 滚动到窗口中
L 跳转到窗口尾
zb 滚动到窗口尾
gg和G 跳到文件头/文件尾
mx和’x 标记为x/跳转到x
查找
*与# 向前/向后查找当前词
gd 即goto definition跳转到函数定义
/xxx 查找xxx
n/N 跳转到下一次/上一次查找结果
f{char}跳到下一个char所在位置 //find
F{char}反向移动到上一个char所在位置
t{char}跳到下一个char的前一个字符位置
T{char}反向移动到上一个char的后一个字符位置
;重复上次字符查找操作
,反向查找上次的命令
motion
可以简单理解为
i:inner
a:around
iw选中单词
aw选中单词包含前置空格
下列同理
i( / ib a( / ab
i{ / iB a{ / aB
i" / a"
i’ / a’
i < [ / a
< [
it / at t=tag,如html
与
之间的部分
is / as s=sentence
ip / ap p=paragraph
ie e可以理解为entire,整个文件
命令模式
命令模式与普通模式的区别
- 命令模式的编辑操作以行为单位,普通模式可以以字符或单词作为单位
- 命令模式的操作大部分不用移动光标
- 命令模式可以批量操作
命令格式
:[range] {excommand} [args]
- range:作用的范围,不给默认本行
- excommand: 特殊的命令,适用于command模式
- args: 后续的参数,视命令而定
range
由一个或两个address构成,即{address}或{address},{address}
address可以是:
- {lineno}:行号,如3代表第三行(0代表第一行上面的虚拟行)
$
:最后一行.
:光标所在行- /{pattern}/:下一个pattern所在行
$
:文件的所有行- ‘<,’>:可视模式选中的开头和结尾(可视模式下可按:直接设置)
address可做加减法,如.+3
表示光标往下第三行,$-3
表示倒数第4行
excommand
行的删除,拷贝,打印
:[range] delete [x]:把range
中的行删除,并拷贝到寄存器x
:[range] yank [x]:把range
中的行拷贝到寄存器x
:[range] print:把range
中的行打印出来
行的复制,移动,粘贴
:[range] copy {address}:把range
中的行复制到address
后面
:[range] move {address}:把range
中的行移动到address
后面
:{address} put [x]:把寄存器x中的内容粘贴到address
后面
0作为虚拟行的address,可以用来将内容插入第一行
批量操作(vs暂不支持)
normal命令
格式:[range] normal {commands}
含义:对range
中的所有行执行normal模式下的命令commands
点命令:[range] normal .:配合.命令使用
常用做法:先做一次操作,再用normal命令在指定的行上完成操作
宏命令:[range] normal @{register}
常用做法:先把想要的操作录制成宏,再用normal命令在指定的行上重放宏
宏的录制:q{register}+i+插入模式编辑操作+Esc
+q,把操作放在寄存器register(通常为a到z)中
global命令
格式:[range] global/{pattern}/[cmd]
含义:对range
中包含pattern
的所有行执行command模式下的ex命令
args
如 1,3 d [x] 中的[x]表示寄存器
普通模式操作符和动作
基本操作
直接普通模式 :操作次数+操作符+对象范围
如"hello world",想删除""内的内容,di"即可
如想向下删除两行,2dd即可
如vim is awesome,想删除从v到s,光标在v,然后dfs即可,fs即发现s
普通转可视化模式 :v+对象范围+操作符
如"hello world",想删除"内的内容,在h处按v然后llll一直到d,再d即可,也可以v+i"+d
大小写切换
~ 将光标下的字母改变大小写
数字+~ 将从光标开始的数字个字母改变大小写
g ~~ 改变当前行字母的大小写
gUU 将当前行字母改为大写
guu 将当前行字母改为小写
gU+对象范围,将范围的字母改为大写
gu+对象范围,将范围的字母改为小写
v+对象范围+U/u 将可视范围的字母改为大写/小写
版权声明:本文标题:【vim】vscode的vim插件的使用的简要框架(更新中) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1715706820h643424.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论