vim编辑器基本操作小小总结

参考:vim专栏http://blog.csdn.net/column/details/vim-practice.html

环境:rhel-server-7.0-x86_64-dvd

内置教程:命令vimtutor用来打开内置的vim编辑器教程的一个副本供用户学习

说明:本文中的大写字母在实践中是使用Shift+小写字母完成的

疑惑:

 

  • 有的时候输入一个数字m后按Ctrl+Esc(也许是两次Esc)会将这个数字一直循环直到这个数字总共有m个,比如输入9后再按Ctrl+Esc(也许是两次Esc)会出现999999999,不知这是何道理

 

vim编辑器有以下几种工作模式:

1.命令模

用vim编辑器打开文件后(若文件不存在则修改保存后会生成新文件这一点就没必要讲了)vim编辑器便处于命令模式

以插入的方式进入插入模式(在光标之前插入):i或Insert

以附加的方式进入插入模式(在光标之后插入):a

将光标移至行首后进入插入模式(在光标之后插入):I

将光标移至行尾后进入插入模式(在光标之后插入):A

在当前行的下方新打开一行后进入插入模式(在光标之后插入):o

在当前行的上方新打开一行后进入插入模式(在光标之后插入):O

进入替换模式:R

进入Ex模式::

进入基于字符的可视模式:v

进入基于行的可视模式:V

进入基于块的可视模式Ctrl+v

将拖拉(复制)的内容放置(粘贴)在光标处:p

将a寄存器中的内容放置(粘贴)在光标处:"ap

进入搜索模式:(向前搜索):/

进入搜索模式:(向后搜索):?

光标移至下一个匹配项:n

光标移至上一个匹配项:N

光标后退:Ctrl+o或Ctrl+O   但后退过头了会新建一个文件,所以你懂的

光标前进:Ctrl+i或Ctrl+I

光标向左移动一位:h或LeftBackspace

光标向右移动一位:l或Right

光标移至上一个词的开头(不包含标点符号):b

光标移至上一个词的开头(包含标点符号):B

光标移至下一个词的开头(不包含标点符号):w

光标移至下一个词的开头(包含标点符号):W

光标移至本单词或下一个词的末尾(如果光标已经在末尾的话)(包含标点符号):e或E
光标移至上一个空格或换行符之后: Ctrl+ Left
光标移至下一个空格或换行符之后: Ctrl+ Right

光标移至行首:0或^或Home

光标移至行尾:$或End

光标向下移动一行:j或 DownCtrl+n或 Enter

光标向上移动一行:k或Up

光标移至当前或上一句的开头:(

光标移至下一句的开头:)

光标移至当前或上一段落的开头:{

光标移至下一段落的开头:}

光标移至首行:gg

光标移至末行:G

光标移至第n行:nG

转换光标处字符的大小写后将光标移至下一个字符:~

对当前行执行最近一个操作:.

立即向前搜索光标处的词:*

撤销一次:u

撤销到不能撤销(范围只在光标所在行):U

恢复(与撤销相反)一次:Ctrl+r

删除光标处字符:x或Delete

删除光标前字符:X

查找配对的括号()[]{}:%

往前翻一页:PageUpCtrl+Up

往后翻一页:PageDownCtrl+Down

命令模式下特有的一种命令格式:[计数]["寄存器][操作符][动作]

计数:指定动作执行次数的标量

寄存器:vim不是仅提供一个供复制与粘贴使用的剪贴板,而是提供26个常规寄存器(也叫命名寄存器,名字从a到z)和多个特殊用途的寄存器。拥有多个寄存器可以让用户更加高效地执行剪切和粘贴,而不必担心丢失数据或者过多地移动光标。

 

  • 如果未指定要使用的寄存器,则将使用“未命名”寄存器
  • 每次使用命名寄存器时,未命名寄存器也会更新
  • 当使用命名寄存器的大写版本时,被删除或拖拉(复制)的文本将附加到该寄存器,而不是覆盖它
  • 特殊寄存器中,有10个数字编号的寄存器(名字从0到9)。0寄存器始终拥有最近拖拉(复制)的文本的副本,而1寄存器则具有最近删除的文本的副本。当新的文本被更改或删除时,1寄存器的内容将转移到2寄存器中,2寄存器的内容将转移到3寄存器中,以此类推
  • 与命名寄存器不同,数字编号寄存器的内容不会在会话之间保存

 

操作符:按下操作符后vim编辑器进入等待输入动作的状态(p除外,它后面不跟动作),此时可以按Esc退出这种状态

删除操作符:d   按两下删除整行,D表示从光标处删除到行尾

替换操作符(删除(其实是将文本放到了未命名寄存器中)后自动进入到插入模式):c  按两下替换整行,C表示从光标处替换到行尾

替换操作符(直接替换):r   后面跟的动作就是要替换的新字符。另一种选择是进入替换模式

拖拉(复制)操作符:y   按两下复制整行

放置(粘贴)操作符:p   将内容放置(粘贴)于光标后或在当前行的下方另开一行然后放置(粘贴)内容(如果粘贴的是行范围的数据的话),P表示将内容放置(粘贴)于光标前或在当前行的上方方另开一行然后放置(粘贴)内容(如果粘贴的是行范围的数据的话)

动作:通常是控制光标移动的动作,可以附加i前缀或a前缀,分别表示选择inner或a版本的移动

比如:

光标左移两位:2h

从光标处删除到行尾:d$或D

删除光标处的字符(不包含周围的任何空白区)并用被删除的内容覆盖掉a寄存器中的内容:"ax

接上一步,删除光标处的一个词(不包含周围的任何空白区)并将被删除的内容附加到a寄存器中:"Adiw

接上一步,放置(粘贴)a寄存器中的内容到光标处:"ap

将光标处的字符替换为“tt”:2rt

向下拖拉(复制)3行:3yy

向下拖拉(复制)3行并覆盖到t寄存器中:3"tyy

一次放置(粘贴)6遍到光标前面或当前行上方:6P

一次放置(粘贴)6遍s寄存器中的内容到光标前面或当前行上方:6"sP

从光标删除到后三句的开头后自动进入到插入模式:3c)

