不知不觉使用vim已经有一些时间了,也算得上真正掌握使用技巧了吧。想不起来当初为什么去学习这个编辑器,也不记得怎么学会使用编辑文件,只记得当初按完所有的键盘按键都没有退出vim。一颗种子要经过多少风雨才能长成参天大树,一条小溪要经过多少高山河流才能汇入大海。我们平常学习一样东西,要经过多少困难,多少挫折,只有自己最清楚。

vim模式

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

普通模式

使用vim打开文件,进入普通模式,也是vim默认模式。在这个模式下,可以移动光标,复制、剪切、粘贴、删除文件,在这个模式下输入按键全部都是命令快捷键。比如你想进行复制操作,yy 复制当前行,p 粘贴光标下面,dw 删除一个单词。使用a 切换到插入模式,还有其他的快捷键也能做到,: 切换到命令模式,Ctrl + v 进入选择模式。

插入模式

左下角显示-- insert --,表明vim正处于插入模式。这个模式会读取键盘输入,显示在屏幕内,大部分编辑器打开就处于插入模式。使用Esc 可以重新进入普通模式,但是输入字符不会保存到文件中。

可视模式

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

选择模式

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

命令模式

在普通模式下输入: ,被解析成命令模式,:后面接命令,回车直接执行命令。例如上图,:q回车直接退出vim编辑器。一般退出vim,需要在命令模式下输入:wq,保持退出。

Ex模式

在普通模式使用Q 命令进入ex模式,这和命令行模式比较相似,在使用":visual"命令离开Ex模式前,可以一次执行多条命令。这个命令自己使用得很少,只是从google上知道这些。

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

vim命令快捷键

全局移动

h 向左移动 ←

j 向下移动 ↓

k 向上移动 ↑

l 向右移动 →

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

gg 快速移动到开头

G 快速移动文本结尾

Ctrl - f 向下翻页 即 PageDown 翻页

Ctrl - b 向上翻页 即 PageUp 翻页

命令模式:n 移动指定行数n

行内移动

w 或者 W 移动到下一个单词(word)

b 或者 B 移动到上一个单词

e 移动下一个单词结尾

^ 移动到当前行第一个非空字符

0 移动到行首

$ 移动到行尾

f{char} 在行内正向查找char字符,光标会移动到目标char上

F{char} 在行内反向查找char字符,光标会移动到目标char上

; 在行内正向重复搜索char字符,同上

, 在行内搜索上个一个char字符,反向搜索,同上

进入插入模式

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

i 进入插入模式,在当前光标下输入

o 在当前光标下面新建空白行插入字符

a 在光标后台插入字符(append)

A 在行尾插入,a$ => A

I 在行首插入, i^ => I

O 在光标上面新建空白行插入

s 删除当前光标字符,进入插入模式

删除

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

x 删除当前字符

dd 删除当前行

dw 从光标开始删除整个单词(delete word)

db 从光标往前删除到一个字符,反向移动删除,如果

dbx 反向删除整个单词

d$ 从当前位置删除到行结尾

d^ 反向删除到行开头

ndd n 表示删除行数,2dd 删除两行

ddn 同上

了解vim操作

Vim的强大很大程

度上源自操作符与动作命令相结合。在本节,我们将看到它是如何工作的,并考虑其寓义 --vim实用技巧第2版

操作符 + 动作命令 = 操作

d{motion} 命令可以对一个字符dl、一个完整单词daw或

一整个段落dap进行操作,它作用的范围由动作命令决

定。c{motion}、y{motion} 以及其他一些命令也类似,它们被统称为操作符(operator)。

Vim的操作符命令

命令

用途

c

修改(change)

d

删除(delete)

y

复制到寄存器

g~

反转大小写

gu

反转小写

gU

反转大写

>

增加缩进

<

减小缩进

=

自动缩进

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

学会举一反三

ea 在单词后面插入

cw 修改整个单词

c$ 修改从光标到行尾的内容

c^ 修改从光标到行首的内容

yw 复制从光标开始到词尾的字符

y^ 复制从光标到行首的内容

y$ 复制从光标到行尾的内容

nyy 复制n行

vim复制剪切操作

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

let field = method();

fun(foo)

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

认识无名寄存器

在vim不使用单一寄存器进行复制、剪切、粘贴,而是为这些操作提供多组寄存器。当使用删除、复制与粘贴命令时,可以明确指定它们中的某一个进行操作。

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

数字寄存器

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

比如上面的例子我们可以使用"0P 粘贴field 变量,就不害怕被覆盖的情况。

系统寄存器

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

粘贴

p 将寄存器中的文本粘贴到光标之后

P 将寄存器中的文本粘贴到光标之前

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

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

本文章有部分内容参考 《vim实用技巧第2版》,有兴趣的同学可以买一个本来看看,真的很不错哦!

