(大数据工程师学习路径)第二步 Vim编辑器----高级功能入门
一、多文件编辑
1.使用vim编辑多个文件
编辑多个文件有两种形式,一种是在进入vim前使用的参数就是多个文件。另一种就是进入vim后再编辑其他的文件。 同时创建两个新文件并编辑
$ vim 1.txt 2.txt
默认进入1.txt文件的编辑界面
- 命令行模式下输入
:n编辑2.txt文件,可以加!即:n!强制切换,之前一个文件的输入没有保存,仅仅切换到另一个文件 - 命令行模式下输入
:N编辑1.txt文件,可以加!即:N!强制切换,之前文件内的输入没有保存,仅仅是切换到另一个文件
2.进入vim后打开新文件
- 命令行模式下输入
:e 3.txt打开新文件3.txt - 命令行模式下输入
:e#回到前一个文件 - 命令行模式下输入
:ls可以列出以前编辑过的文档 - 命令行模式下输入
:b 2.txt(或者编号)可以直接进入文件2.txt编辑 - 命令行模式下输入
:bd 2.txt(或者编号)可以删除以前编辑过的列表中的文件项目 - 命令行模式下输入
:e! 4.txt,新打开文件4.txt,放弃正在编辑的文件 - 命令行模式下输入
:f显示正在编辑的文件名 - 命令行模式下输入
:f new.txt,改变正在编辑的文件名字为new.txt
3.恢复文件
如果因为断电等原因造成文档没有保存,可以采用恢复方式,vim -r进入文档后,输入:ewcover 1.txt来恢复
$ vim -r 1.txt
二、可视模式
1.可视模式命令简介
- 在普通模式下输入
v(小写),进入字符选择模式,就可以移动光标,光标走过的地方就会选取。再次按下v会后就会取消选取。 - 在普通模式下输入
Shift+v(小写),进入行选择模式,按下V之后就会把整行选取,您可以上下移动光标选更多的行,同样,再按一次Shift+v就可以取消选取。 - 在普通模式下输入
Ctrl+v(小写),这是区域选择模式,可以进行矩形区域选择,再按一次Ctrl+v取消选取。 - 在普通模式下输入
d删除选取区域内容 - 在普通模式下输入
y复制选取区域内容
2.可视模式命令练习
拷贝练习文件到当前目录
$ cp /etc/protocols .
打开练习文件
$ vim protocols
- 在普通模式下
9G跳转到第9行,输入Shift+v(小写V),进入可视模式进行行选择,选中5行,按下>>缩进,将5行整体缩进一个shiftwidth - 在普通模式下输入
Ctrl+v(小写v),进入可视模式进行矩形区域选择,选中第一列字符然后x删除整列

三、视窗操作
1.视窗操作简介
vim可以在一个界面里打开多个窗口进行编辑,这些编辑窗口称为vim的视窗。 打开方法有很多种,例如可以使用在命令行模式下输入:new 打开一个新的vim视窗,并进入视窗编辑一个新文件(普通模式下输入Ctrl+w也可以,但是Ctrl+w在chrome下会与chrome关闭标签页的快捷键冲突,所以使用该快捷键你可以在IE或其它浏览器进行练习),除了:new命令,下述列举的多种方法也可以在命令模式或普通模式下打开新的视窗:
- 命令行模式下输入
:sp 1.txt打开新的横向视窗来编辑1.txt - 命令行模式下输入
:vsp 2.txt打开新的纵向视窗来编辑1.txt - 普通模式下
Ctrl-w s将当前窗口分割成两个水平的窗口 - 普通模式下
Ctrl-w v将当前窗口分割成两个垂直的窗口 - 普通模式下
Ctrl-w q即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q! - 普通模式下
Ctrl-w o打开一个视窗并且隐藏之前的所有视窗 - 普通模式下
Ctrl-w j移至下面视窗 - 普通模式下
Ctrl-w k移至上面视窗 - 普通模式下
Ctrl-w h移至左边视窗 - 普通模式下
Ctrl-w l移至右边视窗 - 普通模式下
Ctrl-w J将当前视窗移至下面 - 普通模式下
Ctrl-w K将当前视窗移至上面 - 普通模式下
Ctrl-w H将当前视窗移至左边 - 普通模式下
Ctrl-w L将当前视窗移至右边 - 普通模式下
Ctrl-w -减小视窗的高度 - 普通模式下
Ctrl-w +增加视窗的高度
2.视窗操作练习
打开练习文件
$ vim 1.txt
- 命令行模式下输入
:new打开一个新的vim视窗 - 命令行模式下输入
:sp 2.txt打开新的横向视窗来编辑2.txt - 命令行模式下输入
:vsp 3.txt打开新的横向视窗来编辑3.txt - 如果使用非chrome浏览器可以使用
Ctrl+w进行视窗间的跳转 - 分别在不同视窗的命令行模式下输入
:q!退出多视窗编辑

