删除命令
ndw或ndW :删除光标处开始及其后的 n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后 n-1行
x或X:删除一个字符, x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
do:删至行首
d$:删至行尾
ndd:删除当前行及其后 n-1行
x或X:删除一个字符, x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
u 撤消前一条命令的结果
. 重复最后一条修改正文的命令
搜索及替换命令
/pattern:从光标开始处向文件尾搜索 pattern
?pattern:从光标开始处向文件首搜索 pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有 p1均用p2 替代
:n1,n2s/p1/p2/g:将第 n1至n2 行中所有 p1均用p2 替代
:g/p1/s//p2/g:将文件中所有 p1均用p2 替换
/ 向后搜索
?pattern:从光标开始处向文件首搜索 pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有 p1均用p2 替代
:n1,n2s/p1/p2/g:将第 n1至n2 行中所有 p1均用p2 替代
:g/p1/s//p2/g:将文件中所有 p1均用p2 替换
/ 向后搜索
? 向前搜索
“ 跳转到前一个位置
`a 跳转到标记为a的位置
ma 将光标的当前位置标记为 a
`[ 跳转到最后一次修改的起始位置
`] 跳转到最后一次修改的结束位置
`” 跳转到上次编辑该文件时光标最后停留的位置
:s 替换
:substitute 替换
:%s/a/a/c 对所有行替换
:m,ns/a/a/c 对从m到 n行替换
rc 用 c 替换光标所指向的当前字符
nrc 用 c 替换光标所指向的前 n 个字符
5rc 用 c 替换光标所指向的前 5 个字符
x 删除光标所指向的当前字符
nx 删除光标所指向的前 n 个字符
3x 删除光标所指向的前 3 个字符
dw 删除光标右侧的字
ndw 删除光标右侧的 n 个字
3dw 删除光标右侧的 3 个字
db 删除光标左侧的字
ndb 删除光标左侧的 n 个字
5db 删除光标左侧的 5 个字
dd 删除光标所在行,并去除空隙
ndd 删除 n 行内容,并去除空隙
3dd 删除 3 行内容,并去除空隙
从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个
内存缓冲区中。用户可
将其粘贴到正文中的指定位置。完成这一操作的命令是:
p 小写字母 p ,将缓冲区的内容粘贴到光标的后面
P 大写字母 P ,将缓冲区的内容粘贴到光标的前面
yy 复制当前行到内存缓冲区
nyy 复制 n 行内容到内存缓冲区
5yy 复制 5 行内容到内存缓冲区
/str1 正向搜索字符串 str1
n 继续搜索,找出 str1 字符串下次出现的位置
?str2 反向搜索字符串 str2
给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜
索的字符串置于两个“
/”之间;如果希望反向搜索,则将字符串放在两个“ ?”之间。例如:
:/str/ 正向搜索,将光标移到下一个包含字符串 str 的行
:?str? 反向搜索,将光标移到上一个包含字符串 str 的行
:/str/w file 正向搜索,并将第一个包含字符串 str 的行写入 file
文件
:/str1/,/str2/w file 正向搜索,并将包含字符串 str1 的行至包含字符串 s
tr2 的行写
正文替换
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上
从上述替换命令可以看到: g 放在命令末尾,表示对搜索字符串的每次出现进行替换;
不加 g,表示只对搜索
字符串的首次出现进行替换; g 放在命令开头,表示对正文中所有包含搜索字符串的行
进行替换操作。
:s/p1/p2/g:将当前行中所有 p1均用p2 替代
:n1,n2s/p1/p2/g:将第 n1至n2 行中所有 p1均用p2 替代
:%s/old_word/new_word/g
这个指令是于在整个文件中替换特定字符串
这个指令是于在整个文件中替换特定字符串
字串搜寻与取代
s(substitute) 指令可搜寻某行列范围。
g(global)指令则可搜寻整个编辑缓冲区的资料。
s指令以第一个满足该条件的字串为其取代的对象,若该行有数个满足该条
件的字串,也仅能取代第一个,若想取代所有的字串则需加上 g参数。
7)查找替换
/<C-R><C-W> 把狭义单词 <cword> 写到 搜索命令 行
/<C-R><C-A> 把广义单词 <cWORD> 写到 搜索命令 行
:g/str/s/str1/str2/g
第一个 g表示对每一个包括s1的行都进行替换,
第二个 g表示对每一行的所有进行替换
包括 str的行所有的str1都用 str2替换
:%s/f $/for$/g 将每一行尾部的“f ”( f键和空格键)替换为 for
:%s/^/mv /g 在每一行的头部添加“ mv ”(mv 键和空格键)
:s/fred/<c-r>a/g 替换fred成 register a中的内容,呵呵
:g/<input|<form/p 显示含<input或 <form的行
# 替换一个visual 区域
# 选择一个区域,然后输入 :s/Emacs/Vim/ 等等,vim 会自动进入 :模式
:'<,’>s/Emacs/Vim/g 前面的'<,’>是 vim自动添加的
# 在多个文档中搜索
:bufdo /searchstr
:argdo /searchstr