去除所在段落,Ex 命令(ex commands)、查找形式(Search

  cmd-line形式又有1个品类:Ex 命令(ex commands)、查找情势(Search
patterns)、Filter 命令(Filter commands)。本文首要重点的是Ex
命令和Search patterns。Filter
命令一时用的风貌比较少,假设有更切合的场景再补充。

技巧4

@: 重复任意Ex命令

目的

支配cmd-line格局下常用操作的语法和概念

技巧9

daw 删除所在单词
dap 删除所在段落

Ex 命令简单介绍

  初时,先有ed,ed为ex之父,ex为vi之父,而vi为vim之父。可知Ex
命令的首要。

  在Ex
命令影响范围广且距离远。相比较normal格局的文件操作,它符合在该地(大概说能够经过火速键一回到达)实行操作。

  壹般操作都是限量({range})+动作。

  Vim 为差不离具备机能都提供了对应的Ex 命令。下边简要列举多少个

命令 用途
:[range]delete [x] 删除指定范围内的行[到寄存器x 中]
:[range]yank [x] 复制指定范围的行[到寄存器x 中]
:[line]put [x] 在指定行后粘贴寄存器x 中的内容
:[range]copy {address} 把指定范围内的行拷贝到{address} 所指定的行之下
:[range]move {address} 把指定范围内的行移动到{address} 所指定的行之下
:[range]join 连接指定范围内的行
:[range]normal {commands} 对指定范围内的每一行执行普通模式命令{commands}
:[range]global/{pattern}/[cmd] 对指定范围内匹配{pattern}的所有行,在其上执行Ex 命令{cmd}
:[range]substitute/{pattern}/{string}/[flags] 把指定范围内出现{pattern}的地方替换为{string}

  概念:

  • [range]指的是限制。下方会提到到
  • [x] 表示的寄存器签字。即[a-zA-Z]
  • {address}表示的是地方。
  • {pattern}对应的是上边的情势
  • [cmd]代表动作
  • {string} 字符串
  • [flags] 标记
  • {commands}表示normal情势下的一层层操作

  想打听越来越多,参见:h ex-cmd-index。

技巧10

n<C-a> 对数字进行加操作
n<C-x> 对数字实行减操作

运动光标

  在cmd-line情势下怎么样更快速的运动光标。一般是为着纠正输入的荒唐。

  语法如下:

命令 用途
Ctrl+B 移动到命令的行首
Ctrl+E 移动到命令的末尾
Ctrl+<Left> 向左移动一个单词
Ctrl+<Right> 向右移动一个单词
<Left> 向左移动一个字符
<Right> 向右移动一个字符

技巧11

可见再次就别用次数

dw. 好于 2dw 好于 d2w

删除

  移动的时候,壹般只利用Ctrl+B,Ctrl+E。借使那时候输错了,以前在insert格局也说过了,最棒的措施是剔除重输。所以那里介绍一下去除的飞速键

命令 用途
Ctrl+U 删除到行首
Ctrl+W 删除一个单词

 

技巧12

g~ 反转大小写
gU 转变为题写
gu 转变为题写

急速键映射

  若是照旧更习惯移动光标,那能够把非主键区的开关映射成主键区的结缘

  伟德国际1946 1

  这么些设置,大家能够依据自个儿的习惯来设置。作者1般只设置单词移动,然后壹旦输错了直白删除重输。

技巧13

插入情势下
<C-h> 删除前三个字符
<C-w> 删除前二个单词
<C-u> 删除至行首

历史记录

  查看命令的历史。

  伟德国际1946 2

  查看历史记录的语法如下

命令 用途
Ctrl+P 上一条命令
Ctrl+N 下一条命令

技巧14

安顿形式下
<C-o> 进入插入普通情势
<C-o>zz 插入形式下将日前行居于显示器中心

指令窗口

  命令行窗口就如五个例行的 Vim
缓冲区,只可是它的每行内容都对应着命令历史中的二个条条框框。我们得以用k 及j
键在历史中前进或向后运动(像另3个独立的操作窗口,能够选取正规的具备形式命令),也得以用
Vim 的追寻功用查找某壹行。在按下<C卡宴>
键时,将会把当前行的剧情当成Ex 命加以实行

  开启命令窗口语法

命令 用途
q/ 在normal模式打开查找命令历史的命令行窗口
q: 在normal模式打开 Ex 命令历史的命令行窗口
<Ctrl-f> 从cmd-line模式切换到命令行窗口

  例如

# 假设我们正在写一个简单的Ruby 脚本,然后发现每做出一个修改时,都会执行
# 下面两条命令:
# :write
# :!ruby %
# 在接连执行了几次这两条命令后,我们意识到可以简化工作过程,把这两条命令
# 合为一条。这样,以后就可以从历史中选择该完整命令并再次执行:
# :write | !ruby %
# 这些命令都已经在历史中了,所以我们不必从头输入整条命令。但要怎样才能把历史
# 中的两条记录合并成一条呢?

# 执行下面的步骤即可
q:
k
J(Shift+j)
<CR>

技巧15

插入格局下
<C-r>{register} 将任意寄存器的故事情节插入到命令行

机关补全

  补全的语法

命令 用途
tab 如同在shell 中一样,在命令行上也可以用<Tab> 键自动补全命令。
Shift+tab 要想反向遍历补全列表
Ctrl+D 命令会让Vim 显示可用的补全列表。这个在挺好用的。
Ctrl+A 补全所有匹配列表
ctrl+L 只有一个匹配的时候。暂时觉得用处不大
<C-r><C-w> 把当前单词插入到命令行
<C-r>{register} 可以把寄存器的内容插入到命令行

  例如

  伟德国际1946 3

技巧16

插入方式下
<C-r>= 能够访问表达式寄存器

重新推行

  在normal形式再次上次的 Ex 命令相当简单,只需按@:。

  注意事项

  •  : 寄存器总是保存着最后推行的一声令下行命令。在运作过贰回@:
    后,前面就足以用@@ 命令来重新它。

技巧21

visual模式下
o 切换高亮选区的活动端

范围

  好多 Ex 命令能够用[range]
内定要操作的范围。大家能够用行号、地方标志或许查找情势来钦赐范围的开始位置及善终地点。

  在概念二个[range]时,它连接代表一雨后苦笋接二连三行,不过:global
命令也足以在一名目大多非几次三番行上实行Ex 命令

技巧28

用情势钦赐范围
:/pattern1/,/pattern2/p

用偏移地址查对
:/pattern1/+1,/pattern2/-1p

Ex能够运用的界定表示:

符号    地址
1       文件行号
$       文件最后一行
0       虚拟行,在第1行上面
.       光标所在行
`m      包含位置标记m的所在行
`<      高亮选区的起始行
`>      高亮选取的结束行
%       整个文件

用地点钦点范围

  指的正是地点的{address}。

  地址类型如下

符号 地址
0 虚拟行,位于文件第一行上方。
n 文件的第n行
$ 文件的最后一行
. 光标所在的那一行
‘m 包含位置标记m 的行
% 整个文件(:1,$ 的简写形式)

  注意事项:

  • 第0
    行在文书中并不诚实存在,但它看成叁个地址,在好几特定情景下会很有用处。特别是,在把钦命范围内的行复制或位移到文件起头时,可以用它做:copy{address}
    及:move {address} 命令的最后3个参数。

  • 众多场所下不写[range]气象是暗中认可当前行

  • :{start},{end}表示3个更广的限量。当中{start}和{end}都表示{address}。比如:.,$表示近期行到文件尾。

  特殊情况:

  • 一经输入一条只包括数字的Ex
    命令,那么 Vim
    会把那个数字分析成一个地方,并把光标移动到该数字所钦定的行上。比如:三跳到第三行。

  

技巧29

:t:copy等效

用高亮选区钦命范围

  当高亮当选后,按下:时,就会接触选定范围。此时在Ex
命令会展现”:'<,’>”。

  '<,表示高亮当选的开首,’>表示高亮当选的最后。

技巧30

:'<,'>normal . 对高亮选区的每壹行,实践.命令
:%normal A; 整个文件全体行最终增多;

用方式内定范围

  Vim 也承受以格局作为一条 Ex 命令的地方。
:/{pattern一}/,/{pattern2}/。

  例如:

  伟德国际1946 4

  那几个范围看起来相比复杂,但实则它适合范围的貌似情势:{start},{end}。在本例中,{start}
地址是格局/<html>/,而{end}
地址是/<\/html>/。换句话说,那个限制由<html>
开标签所在的行开端,到对应闭标签所在的行结。  

  在此例中,用地点:二,5也得以赚取同等的结果,并且那种代表方法更简明,可是它也更不可信赖。用情势钦命范围的话,大家的下令总是对全体<html></html>
范围拓展操作,无论那些限制涵盖多少行都没难题。

  

技巧31

@: 重复试行Ex命令

用偏移对地点进行校勘范围

  接着上边的例子,借使大家想对位于<html></html>之间的每1行都运作一条
Ex 命令,可是不想包括<html> 及</html>
标签所在的行,那么此时偏移量就有大用了。

  伟德国际1946 5

  偏移的相似情势是那样的:”:{addr}+n”。

  {addr}
能够是一个{address} 或是三个招来形式。能够+n,也得以减-1。”+”表示向下偏移,”-“表示发展偏移

技巧33

Ex命令下
<C-r><C-w> 将光标所在单词插入Ex命令行

:%s//<C-r><C-w>/g 将在此以前的轮换为光标处单词

q/ 张开查找命令历史的命令行窗口
q: 张开Ex命令历史的命令行窗口
<C-f> 从命令行格局切换成命令行窗口

动作

技巧34

write | !python % 保存并行使python试行该公文

复制

  语法::[range]t{address}  t==(t|copy|co)

  例如:

伟德国际1946 6

  注意事项:

  • 在上表中,也足以将yyp
    变化一下来复制我们想要的行,但好歹,那都急需有的外加的移位动作。大家得先跳到想复制的行上(陆G),复制该行(yy),快速跳回原来的职位(<C-o>),然后再用粘贴命令(p)创设三个别本。不言而喻,在复制距离较远的行时,:t
    命令经常尤其快速。

技巧39

:on[ly]<C-w>o 只保留活动窗口,关闭别的窗口

<C-w>= 使全数窗口等宽、等高
<C-w>_ 最大化活动窗口的莫大
<C-w>| 最大化活动窗口的幅度
[N]<C-w>_ 把移动窗口的中度设为[N]行
[N]<C-w>| 把运动窗口的冲天设为[N]行

移动

  语法::[range]m[ove]{address}

  使用方法同复制格外像,就不但作解释了。

技巧40

:tabe[dit]{filename} 新标签页中开垦{filename}
<C-w>T 把当下窗口移到3个新标签页
:tabc[lose] 关闭当前标签页及内部装有的窗口
:tabo[nly] 只保留活动标签页,关闭别的标签页

显示

  想把相称到东西展现出来的时候能够选拔那么些动作。

  语法::[range]p[rint]     

技巧44

:!mkdir -p %:h 成立当前文件的目录
:w !sudo tee % > /dev/null 未有root权限期候,强行保存文件

连接

  把公文连接成壹行的时候能够运用这么些动作。

  语法::[range]j[oin]

技巧53

`` 当前文件中上次跳转动作之前的位置
`. 上次修改的地方
`^ 上次插入的地方
`[ 上次修改或复制的起始位置
`] 上次修改或复制的结束位置
`< 上次高亮选区的起始位置
`> 上次高亮选区的结束位置

删除

  语法::[range]d[elete][x]      

  能够把删除的内容放到寄存器x里。

技巧54

<C-o><C-i> 跳转和过往跳转

  读取文本到当下缓存

  语法1:[range]r[ead]  !{cmd}  那里的{cmd}指的是外表的通令

  语法2:[range]r[ead]  {filename}  那里的{filename}指的是文件名称

  注意事项:

  • 这里的[range]如要是三个范围的话,只会取最终的岗位

技巧56(待完善)

g;g, 反向或正向遍历更动列表
gi 急迅退回去之前的insert格局的地点

  把当前的缓存写到别的位置

  那里的{filename}指的是文件名称

  语法如下

命令 用途
:[range]w[rite]  {filename} 把范围的文本写到指定的文件里。如果文件存在,不能直接覆盖
:[range]w[rite]!  {filename} 把范围的文本写到指定的文件里。如果文件存在,直接覆盖
:[range]w[rite]  >> 把范围的文本追加到当前文件尾。不过在窗口不会刷新出来。
:[range]w[rite]  >> {filename} 把范围的文本追加指定的文件尾。
:[range]w[rite]  !{cmd} 把范围文本当作标准输入文本调用命令

  注意事项:

  • 假诺未有[range]和{filename},约等于覆盖当前文件

技巧57

或然需求安装内定文件的扩充名设置
gf 赶快跳到光标文件

normal

  在壹多种再而三行上施行一条普通形式命令。此命令在与.
命令或宏结合使用时,大家只需开销很少的不竭就能完毕大气重复性职责。

  语法::[range]normal {commands}   

  注意事项

  • {commands}是平日格局的通令

  例如

#想给所有行添加注释

#使用normal
:% normal I#

#使用替换
:%s /^/#/g

技巧58

m{letter} {letter}如若是大写的话,正是全局标志。

global

  结合了Ex 命令与Vim
的情势相配那两上面力量。凭借该命令,大家得以在某些钦定形式的全数相称行上运行Ex
命令。就处理重复职业的频率来讲,global
命令是除点范式以及宏之外,最为强劲的Vim 工具之1。

  语法::[range] global[!] /{pattern}/ [cmd]

  注意事项

  • 在缺省气象下,:global
    命令的功用范围是总体文件(%),那或多或少与任何大许多Ex 命令(包含:delete、:substitute
    以及:normal)有所差异,这么些命令的缺省范围仅为当前行(.)。

  • 反选使用:vglobal
    或简写的:v。想对不相配的内容操作的时候,能够应用那个命令。比如不匹配的百分百刨除::v/{pattern}/d

  • :print 是:global 命令的缺省[cmd]

技巧60

"" 无名寄存器
"0 复制专用寄存器
"+ 系统剪贴板
"* 采用专用寄存器
"= 表明式寄存器

查找

  语法:(/|?){pattern}

技巧64

@@ 回放宏

方向

  • 以/初叶的,向后寻觅
  • 以?开始的,向前查找

技巧74

运用正则表明式查找,就用形式按键\v,使用原义查找文本,就用原义按钮\V。
/\v<(\w+)\_s+\1> 相配重复单词的正则表明式
<>用以相称单词的边界,\_s相称空白符也许换行符,\1相称第三个( )

重新查找

  • n     继续万分的来头寻觅
  • N     取相反的大方向找出

技巧76

/\v<the> 用来合作单词the

关门高亮功用的快速键

  :noh <CTiggo>
纵然能够禁止使用查找高亮成效,但大家在键盘操作上也费用了数不清武功。通过创办映射项,能够让大家加速操作。

  例如:

  nnoremap <silent> <C-l>
:<C-u>nohlsearch<CR><C-l>

  <C-l> 经常用于破除相提并论绘显示器(参:h CTEscortL-L
)。而新的映射项,是在本来基础之上扩展了暂时关闭查找高亮的功效。

  那几个用起来很带感哈。

技巧77(待完善)

在进行查找前预览第一处相配  

  每一次搜寻的时候一定到第3处相配的职位。按esc的时候回来原来的地点。

  开启语法::incsearch

  能够用来检查是不是存在1处相配。

  例如

  假设我们只想确认单词“carrot”是否在当前文档中出现,却不想移动光标,该怎么办呢?
  当‘incsearch’选项被启用时,我们只需简单地调出查找提示符,并尽可能多地输入组成单词“carrot”的字符,直到该单词首次映入我们的眼帘。
  一旦找到该单词,我们只需按下<Esc> ,即可马上结束查找并返回原位,从而避免打断我们的思维。

 

技巧78(待完善)

依照预览结果对查找域自动补全

  此法会用当下预览的相称结果对查找域举行机动补全。单词长的时候特意好用!!力荐

  语法:<C-r><C-w> 

  例如

#文本里有一个单词like。

#查找步骤
/li
<C-r><C-W>
#此时会显示/like

 

技巧83

/lang/e<CR> 匹配lang光标定位到终极

将光标偏移到搜索相称的尾声

  会把光标定位到寻觅相配的字符的末梢地点。假使不加的话会放在开始地点。

  语法:/{pattern}/e

  注意事项

  • 此处的”/”能够换到”?”,然而七个”/”,都不能够不换。就好像这么:?{pattern}?e

技巧89

:%s/content/copy/gc 引进标识位c之后,每趟替换都会有提示。
y 确认替换
n 忽略替换
q 退出替换
l 替换后退出
a 替换此后持有
<C-e> 向上滚动荧屏
<C-y> 向下滚动荧屏

追寻当前选中的文本

  可以通过寄存器来落到实处。

  步骤如下:

  1. 用visual方式选中要搜求的文件
  2. 下一场利用y复制到寄存器””里。
  3. 最后输入/<C-r>”<C凯雷德>

技巧90(待完善)

替换

  语法::[range]s[ubstitute]/{pattern}/{string}/[flags]

技巧91(待研究)

:%s//<C-r>0/g 将寄存器0贴出来
:%s//\=@0/g
\=将指令Vim实践一段表达式脚本,@0回去复制专用寄存器内容,@"再次来到无名寄存器内容

起用上次的追寻形式

  施行substitute
命令日常包涵八个步骤:壹是写作查找格局,2是布署适合的轮换字符串。由此,一分为2的工夫让大家清除了那两项职分的耦合性,这才是关键所在。

  将substitute 命令的查找域留空,意味着Vim
将会引用上次的找寻形式。我们能够使用那一特色精简单办监护人进度。

  例如

# 看看这个庞大的substitute 命令吧
:%s/\v'(([^']|'\w)+)'/“\1”/g

#它等价于以下两条单独的命令:
/\v'(([^']|'\w)+)'
:%s//“\1”/g

# 在我们撰写复杂的正则表达式过程中,通常需要尝试多次才能达到正确的匹配效果。
# 如果打算通过执行substitute 命令的方式来验证模式的话,每次执行命令都会改变文档的内容,这样做简直太麻烦了。
# 与之形成鲜明对比的是,当执行查找命令时,文档不会被修改。因此,即使我们犯的错误再多也无所谓


# 请注意,这个一般用于复杂的匹配。。如果很简单的匹配,就不要这么弄了。这个简单因人对正则的熟练度。
# 比如,5,10行加注释,这个简单一句话就可以解决了。
:5,10s/^/#/g

 

技巧92(待完善)

用寄存器的内容替换

  输入入<C-r>{register},大家可以将寄存器的剧情插入到命令行 

技巧93

/\v^([^,]*),([^,]*),([^,]*)$
:%s//\3,\2,\1

标记

  {flags}。不相同的标识影响替换的行事。

  具体效果如下

字符 行为
& 保持上一个替换的标记
c 需要进行确认
e 如果有错误,不提示错误信息。暂时没有找到比较不错的场景
g 作用于全部匹配的内容
i 忽略大小写字母敏感
I 大小写字母敏感
n 统计计数,不执行替换内容。
p 打印出最后一次匹配的内容。如果有设置显示行号,则显示,没有设置则不显示行号
# 打印出最后一次匹配的内容,并且显示行号。
l 打印出最后一次匹配的内容,但是打印的内容和:list一致。按我理解是多打印出逃逸字符

   技巧:

  总结当前情势的相配个数   

/{pattern}                #这个就是我们要统计的模式
:%s///gn           #抑止执行

技巧94(待完善)

:g/re/d 删除全体相配行
:v/re/d 保留全数相配行

模式

  即{pattern}。

  让我们先把眼光集中在使得它们运转的主旨上,即Vim
的寻觅引擎。你是否业已想过Vim
的正则表明式是如何是好事的?只怕哪些关掉它们?

  Vim
的正则表明式引擎可能与你惯用的其它斯特林发动机有所不一致。大家将会看到,最易混淆的差异可被very
magic 形式按钮轻巧化解。

技巧100(待完善)

伟德国际1946,大小写敏感

  一般暗中同意的是高低写敏感的。假若须要强制,在字符串前边加上标记就能够。

  • \c(小写c),表示大小写不敏感
  • \C(大写c),表示大小写敏感

  例如

#查找单词"word",大小写不敏感
/word\c
#查找单词"word",大小写敏感
/word\C

#把单词“word"替换为"me",大小写不敏感
:%s/word\c/me/g
#把单词“word"替换为"me",大小写敏感
:%s/word\C/me/g

 

vim的正则

  与Perl 相比较,Vim 正则表明式的语法风格更近乎POSIX。

  然而,通过使用very magic 方式按键,就足以让Vim
选用大家更为熟稔的正则表达式语法了。

  缺省使用的是magic情势。通过\v(小写v)能够选拔very
magic方式。通过\V(大写v)可以very nomagic模式。

例如

#假设我们要构造一个正则表达式,用于匹配以下CSS 片段中的每一组颜色代码:
body { color: #3c3c3c; }
a { color: #0000EE; }
strong { color: #000; }

#用magic 搜索模式查找十六进制颜色代码
/#\([0-9a-fA-F]\{6}\|[0-9a-fA-F]\{3}\)

#用very magic 搜索模式查找十六进制颜色代码
/\v#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})

#用十六进制字符类进一步优化模式
/\v#(\x{6}|\x{3})

 

  注意事项

  • 在此例中,magic方式大家用到了③类括号。方括号缺省具备特别含义,因而不用转义。圆括号会按原义相配字符(及),由此需求转义,使其兼具优异意义。花括号也同样要求转义,可是,大家只需为开括号转义,而与之相应的闭括号则不用,因为Vim
    会预计大家的意向。圆括号的气象有所差别,无论开闭括号都必须转义。

magic模式

  方式会自动为1些额外的标记赋予特殊意义,例如:. 、*
以及方括号。magic格局的统一筹划初衷,是想能更易于地布局简单的正则表明式,但它却没能为诸如
+、?、圆括号以及花括号等标识赋予特殊含义,这几个标识还必须透过转义才有所万分含义。

nomagic模式

  临时还不是很通晓???

very magic模式  

  按键正好弥补了那一点,除了
_、数字以及字母外,它为具备符号都给以了异样意义。那样1来,既好记又正好与Perl
正则表明式的规则保持一致。

very nomagic模式

  在正则表明式中利用的特殊字符,在按形式搜索时用起来很顺手,但假若我们想按原义查找文本时,它们就成为了掣肘。使用very
nomagic 原义按键,可防止除附加在 .、* 以及? 等大多数字符上的尤其意义。

  例如:

#文本内容
The N key searches backward...
...the \v pattern switch (a.k.a. very magic search)...

#现在假设我们想通过查找“a.k.a.”(此缩写表示also known as)的方式将光标移到
该处。针对这种情况,第一反应就是执行以下这条查找命令:
/a.k.a.

#实质上我们需要这么才能得到效果
/a\.k\.a\.<CR>

#或者,我们可以使用原义开关\V,激活very nomagic 搜索模式:
/ \Va.k.a.

 

  注意事项

  • 用作通用法则,借使你想按正则表明式查找,就用格局开关\v,而只要您想按原义查找文本,就用原义开关\V。那个要尤其注意

特殊字符

  在两种方式的编辑时,特殊字符比较易于混淆。

  二种情势的特殊字符对应列表如下:

magic nomagic very magic very nomagic 匹配内容
$ $ $ $ 行尾
. . \. \. 任何字符
* * \* \* 任何个数
() \(\) \(\) \(\)
| \| \| \| 分隔符
\a \a \a \a 字母表的字符
\\ \\ \\ \\ 反斜杠
\. \. . . 字符点
\{ { { { 字符{
a a a a 字符a

  

合营和高亮 

  当我们谈谈多个方式的时候,指的是在查找域输入的正则说明式(可能按原义相称的文本);而同盟,是指在文书档案中被高亮展现的公文(假诺已经启用’hlsearch’选项)。相称和高亮是两件事。

  有那样个东东,不过一时没觉着有怎么着用处,试了瞬间近期没体会到使用气象。

  语法:

  • /zs  高亮起始
  • /ze  高亮结果

运行Shell 命令

  大家不要离开 Vim
就能方便地调用外部程序。更棒的是,大家还足以把缓冲区的内容作为专业输入发送给1个外部命令,或是把外部命令的行业内部输出导入到缓冲区里。

  在 Vim 中操作时,大家能很方便地调用shell
命令。下表选拔了最有效的有的调用外部命令的秘诀

命令 用途
:shell 启动一个shell (输入exit 返回Vim)
:!{cmd} 在shell 中执行{cmd}
:read !{cmd} 在shell 中执行{cmd} ,并把其标准输出插入到光标下方
:[range]write !{cmd} 在shell 中执行{cmd} ,以[range] 作为其标准输入。这个暂时还没试明白?
:[range]!{filter} 使用外部程序{filter} 过滤指定的[range]

  运转shell命令1共有如下三种档次

3回性外部

  适用于实行2遍性命令。

  语法::!{cmd} 

交互

  适用于想在 shell 中实施几条命令。

  语法::shell

  注意事项

  • 想要退出的时候,输入exit,就可以回到vim

应用外部命令过滤缓冲区内容

  语法::[range]!{filter}

  例如

#把当前文本排序一下

:% !sort

 

把命令的正规输出重定向到缓冲区  

  语法::[range]read !{cmd}

  例如

#文件开头插入当前时间

:0r !date

 

  注意事项

  • 借使未有[range],则插入到方今光标地方
  • 如果有[range],以range后边的协作的限定行为准