vim学习选取多行(转)
在可视化模式下,可以对一个文本块的整体进行操作。例如,首先高亮选中一部分文本,然后用d命令删除这个文本块。可视化模式的好处在于,你可以在做改动之前,就看到操作将影响的文本。可视化模式可以分为以下三种:
- 用
v
命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。 - 用
V
命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。 - 用
ctrl-V
进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。(注意:在Windows中,ctrl-V
可能已经被影射为粘贴操作,可以使用ctrl-Q
进入块可视化模式。)
切换可视化模式
通过输入相应的可视化命令,就可以切换到不同的可视化模式。例如现在字符可视化模式下,如果想要切换到块可视化模式,那么只需要输入ctrl-V即可。当然,我们也可以先用ESC关闭当前的可视化模式,然后再进入其它可视化模式。
在可视化模式下选择
使用命令v
进入字符可视化模式。在此模式下,用命令移动光标,光标起始位置和当前位置之间的文本将会以高亮显示。这时就可以对这些高亮显示的文本进行整体的操作。例如:在字符可视化模式中,首先用6l
命令选中光标右侧的6个字符,然后输入d
命令删除高亮显示的文本。
使用命令V
进入行可视化模式。在此模式下,我们使用2j
命令,就可以选中当前行及其随后2行。
使用命令ctrl-Q
进入块可视化模式。在此模式下,我们使用2l
命令向右移动,然后使用3j
命令向下移动,就可以选中4行2列的文本块。
命令gv
可以重复前一次可视化模式时选中的文本。如果已经在可视化模式下,执行该命令会选中前一次选择的文本。如果重复行执gv命令,就会在当前选中的文本和前一次选中的文本之间进行切换。
在可视化模式下移动
如果你已经在可视化模式下选择了若干文本,并且希望移动到已选择文本的另一结尾处,那么可以使用o
命令。
如果你使用的是块可视化模式,那么已选择的区域将有四个角落。o
命令只能移动到对面的一个角落,这时你可以使用O
命令移动到同一行的另一个角落。
在可视化模式下编辑
在可视化模式下,我们可以进行各种编辑操作。如d
命令可以删除高亮显示的文本,而D
命令则会删除一行,即使这一行中只有部分文本是高亮显示的。类似的,y
命令将复制高亮显示的文本,而Y
命令会复制整行。c
命令可以将高亮显示的文本删除并进入编辑模式,而C
命令会删除一行文本并进入编辑状态。
针对高亮显示的文本块,我们可以用命令~
进行大小写转换。
用命令>
增加缩进,或用命令<
减少缩进。
我们还可以利用可视化模式,来合并多行文本。J
命令可以将高亮显示的文本内容合并为一行,同时以空格来分隔各行。如果不希望在行间插入空格,那么可以使用gJ
命令。
使用g?
命令,可以使用rot 13算法来加密高亮显示的文本。针对同一个文本再次执行加密命令,就可以进行文本解密。
在可视化模式下,按下:键就可以对选定范围进行操作。例如:我们先在可视化模式下选中文本,然后执行:write block.txt
命令,就可以将文本块写入另一文件中。选择多行,然后执行:sort
命令,则可以对选中的文本进行排序。
如果想要查看可视化相关的帮助信息,可以在所希望帮助的名称前加v_前缀。例如使用:help v_d
命令,可以得到关于在可视模式下进行删除操作的帮助信息。
退出可视化模式
当我们想要退出可视化模式时,可以按ESC键或ctrl+c键。
命令小结
v |
进入字符可视化模式 (移动一次选择一个字符) |
V |
进入行可视化模式 |
ctrl-V |
进入块可视化模式 |
ctrl-Q |
|
gv |
选中前一次可视化模式时选择的文本 |
o |
光标移动到选中文本的另一结尾 |
O |
光标移动到选中文本的另一角落 |
vim学习选取多行(转)的更多相关文章
- VIM学习1
不得不说鸟哥的Linux写得太好了,VIM篇章,通读一篇,感觉收获挺大.之前几年前装逼硬着学,感觉硬是没懂,看的特晕,学得特别慢,抄一两遍也没什么多大的作用.这一回看了,感觉马上就能记住不少,当然大多 ...
- Linux学习系列之Linux入门(二)Vim学习
第二篇 Vim学习 主要内容: 基本命令: 插件扩展: 参考资料: vim是一个命令控制的文本编辑器,可以完成几乎我们想要做的所有工作,除了Emacs几乎没有其他的工具能和它匹敌.官方网站是:http ...
- vim 学习相关记录
VIM 相关内容****************** vim 的三个模式: 编辑模式 --> 输入模式 --> 末行模式 编辑模式: 通常键入键盘值被理解成一个操作; 如: dd(删除行) ...
- vim学习、各类插件配置与安装
vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...
- VIM学习二: VIM配置代码及效果图
vim学习及插件 参见:http://www.cnblogs.com/caixu/p/6337926.html .vimrc配置 "***************************** ...
- vim学习之改头换面(基础配置)
还记得在线有个维护博客园的学长说过,这网站的前端做的贼丑,今日一看果真如此.其实我想说毕竟干货多,没有那么多花花肠子.下面开始进入正题. 在入坑了sublime.vscode.atom.notepad ...
- vim学习、各类插件配置与安装【转】
转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...
- Linux之Vim学习
Linux之Vim学习 一般模式 光标移动 按键 作用 j或down方向键 向下移动一个字符 k或up方向键 向上移动一个字符 h或left方向键 向左移动一个字符 l或right方向键 向右移动一个 ...
- Vim 学习指南
作者:耀耀 出处:http://www.linuxeden.com/html/news/20130820/142667.html Vim 学习指南 来源:开源中国社区 作者:耀耀 关注我们: 你想 ...
随机推荐
- [ukulele]入门指南
不少尤克里里初学者在开始学习尤克里里的时候,都会进行尤克里里教程搜索,还有不少新手会问“尤克里里和吉他的区别”“尤克里里好学吗”“尤克里里和弦有哪些”等问题.今天,国际知名乐器品牌Gorilla歌芮拉 ...
- jquery 给表格tbody t 加事件
jquery给所有td加事件 $('#erji_list_table').on('click','td', function(){ $('#yuan_content').slideToggle(&qu ...
- Okra框架(二) 搭建Socket服务器
本文将介绍使用Okra框架帮助开发者快速搭建高性能应用程序Socket服务端. 博主接触的网络游戏(包含但不限于网页, 手机)的服务端通信使用的协议基本上就Socket,Http或是WebSocket ...
- -/bin/sh: /usr/bin/xxx: not found”
运行/usr/bin/helloworld命 令是提示“-/bin/sh: /usr/bin/helloworld: not found”,一开始我以为是helloworld没有运行权限,不过我给了它 ...
- Spring.Net框架三:使用Spring.Net框架实现多数据库
在前面的两篇文章中简单介绍了Spring.Net和如何搭建Spring.Net的环境,在本篇文章中将使用Spring.Net实现多数据库的切换. 一.建立一个空白的解决方案,名称为“SpringDot ...
- JavaScript匿名类整理学习笔记
以下为总结在开源的JavaScript框架中能看到很多这样语法结构(function(){})()比如我最近看的jQuery,及chediter.刚开始的时候我看到这样的结果有点奇怪,它是怎么执行的, ...
- qtcreator 中文乱码
qt输入法不能用,ui中不能显示中文,开发板不能显示中文,这几个一直困扰这我,网上查找资料,在代码中添加各种支持,都没有解决问题.今天刚好解决了,记录于此. 参考链接 http://blog.163. ...
- OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言,使页面更简洁;
OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言,使页面更简洁: 支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能 ...
- linux -- ubuntuserver 安装图形界面
安装Gnome桌面 1.安装全部桌面环境,其实Ubuntu系列桌面实际上有几种桌面应用程序,包括Ubuntu-desktop.Kubunut-desktop和Xubuntu- desktop. 我们就 ...
- openstacksdk resource2 打印__dict__
在一个继承resource2的实体里,打印self.__dict__结果是: {'_body': <openstack.resource2._ComponentManager object at ...