vim 寄存器 操作_vim操作技巧
不知不觉使用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操作技巧相关推荐
- vim查找关键字_vim常用命令及操作
[1]光标移动 h 光标左移,同 <Left> 键 j 光标下移,同 <Down> 键 k 光标上移,同 <Up> 键 l 光标上移,同 <Up> 键& ...
- 防止人为误操作MySQL数据库技巧一例
防止人为误操作MySQL数据库技巧一例 (本题来自老男孩培训内部学生问题,属于数据库安全技巧) 在若干年前,老男孩亲自遇到一个"命案",老大登录数据库update一个记录,结果忘了 ...
- linux修改vim配色,更改vim配色的具体操作 更改vim配色的图文教程
有的用户还不会更改vim配色?下文就是小编给大家分享的更改vim配色的图文教程,一起来看看吧,希望对你们有所帮助哦. 一.查看系统中的配色方案 启动 Linux(示例版本为 CentOS 6.6),进 ...
- PHP操作Redis常用技巧
From: http://www.php.cn/php-weizijiaocheng-395387.html 这篇文章主要介绍了PHP操作Redis常用技巧,结合实例形式总结分析了php针对redis ...
- 办公软件操作(小技巧1)
办公软件操作 (小技巧1) (真实体验,大神请自动忽略本博客) 一:Excel表 1.快捷键: ctrl+a 选中表有数据的区域 ctrl+c 复制选中数据区域 ctrl+x 剪切数据区域 ctrl+ ...
- 5800日常操作使用小技巧
5800日常操作使用小技巧 2011年03月13日 S60机器的软件一般安装与删除方法 [1].为了顺利安装所有S60第三版机型适用的软件:在"工具"--"程序管理&qu ...
- vim php 关键词高亮,vim的高亮查找操作
使用了VIM这么久,却一直无法牢记一些基本的操作指令.今天查找一个关键字时,想不起来怎么查找"下一个",于是google之并解决,顺便把有用的都贴过来罢. 查找指令: /xxx 往 ...
- 机动车c1科三考试语言灯光,科目三考试灯光操作,学会技巧不用死记硬背!
原标题:科目三考试灯光操作,学会技巧不用死记硬背! 随着人们生活水平的提高,也越来越多的把考驾照作为热门,但是很多人在科目三考试灯光操作上跌倒,有很多人没有起步就直接挂科,真的很可惜,挂就挂在灯光上面 ...
- Notepad++选中行操作 快捷键 使用技巧
Notepad++选中行操作 快捷键 使用技巧 用Notepad++写代码,要是有一些重复的代码想copy一下,还真不容易,又得动用鼠标,巨烦人.... 有木有简单的方法呢,确实还是有的不过也不算太好 ...
最新文章
- ccc计算机比赛如何报名,整理:加拿大的CCC是什么,怎么报名?
- runfile python_python文件执行路径问题
- pycharm中安装可以贴图片的Markdown插件
- twisted系列教程十五–测试twisted代码
- crm创建启用停用用户
- Bartender 让Mac选项列不再拥挤
- 自然辩证法2018版_(完整word版)2018年《自然辩证法概论》已整理
- RGB颜色过度,数值转颜色
- 斗鱼弹幕服务器第三方接入协议v1.6.2,.NET斗鱼直播弹幕客户端(上)
- CRM和SCRM,到底有什么区别?
- 2.2.7 虚拟Ethernet以太网卡
- kafka2.2源码分析之KafkaChannel
- 东拉西扯01世界的沧海桑田
- Activity简单几步支持向右滑动返回
- JDBC数据库连接测试工具
- 如何查看主机名和IP地址
- 如何修改Android应用程序的图标和名字
- Arcgis中怎么进行遥感影像的标准分幅
- 为什么很多公司都不招大龄码农?
- ElasticSearch6.5.4三中文以及拼音的搜索
热门文章
- html网页加减乘除代码,html+js实现简单的计算器代码(加减乘除)
- 江西自考 计算机及应用,江西自考专科本科计算机抵免政策解读
- Vue项目报错:sockjs.js?9be2:1603 GET http://10.179.116.126:8080/sockjs-node/info?t=166442
- 强大好用的图片编辑效果实现,支持涂鸦、编辑、马赛克,可撤销和恢复
- python能不能开发安卓app_Python能开发安卓APP吗?使用python开发网站的学习路线是怎样的?...
- Unity3D键盘输入被输入法屏蔽
- hle机器人_cuvee选出奶妈上单!HLE以2-1击败SKT,haru奥拉夫成神了
- python大鱼吃小鱼_写简单游戏,学编程语言-python篇:大鱼吃小鱼
- Cytoskeleton / 艾美捷——泛素化亲和珠
- 抖音直播聊天窗口如何关闭,抖音直播间看不到弹幕