替换整个当前词,而不是仅仅从光标位置开始,但不包含周围的任何空白区:ciw

替换整个当前词,而不是仅仅从光标位置开始,但包含周围的任何空白区:caw

 

2.插入模式

标尺(最底行)显示--INSERT--。在该模式下,可以正常使用所有字符键与一些控制键

返回命令模式Esc

进入替换模式Insert

光标移至上一个空格或换行符之后:Ctrl+Left

光标移至下一个空格或换行符之后:Ctrl+Right

 

 

 

 

 

3.替换模式

 

标尺(最底行)显示--INSERT--。在该模式下,可以用输入的字符替换光标处字符

返回命令模式Esc

返回插入模式Insert

光标移至上一个空格或换行符之后:Ctrl+Left

光标移至下一个空格或换行符之后:Ctrl+Right

 

4.扩展命令模式(Ex模式)

标尺(最底行)以:开头并等待键入扩展命令,然后通过按Enter键执行命令

取消当前命令或返回命令模式Esc     常见的做法是按两下Esc(或更多下)以确保返回至命令模式。将开头的冒号用Backspace删掉也可以返回命令模式

写入(保存)文件::w

以其他文件名保存当前文件(就是传说中的“另存为”)::w (路径名+)文件名

退出vim编辑器::q

写入(保存)文件并退出vim编辑器::x或:wq

有些情况下需要强制进行操作(比如保存对一个只读文件的修改):

强制写入(保存)文件::w!

其他强制操作也一样,在原来命令的后面加!

查看命令的信息::命令 比如查看set命令的信息::set

查看高亮色设置::highlight

为所有行添加行号::set number或:set nu

取消行号::set nonumber或:set nonu

执行外部命令::!命令   如列出当前目录内容::!ls或:!dir

将外部命令的输出插入到光标处::r !命令

将另一文件中的内容插入到光标处::r (路径名+)文件名

Ex模式下特有的一种用来搜索和替换的命令格式:[range]s/pattern/string/flags

range:可以是行号(42)、行号范围(1,7表示第1-7行)、%(当前文档中的所有行),缺省表示在当前行进行搜索和替换

pattern:被搜索和替换的字符串,支持正则表达式和通配符

string:替换后的新字符串

flags:替换选项

替换一行中多个位置上的pattern:g

使当前搜索区分大小写:i

5.可视模式

标尺(最底行)显示--VISUAL--或--VISUAL LINE--或--VISUAL BLOCK--,分别表示基于字符、基于行和基于块。在该模式下,任何光标移动将选择文本。也可以与搜索模式相结合。

返回命令模式Esc

进入基于字符的可视模式:v   再次按v返回命令模式

进入基于行的可视模式:V   再次按V返回命令模式

进入基于块的可视模式Ctrl+v   再次按Ctrl+v返回命令模式

进入搜索模式:(向前搜索):/

进入搜索模式:(向后搜索):?

按回车后将选中光标处与第一处匹配项之间的文本,之后返回可视模式

删除选中的内容:d

将选中的内容保存到另一不存在的文件中:先按:,最底行会出现:'<,'>,然后输入w (路径名+)文件名,最后Enter

将选中的内容拖拉(复到)后返回到命令模式:y

将选中的内容拖拉(复制)到a寄存器中后返回到命令模式:"ay

6.搜索模式

标尺(最底行)以/(向前搜索)或?(向后搜索)开头并等待键入正则表达式,然后通过按Enter键执行搜索后返回命令模式

返回命令模式Esc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值