vim操作技巧

 我来答
科创17
2022-07-24 · TA获得超过5914个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:176万
展开全部
不知不觉使用vim已经有一些时间了,也算得上真正掌握使用技巧了吧。想不起来当初为什么去学习这个编辑器,也不记得怎么学会使用编辑文件,只记得当初按完所有的键盘按键都没有退出vim。一颗种子要经过多少风雨才能长成参天大树,一条小溪要经过多少高山河流才能汇入大海。我们平常学习一样东西,要经过多少困难,多少挫折,只有自己最清楚。

普通编辑器都可以直接打开文件进行编辑、保存、使用快捷键等等,vim也具备这些功能,但是有些功能要在特定模式下才能使用。也是因为这些模式,让vim学习路线变得特别比较陡峭。vim具有多种模式,每种模式都有特定功能,有时你需要某些功能时,特意切换到指定模式下操作。使用键盘就可以随意切换模式,让vim不依赖鼠标操作,使用最小化组合键的操作,编辑效率大大提高。

这个模式主要功能,可以使用移动命令,扩大高亮的文本区域。输入命令将直接作用于选中文本区域。这就相当于你用鼠标选中一段文本区域,可以使用可以使用命令进行,复制、剪切、修改操作,但是vim并不需要鼠标。

这个模式要在可视模式下才能进入,可以直接使用退格键或者空格键删除选中文本区域,或者直接输入新的文本,替换选中高亮区域进入插入模式。

平常在使用vim主要是在普通模式、插入模式、可视模式、命令模式进行操作,掌握这里基本就可以熟悉使用vim了。

掌握这些快捷键,移动光标得时候,手机基本不会离开核心键盘区,有没有像 w , a , s , d 移动角色的感觉🙂。

要想编写文本内容,还必须在插入模式下进行操作,以下命令由普通模式进入到插入模式

d 删除字符(delete), d 本身没有任何涵义,但是它可以跟其他命令组合,完成一些快速操作。

<font size=5>操作符 + 动作命令 = 操作</font>

d<span style="color:red;">{motion}</span> 命令可以对一个字符 dl 、一个完整单词 daw 或
一整个段落 dap 进行操作,它作用的范围由动作命令决
定。c<span style="color:red;">{motion}</span>、y<span style="color:red;">{motion}</span> 以及其他一些命令也类似,它们被统称为操作符(operator)。

<center>Vim的操作符命令</center>

看着上面删除操作,是不是很容易理解操作符 + 动作命令 的模式,比如我们已经知道 daw 删除整个单词, gU 反转大写,我们就可以使用 gUaw 反转整个单词, gUap 反转整个段落大写

由于vim中copy快捷键已经被change修改占用了,只能使用 y 代表复制(yank),粘贴(put)使用 p , d 其实是将内容剪切到寄存器中,剪切实现删除操作。 ddp 看起来是将两行位置互换,其实先剪切当前行到寄存器中, p 粘贴到光标下的位置。主要记住使用命令 y + 动作指令 或者 d + 动作指令,都是将文本暂存到寄存器中,使用 p 或者 P 进行粘贴。进行一个小demo练习,将变量field替换下面的函数参数foo。

思路: 先使用 yw 复制field字段,下移动foo中, dw 删除foo, P 粘贴。但是你会发现粘贴结构居然还是foo。这是因为 dw 将删除文本放入寄存器中,覆盖了上面copy的变量。我们平常复制,剪切的文本都会暂存再无名寄存器中。

在vim中的删除、复制、粘贴都是使用寄存器,可以使用 "{registerName} 方式命名寄存器。平时我们使用 dd , yy 命令,不指名寄存器名称默认使用无名寄存器。倘若没有指定要使用的寄存器,Vim将缺省使用无名寄存器,它可以用双引号表示(参见 :h quote_quote )。无名寄存器可以使用 "" 表示,比如 ""yy 相当于 yy , ""p 相当于 p

"[0-9]表示数字寄存器,数字越小表示最早在寄存器内容。例如 "0 表示第一个进入寄存器文本, "1 表示第二个进入寄存器内容,类似值栈结构,先进后出排列。可以使用 :reg 查看寄存器中内容。

在win系统中,可以在任意地方Ctrl c复制文本,vim是否可以粘贴非vim中复制内容?当然是可以的。 "+ 表示系统寄存器,可以读取系统vim之外的系统粘贴板中的内容,可以粘贴内容,复制到系统粘贴板中去。ubuntu上需要安装vim-gnome,才可以正常使用系统寄存器。

使用粘贴命令前面+寄存器名称,就可以直接使用专用寄存器中的内容了,例如 "+p 直接粘贴系统剪贴板中的内容。

在插入模式使用 <Ctrl r> + 寄存器名称粘贴字符文本。例如可以使用 <Ctrl r>" 粘贴无名寄存器中内容。

本文章有部分内容参考 《vim实用技巧第2版》 ,有兴趣的同学可以买一个本来看看,真的很不错哦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式