vim 寄存器 操作_vim操作技巧相关推荐

  1. vim查找关键字_vim常用命令及操作

    [1]光标移动 h 光标左移,同 <Left> 键 j 光标下移,同 <Down> 键 k 光标上移,同 <Up> 键 l 光标上移,同 <Up> 键& ...

  2. 防止人为误操作MySQL数据库技巧一例

    防止人为误操作MySQL数据库技巧一例 (本题来自老男孩培训内部学生问题,属于数据库安全技巧) 在若干年前,老男孩亲自遇到一个"命案",老大登录数据库update一个记录,结果忘了 ...

  3. linux修改vim配色,更改vim配色的具体操作 更改vim配色的图文教程

    有的用户还不会更改vim配色?下文就是小编给大家分享的更改vim配色的图文教程,一起来看看吧,希望对你们有所帮助哦. 一.查看系统中的配色方案 启动 Linux(示例版本为 CentOS 6.6),进 ...

  4. PHP操作Redis常用技巧

    From: http://www.php.cn/php-weizijiaocheng-395387.html 这篇文章主要介绍了PHP操作Redis常用技巧,结合实例形式总结分析了php针对redis ...

  5. 办公软件操作(小技巧1)

    办公软件操作 (小技巧1) (真实体验,大神请自动忽略本博客) 一:Excel表 1.快捷键: ctrl+a 选中表有数据的区域 ctrl+c 复制选中数据区域 ctrl+x 剪切数据区域 ctrl+ ...

  6. 5800日常操作使用小技巧

    5800日常操作使用小技巧 2011年03月13日 S60机器的软件一般安装与删除方法 [1].为了顺利安装所有S60第三版机型适用的软件:在"工具"--"程序管理&qu ...

  7. vim php 关键词高亮,vim的高亮查找操作

    使用了VIM这么久,却一直无法牢记一些基本的操作指令.今天查找一个关键字时,想不起来怎么查找"下一个",于是google之并解决,顺便把有用的都贴过来罢. 查找指令: /xxx 往 ...

  8. 机动车c1科三考试语言灯光,科目三考试灯光操作,学会技巧不用死记硬背!

    原标题:科目三考试灯光操作,学会技巧不用死记硬背! 随着人们生活水平的提高,也越来越多的把考驾照作为热门,但是很多人在科目三考试灯光操作上跌倒,有很多人没有起步就直接挂科,真的很可惜,挂就挂在灯光上面 ...

  9. Notepad++选中行操作 快捷键 使用技巧

    Notepad++选中行操作 快捷键 使用技巧 用Notepad++写代码,要是有一些重复的代码想copy一下,还真不容易,又得动用鼠标,巨烦人.... 有木有简单的方法呢,确实还是有的不过也不算太好 ...

最新文章

  1. ccc计算机比赛如何报名,整理:加拿大的CCC是什么,怎么报名?
  2. runfile python_python文件执行路径问题
  3. pycharm中安装可以贴图片的Markdown插件
  4. twisted系列教程十五–测试twisted代码
  5. crm创建启用停用用户
  6. Bartender 让Mac选项列不再拥挤
  7. 自然辩证法2018版_(完整word版)2018年《自然辩证法概论》已整理
  8. RGB颜色过度,数值转颜色
  9. 斗鱼弹幕服务器第三方接入协议v1.6.2,.NET斗鱼直播弹幕客户端(上)
  10. CRM和SCRM,到底有什么区别?
  11. 2.2.7 虚拟Ethernet以太网卡
  12. kafka2.2源码分析之KafkaChannel
  13. 东拉西扯01世界的沧海桑田
  14. Activity简单几步支持向右滑动返回
  15. JDBC数据库连接测试工具
  16. 如何查看主机名和IP地址
  17. 如何修改Android应用程序的图标和名字
  18. Arcgis中怎么进行遥感影像的标准分幅
  19. 为什么很多公司都不招大龄码农?
  20. ElasticSearch6.5.4三中文以及拼音的搜索

热门文章

  1. html网页加减乘除代码,html+js实现简单的计算器代码(加减乘除)
  2. 江西自考 计算机及应用,江西自考专科本科计算机抵免政策解读
  3. Vue项目报错:sockjs.js?9be2:1603 GET http://10.179.116.126:8080/sockjs-node/info?t=166442
  4. 强大好用的图片编辑效果实现,支持涂鸦、编辑、马赛克,可撤销和恢复
  5. python能不能开发安卓app_Python能开发安卓APP吗?使用python开发网站的学习路线是怎样的?...
  6. Unity3D键盘输入被输入法屏蔽
  7. hle机器人_cuvee选出奶妈上单!HLE以2-1击败SKT,haru奥拉夫成神了
  8. python大鱼吃小鱼_写简单游戏,学编程语言-python篇:大鱼吃小鱼
  9. Cytoskeleton / 艾美捷——泛素化亲和珠
  10. 抖音直播聊天窗口如何关闭,抖音直播间看不到弹幕