搜索
写经验 领红包
 > 育儿

liux的vim使用教程(vim指令操作大全)

导语:vim指令

vim 是一个基于【动词】 + 【名词】 建立的语法表。

Vim 中常用的名词

方位名词表

基于字符的移动:

h:左j:下k:上l:右         ^         |         k          提示: h 的键位于左边,每次按下就会向左移动。    <- h    l ->           l 的键位于右边,每次按下就会向右移动。         j         |             j 键看起来很象一支尖端方向朝下的箭头。         v

基于单词(a-zA-Z0-9_)的移动:

w     移到下一个英文类单词的开头e     移到下一个英文类单词的末尾b     移到前一个英文类单词的开头ge    移到前一个英文类单词的末尾

这里的英文类单词是基于a-zA-Z0-9_这类英文的单词,如果我们希望基于其他语言带空格分割我们可以用大写代替:

W     移到下一个单词的开头E     移到下一个单词的末尾B     移到前一个单词的开头gE    移到前一个单词的末尾

基于行(sentence)的移动:

0     移动到当前行的第一个字符;^     移动到当前行中的第一个非空字符;g_    移动到当前行的最后一个非空白字符;$     移动到当前行的最后一个字符;n|    移动到当前行的第 n 列。G     移动光标到文档尾行

Vim 中常见的动词(操作符)
y    复制文本d    删除文本,并保存到寄存器c    删除文本,保存到寄存器,并开启「插入」模式

操作符可以和名词进行组合,即操作符+名词,比如:

y$ 把当前位置到当前行最后一个字符进行复制dw 从当前位置删除到下一个单词的开头y2h 向左复制两个字符

特殊的,操作符也可以通过两次来执行行操作,比如:yy表示复制当前整行内容。

文本对象

Vim有一种用文本对象捕获这种结构的方法。文本对象与运算符一起使用。有两种类型的文本对象:

i + 文本对象    文本对象内部a + 文本对象    包含外部的文本对象

文本对象列表:

w         一个单词p         一个段落s         一个句子( or )    一对小括号 ( ){ or }    一对大括号 { }[ or ]    一对中括号 [ ]< or >    一对尖括号 < >t         XML标签&34; &39;         一对单号 &39;`         一对 ` `

i(表示 () 内部的文本,di( 表示删除 () 内部的内容;da(则表示连同括号和里面的内容一起删除。dit表示删除一个XML标签,例如:

<div>  <h1>Header1</h1>  <p>Paragraph1</p></div>

光标在Header1的位置,使用dit会把Header1删除,dat会把 <h1>Header1</h1> 删除。

组合性语法

在 Vim 中可以组合较简单的命令执行复杂的命令。当 Vim 与外部程序集成时,可组合性的真正威力就显露出来了。

假如你有一个非常混乱的文本,如下所示,你想把它变成列表形式:

Id|Name|Cuteness01|Puppy|Very02|Kitten|Ok03|Bunny|Ok

可以用终端 column 命令组合 Vim 命令完成,运行!}column -t -s &34;,即可得到:

Id  Name    Cuteness01  Puppy   Very02  Kitten  Ok03  Bunny   Ok

上述的操作过程可分解成这样:动词为!(过滤操作符),名词为}(转到下一段)。过滤器操作符!接受另一个参数,一个终端命令column -t -s &34;。

快捷设置文件中移动

为了方便使用相对行可以设置:

:set relativenumber number

同时开启相对行和真实行,这样就知道自己在哪个相对的行了,例如:2j向下移动两行

本文内容由快快网络小德整理编辑!