欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

vim 寄存器 操作_vim指令

发布时间:2023/12/4 编程问答 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 vim 寄存器 操作_vim指令 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

Vim 中常用的名词

方位名词表

基于字符的移动:

h:左j:下k:上l:右 ^ | k 提示: h 的键位于左边,每次按下就会向左移动。 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标签" 一对双引号 " "' 一对单号 ' '` 一对 ` `

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

Header1

Paragraph1

光标在Header1的位置,使用dit会把Header1删除,dat会把

Header1

删除。

组合性语法

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

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

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

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

Id Name Cuteness01 Puppy Very02 Kitten Ok03 Bunny Ok

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

快捷设置

文件中移动

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

:set relativenumber number

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

总结

以上是生活随笔为你收集整理的vim 寄存器 操作_vim指令的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。