四、文档加密
1.创建加密文档
$ vim -x file1
输入您的密码 确认密码 这样在下一次打开时,vim就会要求你输入密码
五、在vim执行外部命令
在命令行模式中输入!可以执行外部的shell命令
:!ls用于显示当前目录的内容:!rm FILENAME用于删除名为 FILENAME 的文件:w FILENAME可将当前 VIM 中正在编辑的文件另存为 FILENAME 文件
六、帮助系统
1.vim中的查看帮助
- 普通模式下按
F1打开vim自己预设的帮助文档 - 命令行模式下输入
:h shiftwidth打开名为shiftwidth的帮助文件 - 命令行模式下输入
:ver显示版本及参数
七、功能设定
1.vim的功能设定
可以在编辑文件的时候进行功能设定,如命令行模式下输入:set nu(显示行数),设定值退出vim后不会保存。要永久保存配置需要修改vim配置文件。 vim的配置文件~/.vimrc,可以打开文件进行修改,不过务必小心不要影响vim正常使用
2.获取目前的设定
- 命令行模式下输入
:set或者:se显示所有修改过的配置 - 命令行模式下输入
:set all显示所有的设定值 - 命令行模式下输入
:set option?显示option的设定值 - 命令行模式下输入
:set nooption取消当期设定值
3.set功能的说明
- 命令行模式下输入
:set autoindent(ai)设置自动缩进 - 命令行模式下输入
:set autowrite(aw)设置自动存档,默认未打开 - 命令行模式下输入
:set background=dark或light,设置背景风格 - 命令行模式下输入
:set backup(bk)设置自动备份,默认未打开 - 命令行模式下输入
: set cindent(cin)设置C语言风格缩进
更多详细参数请参考vim手册
(大数据工程师学习路径)第二步 Vim编辑器----高级功能入门的更多相关文章
- (大数据工程师学习路径)第一步 Linux 基础入门----正则表达式基础
介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----目录结构及文件基本操作
Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----基本概念及操作
本节联练习主要有: 1.环境介绍 2.常用 Shell 命令及快捷键 3.Linux 使用小技巧 一.Linux 桌面环境介绍 相对于现在的 Windows 系统,UNIX/Linux 本身是没有图形 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----环境变量与文件查找
环境变量与文件查找 本节介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----Linux 下软件安装
介绍 介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用. 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----命令执行顺序控制与管道
介绍 顺序执行.选择执行.管道.cut 命令.grep 命令.wc 命令.sort 命令等,高效率使用 Linux 的技巧. 一.命令执行顺序的控制 1.顺序执行多条命令 通常情况下,我们每次只能在终 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----文件系统操作与磁盘管理
介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理
用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----数据流重定向
介绍 开始对重定向这个概念感到些许陌生,但通过前面的课程中多次见过>或>>操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中.这其实就是重定向,将原本输出到标准输出的数 ...
随机推荐
- MySQL在大数据Limit使用
它已被用于Oracle一世.但今天,很惊讶,MySQL在对数量级的性能,甚至差距如此之大不同的顺序相同的功能. 看看表ibmng(id,title,info) 只要 id key 指数title ...
- 很久没来这里,今天的评测java怪东西,左右Date类和时间戳转换
在发展过程中,经常会遇到利用上课时间.说话的Date类就不得不提时间戳,左右fr=aladdin" target="_blank">的定义大家能够看看网上对时间戳的 ...
- 什么是“Bash”破绽?
摘要:近来的linux系统出现"Bash"漏洞可以被认为是第一个互联网造成安全讨论和思考.错的资料. 什么是"Bash"漏洞?它是怎样工作的?它是否可以成为新的 ...
- linux挂载U盘,及乱码问题解决
1. 首先使用切换到root用户. 2. 使用fdisk -l命令查看磁盘信息,找到u盘(能够依据显示的大小确定) 3. 在/mnt下创建挂载点,比如创建usb目录:mkdir /mnt/usb 4. ...
- cocos2dx --- Widget 载入中 CCNode
如果说. Widget 有addChild() 与 addNode() 两个方法. 如今我要载入一个粒子特效进去,下图: Widget* layout = dynamic_cast<Wid ...
- solr与.net课程(七)solr主从复制
既然solr是解决大量数据全文索引的方案,因为高并发的问题,我们就要考虑solr的负载均衡了,solr提供很easy的主从复制的配置方法,那么以下我们就来配置一下solr的主从复制 如果我们在192. ...
- Oracle Applications Multiple Organizations Access Control for Custom Code
档 ID 420787.1 White Paper Oracle Applications Multiple Organizations Access Control for Custom Code ...
- poj2112 Optimal Milking --- 最大流量,二分法
nx一个挤奶器,ny奶牛,每个挤奶罐为最m奶牛使用. 现在给nx+ny在矩阵之间的距离.要求使所有奶牛挤奶到挤奶正在旅程,最小的个体奶牛步行距离的最大值. 始感觉这个类似二分图匹配,不同之处在于挤奶器 ...
- 【solr这四个主题】大约VelocityResponseWriter
一个.大约Velocity基本配置 在Solr在,可以以多种方式返回搜索结果,作为一个简单的文字回复(XML.JSON.CSV等待),能够返回velocity.js等格式.而VelocityRespo ...
- Jedis连接
Jedis连接 到场api中的jedis.我们能够发现,jedis类提供了4个构造方法.都可用于连接: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29 ...