vim实用技巧学习 part one
入门使用命令
dw
删除光标下的单词
/
/the 高亮显示查找的匹配项 the
vit
<a href=" ">text</a> //当光标在a上面的时候 实用vit命令光标跳转到text上面去 高亮text并且光标在t上面
v进入可视模式
it文本对象选中<a>标签内的文本
使用vim的出场配置
想知道vim是否是出厂配置,在启动vim的时候这样运行$vim -u NONE -N
-u NONE 让vim启动时不加载你的vimrc,你的定制就不会生效,插件也会被禁用。当vim不加载vimrc的时候,会进入 vi兼容模式,-N标识则会使能‘nocompatible’选项,防止进入vi兼容模式。
vim解决问题的方式
.命令的使用
.命令可以让我们重复上一次的修改(查看更多:h .)上一次的修改包括多个命令的操作
使用x命令会删除光标下的字符,在这种情况下使用.命令可以重复删除光标下的字符
使用u可以撤销上一次的修改(当时.命令不能重复u的撤销命令)
dd命令事删除整一行
>G 增加当前行到文档结尾处的缩进层级
j光标移至下一行
.命令是一个微型的宏(macro)
不要自我重复
对于在结尾添加;分号这个常见的操作:
$光标移至结尾
a进入插入模式 类似i,Esc退回普通模式
A命令在当前行的结尾添加内容,不管光标在哪里,输入A就会进入插入模式,并将光标移至行尾,等于$a
其他复合命令:
| 复合命令 | 等效的长命令 |
|---|---|
| C | c |
| s | cl |
| S | ^c |
| I | ^i |
| A | $a |
| o | A |
| O | ko |
该复合命令都是从普通模式切换到插入模式
以退为进
在一个字符的前后各添加空格:
f字符s空格字符空格<Esc>;.#即可将当前行另一个字符的前后各加空格解释:
f字符将光标到最近查找字符的地方;重复上一步的f F t T命令,反向重复上一步的f F t T命令
执行、重复、回退
当你重复操作的时候,按键过快,导致错误的时候,如何回退
可重复的操作及如何回退
| 目的 | 操作 | 重复 | 回退 |
|---|---|---|---|
| 做一个修改 | {edit} | . | |
| 在行内查找下一个指定字符 | f{char}/t{char} | ; | , |
| 在行内查找上一指定字符 | F{char}/T{char} | ; | , |
| 在文档中查找下一处匹配项 | /Pattern | n | N |
| 在文档中查找上一处匹配项 | ?Pattern | n | N |
| 执行替换 | :s/targert/replacement | & | u |
| 执行一系列修改 | qx{changes}q | @x | u |
查找并手动替换
将文中所有的一个content替换为copy
:%s /content/copy/g
或者另一种方法:
:/content#光标移到content上*#*命令查找所有的content,该命令有两个作用
- 光标移到下一个content上
- 所有出现的content高亮显示 如果没有高亮运行:
set hls
cwcopy<Esc>#cw 删除当前光标下的单词,自动进入插入模式n#跳转到下一个匹配项.#重复修改
结识.范式
理想模式:一键移动(移动到下一个匹配项),另一键执行
vim模式
把撤销单元切成块
u命令进行撤销最新的修改,从进入插入模式开始,知道返回普通模式为止,在此间的输入或删除的任何内容都被当成一次修改,合理使用<Esc>,可以使撤销用于单词或者句子
所有每次有停顿的时候,就要退出插入模式,当我要继续写的时候,按A命令即可在原来的地方继续写作
当处于插入模式,光标位于行尾,另起一行的方式是回车,但是可以使用<Esc>o
在插入模式中移动光标会重置修改状态
如果在插入模式使用了<up>、 <down> 、<left>、<Right>就会产生新的撤销块
这个类似切换为普通模式然后使用h、j、k或l(左上下右)命令对光标进行移动,唯一区别是我们并没有退出插入模式。这个也对.命令有影响
构造可重复的修改
the end is nig**h** 我的光标在h上面,我要删除nigh这个单词,以下有三种方法
反向删除
db#删除从光标起始为到单词开头的内容,但是会原封不动留下最后一个字符‘h’- x #删除h字符
正向删除
b#将光标移到单词的开头dw#删除整个单词
删除整个单词
- daw #直接删除一个单词,aw文本对象,而不是动作命令(delete a word)
比较
dbx、bdw、daw
反向删除方案包含两步操作:db 命令删除至单词的开头,而后x 命令删除一个字符。如果我们跟着执行一次. 命令,它会重复删除一个字符( . = = x )。
正向删除方案也包含两步。这一次,b 只是一次普通的移动,而dw 完成修改。此时用. 命令会重复dw,删除从光标位置下个单词开头的内容。不过因为我们刚好已经在行尾了,并没有“下一个单词”,所以在这个场景里. 命令没什么用。不过,至少它代表了一个更长点的操作(. = = dw)。
daw操作不仅仅删除了该单词,它还会删除一个空格,因此光标最终会停在单词“is”的最后一个字符上。如果此时我们使用. 命令,它会重复上次删除单词的命令。这一次, . 命令会做真正有用的事情(. = = daw)。
用次数做简单的算术运算
很多普通模式命令都可以带一个次数前缀,这样Vim 就会尝试把该命令执行指定的次数,而不是只执行一次(见:h count)。
<C-a> 和<C-x> 命令分别对数字执行加和减操作。在不带次数执行时,它们会逐个加减,但如果带一个次数前缀,那么就可以用它们加减任意整数。例如,如果我们把光标移到字符5 上,执行10<C-a>就会把它变成15。
当光标不在数字上,使用ctrl+a将会在当前行正向查找数字,并跳转到那里去
.blog, .news { background-image: url(/sprite.png); }
.blog { background-position: 0px 0px }
我们要复制最后一行并且对其做两个小改动,即用“news”替换单词“blog”,以及把“0px”改为“-180px”。我们可以运行yyp 来复制此行,然后用cw 来修改第一个单词。光标在第二行的第一个字符
yyp#复制当前一行- cW.news
<Esc>#cW删除第一个单词直到空格结束,并且进入插入模式,输入.news 180<ctrl+x>#自动调到第一个数字,并对其减180007使用
<ctrl +a >其结果是010,因为vim 把0开头的数字为八进制的数字
vim实用技巧notes
吐槽以下csdn的markdown的theme简直是难看
本文介绍了Vim编辑器的基础命令和高效使用技巧,包括文本导航、修改、撤销及重复操作的方法,帮助读者提高文本编辑效率。

被折叠的 条评论
为什么被折叠?



