:set sm
cw 替换一个单词
小注:“f“命令移动到光标右边的指定字符上,例如,”fx“,会把移动到光标右边的第一个’x'字符上。”F“命令则反方向查找,也就是移动到光标左边的指定字符上。
“t“命令和”f“命令的区别在于,它移动到光标右边的指定字符之前。例如,”tx“会移动到光标右边第一个’x'字符的前面。”T“命令是”t“命令的反向版本,它移动到光标右边的指定字符之后。
这四个命令只在当前行中移动光标,光标不会跨越回车换行符。
可以在命令前面使用数字,表示倍数。例如,”3fx“表示移动到光标右边的第3个’x'字符上。
“;“命令重复前一次输入的f, t, F, T命令,而”,“命令会反方向重复前一次输入的f, t, F, T命令。这两个命令前也可以使用数字来表示倍数。,则是;的反向
批量替换列块
原始状态:
将光标指到第一行V处,然后ctrl-v选择,如下
选择完成后,接着按c键,输入你要替换后的文字,最后ESC,看看成果如下,
块选择后的〉〉
移动光标到匹配的() %
ma 标记a 通过`a 跳回
"a 代表寄存器 ‘’ayy "ap
y d(motion) fF t T
yw是拷贝一个单词包括空格 ye则不包括空格 它们都是从光标处开始 yaw可以整个单词
. 重复上次操作
'. 此命令相当好使, 它移动光标到上一次的修改行.
`. 此命令相当强大, 它移动光标到上一次的修改点.
[[ 转到上一个位于第一列的“{”
]] 转到下一个位于第一列的“}”
{ 转到上一个空行
} 转到下一个空行
{}为段落跳转
()为句子跳转
yw 表示拷贝从当前光标到光标所在单词结尾的内容.
dw 表示删除从当前光标到光标所在单词结尾的内容.
daw 表示删除光标所在的单词,不管光标在此单词那一位置
yaB (由 yank operator 和 text-object aB 组成)这个命令会将当前光标所在的代码块({} 括起来的内容,包括花括号本身)复制到默认 register
cw/cW 删除当前单词从光标开始的部分并进入插入模式
cb/cB 删除当前单词从光标所在位置至单词开始的部分并进入插入模式
dw/dW 删除当前单词从光标开始的部分但不进入插入模式
db/dB 删除当前单词从光标所在位置至单词开始的部分但不进入插入模式y也一样
d) 删除当前句子从光标位置开始到句末的内容
d( 删除当前句子从光标位置开始到句首的内容
段落
d} 删除当前段落从光标位置开始到段末的内容
d{ 删除当前段落从光标位置开始到段首的内容
= 屏幕定位 ==
c-e 将屏幕上滚一行
c-y 将屏幕下滚一行
c-u 将屏幕上滚半页
c-d 将屏幕下滚半页
c-b 将屏幕上滚一页
c-f 将屏幕下滚一页
aw 选中一个单词以及其后的空格.
iw 仅仅是选中一个单词.
aW 选中一个WORD以及其后的空格.
iW 仅仅是选中一个WORD
as 选中一个句子以及其后的空格.
is 仅仅选中一个句子.
ap 选中一个段落以及后面的空格.
ip 仅仅是选中一个段落.
a( 在括号所包括的文本内,选择直到括号的文本并包括括号.
i( 与上面的命令相类似,只是不包括括号.
a内的文本,包括
i内的文本,不包括
a[ 选择[]内的文本,包括[]
i[ 选择[]内的文本,不包括[]
a{ 选择{}内的文本,包括{}
i{ 选择{}内的文本,不包括{}
aw命令而不使用w命令的原因就是不论光标置于一个单词的哪一个字符上,aw命令都可以选中整个单词,而w命令只是选中当前光标处和这个单词结尾之间的字符.aw表示下一个单词的前一个字符
句子,即行后面是. ) vas
段落 即空行。} vap
w 字 空格或标点符号分开
W 空格分开
替换
%整个文件
. 本行
`a 标记处开始或解释
数字
$最后一行
s 替换
g当前整行所有匹配
c替换前提示
把一个文件中的所有four 改为five
/four cwfive n . n .
操作字符+(移动命令w fx visual v文本对象aw iw )
V+文本对象 +操作符
如果是y y字符前面可以加寄存器
删除d也可以指定寄存器
x删除当前光标下的字符("dl"的快捷命令)
X删除当前光标之前的字符("dh"的快捷命令)
D删除自当前光标至行尾的内容("d$"的快捷命令)
dw删除自当前光标至下一个word的开头
db删除自当前光标至前一个word的开始
diw删除当前光标所在的word(不包括空白字符)
daw删除当前光标所在的word(包括空白字符)
dG删除当前行至文件尾的内容
dgg删除当前行至文件头的内容
c y 以此类推
m小写字符 局部标记
m大写字符是 全局标记 这个在多文档同时编辑中比较有效
Vim使用手册 看到172
vim中的两个重要寄存器:
无名寄存器 "" 保存最近一次复制或删除的文本。就是p命令默认使用的寄存器
选择与拖放的寄存器"* "+ "~ 在Windows中这几个寄存器就是剪贴板。在Linux中它们也是剪贴板——但这几个寄存器是有所区别的。
* //v 选择寄存器
+ //系统剪切板寄存器
通常情况下,寄存器 + ( " + Shift+= )对应X下的剪贴板。您在其它程序中复制的内容,可以使用 "+p 粘贴到Vim中;
您在Vim中,可以使用 "+y 将内容复制到剪贴板,再粘贴到其它程序中
“”//p 默认使用的寄存器
*与+的区别:
复制的区别:
* vim:选中就可以了
+ vim:需要"+y 其他应用程序中则右键复制
黏贴的区别:
* "*p
+ 直接进入系统剪贴板 在其它地方右键黏贴
:help gui-selections
:help x11-selection
vim中的选择寄存器是 多个shell中的vim通用
vim中shift + insert 就是用这个寄存器"*p
vim中的剪切板寄存器是所有应用程序通用的
vim中”+p 与其它应用程序中使用ctrl+v
vim中的一般寄存器是不通用的
比如vim中的a b c d e f g