基础命令
<C-a>代表Ctrl + a,其他同理A在光标所在行末尾添加内容a在光标之后添加内容aw是指一个文本如一个词^快速移动到行首$快速移动到行尾db删除从光标其实位置到单词开头的内容<C-a>和<C-x>分别对数字执行加和减操作,如光标在字符5上面执行10<C-a>就会把它变成15, 如果5的前方或者当前位置处运行10<C-a>就会把它变成6在Vim中如果遇到0开头的数字比如007就会被认为是八进制的数字,如果想要修改这个可以在vimrc中添加
set nrformats=<C-o>进入插入-普通模式, 可以执行一遍普通模式后进入插入模式zz重绘屏幕,便且吧当前行显示在窗口正中<Esc>,<C-[>切换到普通模式在插入模式下
<C-h>为删除前一个字符(同退格键)在插入模式下
<C-w>为删除前一个单词在插入模式下
<C-u>为删除到行首c修改d删除y复制到寄存器g~反转大小写gu反转为小写gU反转为大写>增加缩进<减小缩进=自动缩进!使用外部程序过滤{motion}所跨越的行Vim的语法大部分当一个操作符连续调用两次时,它会作用于当前行
dap删除一个段落daB删除一个{}块:%s/content/copy/g 替换所有 5
第一章: Vim解决问题的方式
技巧1: 结识 . 命令
x命令会删除光标下的字符>G会增加缩进等级
技巧2: 不要自我重复
C删除从光标所在处往后的行并且进入插入模式 = c$.s删除光标后面的字符并且进入插入模式 =cl.S删除光标所在行并且在删除行进入插入模式.I跳转到行首然后进行插入.A跳转到行尾然后进行插入.
技巧3: 以退为进
技巧4: 执行, 重复, 回退
;重复查找上次f命令所查找的字符.@用来重复任意的Ex命令.%%%%%%%%%%%%目的 操作 重复 回退 做出一个修改 {edit}. u 在行内查找下一指定字符 f{char}/t{char}; , 在行内查找上一指定字符 F{char}/T{char}; , 在文档中查找下一处匹配项 /pattern<CR>n N 在文档中查找上一处匹配项 ?pattern<CR>n N 执行替换 :s/target/replacement& u 执行一系列修改%%%%%%% qx{change}q@x u
技巧5: 查找并手动替换
*查找当前光标下的单词.w当前光标位置到单词末尾.cw删除从光标位置到单词结尾的字符并且进入插入模式.
技巧6: 结识 . 范式
第一部分 模式
第二章: 普通模式
技巧7: 停顿时请移开画笔
技巧8: 把撤销单元切成块
技巧9: 构造可重复的修改
b跳转到单词的开头.db删除从光标起始位置到单词开头的内容.dw删除从光标起始位置到单词结尾的内容.aw文本对象(text object).daw删除所在光标位置的单词.
技巧10: 用次数做简单的算术运算
<C-a>对光标所在位置的数字进行加.<C-x>对光标所在位置的数字进行减.- 注意如果前面是以0开头的, 会被认为成八进制.
技巧11: 能够重复, 就别用次数
技巧12: 双剑合璧, 天下无敌
g在这里可以当中前缀字符,足以该表其后面的按键行为.g~反转大小写.gu转换为小写.gU转换为大写.y复制到寄存器.- Vim中一条额外规则, 当一个操作符命令被连续调用两次时, 它可以作用于当前行,
dd删除当前行,>>缩进当前行,而gU是一种特殊情况, 我们既可以用gUgU,也可gUU. >增加缩进.<减少缩进.=自动缩进.%%%%%%%%%%%%%!使用外部程序过滤{motion}所跨越的行.- 自定义操作符.
第三章: 插入模式
技巧13: 在插入模式中即可即时更正错误
以下是在插入模式下, 且不是Vim首创,在bash shell也可以使用它们.
<C-h>删除前一个字符.<C-w>删除前一个单词.%%%%%%%%%%%有问题不能复现<C-u>删除到行首.
技巧14: 返回普通模式
<Esc>,<C-[>从插入模式切换回普通模式<C-o>从插入模式切换到插入普通模式, 是普通模式的一个特例, 它能执行一个普通模式命令, 执行完后就返回到插入模式.
技巧15: 不离开插入模式, 粘贴寄存器中的文本
yt是复制到专用寄存器中.%%%%%%%%%%%<C-r>0把复制到的文本粘贴到光标所在位置. 它的一般格式是<C-r>{register},其中{register}是我们想要插入的寄存器的名字.%%%%%%%%
技巧16: 随时随地做运算
- ???????????
技巧17: 用字符编码插入非常用字符
<C-v>{code}用字符编码插入非常用字符,如<C-v>u00bf输入¿,u的意思是用十六进制.ga限速当前光标下的编码,分别以十进制和十六进制的形式限速.
技巧18: 用二合字母插入非常用字符
<C-k>{char1}{char2}用二合字母插入非常用字符,如<C-k>?I输入¿,详细用法:h digraphs-default,查看可以用的二合字母列表:digraphs或者是:h digraphs-table.
技巧19: 用替换模式替换已有文本
<Insert>按键,可以在插入和替换模式下进行切换, 同R.R命令进入的是替换模式, 这个模式下某些字符回变得复杂化, 如制表符,它在文件中以单个字符表示, 但是在屏幕中却会占用若干列的宽度, 此宽度由tabstop设置. 如果把光标移动倒制表符上,然后进入替换模式, 那么我们所输入的下一个字符将会替换制表符, 假设tabstop设为8(缺省值), 那么该操作就是把8个字符替换成了一个字符. 而Vim还有另一种虚拟替换模式,由gR触发, 它会把制表符当成一组空格进行处理. 假设把光标移动倒制表符上,然后进入虚拟替换模式, 在输入前7个字符时, 每个字符都会被插入到制表符之前, 最后, 当输入了第8个字符时, 该字符将会替换制表符.
第四章
技巧20: 深入理解可视模式
技巧21: 选择高亮选区
- 激活可视模式
| 命令 | 用途 |
|---|---|
| v | 激活面向字符的可视模式 |
| V | 激活面向行的可视模式 |
| 激活面向列块的可视模式 | |
| gv | 重选上次的高亮选区 |
- 在可视模式之间进行切换
| 按键操作 | 用途 |
|---|---|
| | <C-[> | 回到可视模式 |
| v | V | | 切换到普通模式, 分别对应面向字符可视模式, 面向行的可视模式, 面向列块的可视模式 |
| v | 切换到面向字符的可视模式 |
| V | 切换到面向行的可视模式 |
| 切换到面向列块的可视模式 | |
| o | 重选高亮选区的活动端 |
e向后到单词的末尾.
技巧22: 重复执行面向行的可视命令
技巧23: 只要可能, 最好用操作符命令
it是一种文本对象(text object).vit选择标签内的内容. 如<a href="#">one</a>,使用vit就会高亮one.
技巧24: 用面向列块的可视模式编辑表格数据
技巧25: 修改列文本
- 在插入时只影响顶行, 但是按下
Esc后将会正常插入所选的区域 ????自己的总结
技巧26: 在长短不一的高亮块后添加文本
第五章 命令行模式
技巧27: 结识命令行模式
读写文件
:edit.创建及销毁新标签页
:tabnew,:tabclose.分割窗口
:split:sp.1. `<C-w> k|j|h|l` 移动光标到上下左右. 2. `<C-w> K|J|H|L` 移动窗口到上下左右.操作参数列表
:prev/:next及缓冲区列表:bprev/:bnext.更多Ex命令
:h ex-cmd-index.操作缓冲区文本的Ex命令
命令 用途 :[range]delete [x]删除指定范围内的行(到寄存器x中) :[range]y[ank] [x]复制指定范围内的行(到寄存器x中) :[range]put [x]在指定行后粘贴寄存器x中的内容 :[range]co[py] {address}把指定范围内的行拷贝到 {address}所指定的行之下:[range]m[ove] {address}把指定范围内的行拷贝到 {address}所指定的行之下:[range]j[oin]把指定范围的行连接到一起变成一行: :[range]norm[al] {commands}对指定范围内的每一行执行普通模式命令 {commands}:[range]s[ubstitute]/{pattern}/{string}/[flags]对指定范围内出现 {pattern}的地方替换成{string}:[range]g[lobal]/{pattern}/[cmd]对指定范围内匹配{pattern}的所有行,在其上执行Ex命令 {cmd}
#### 技巧28:
