『学了就忘』vim编辑器基础 — 97、vim使用技巧
vim
使用技巧,就是vim
编辑器中复杂一点的常用操作。
1、在vim中导入其他文件内容或命令结果
(1)导入其他文件内容
在末行模式中执行命令::r 文件名(绝对路径)
可以把其他文件的内容导入到光标所在位置。
(2)在vim中执行系统命令
:!命令
:在vim
中执行系统命令。
这里只是在vim
中执行系统命令,但并不把系统命令的结果写入到文件中(不影响vim
正在编辑的文档内容)。主要用于在文件编辑中,需要查看系统信息,如时间等。
vim
的命令模式执行::!date
会显示系统命令执行的结果:
请按ENTER(回车键)或其它键就可以回到文档编辑中页面。
但是我们最常用的方式是再打开一个终端,执行系统命令,更为方便。
(3)导入命令结果
执行命令::r !命令
在vim
中执行系统命令,并把命令结果导入光标所在行。
2、设定快捷键
vim
编辑器允许自定义快捷键。
自定义快捷键::map 快捷键 快捷键执行的命令
。
常用的自定义快捷键如下:
:map ^P I#<ESC>
:按ctrlt+p
时,在行首加入注释(在行首加一个#
)^P
意思为ctrlt+p
。I
表示有命令模式转换到输入模式,光标移动到行首。I#<ESC>
表示光标移动到行首,输入#
,然后执行ESC键(返回命令模式)。
:map ^B ^x
:按ctrlt+b
时,删除行首第一个字母(有注释的行,则为删除注释)。^
表示光标移动到行首。x
表示命令模式的删除操作。
注意:
^P
快捷键不能手工直接输入,需要执行ctrl+V+P
组合键来定义,或者先按ctrl+V
,(松开后)然后再按ctrl+P
。^B
快捷键也是一样。ESC
可以直接手工输入。
以上设置的是临时生效,一旦Linux系统重启,设置消失。
如果需要永久生效,需要写入vim
编辑器的配置文件,位置在~/.vimrc
。
vim
编辑器设定快捷键一般情况下用的很少。
3、字符替换
在vim
编辑中,有时候需要频繁输入某一个长字符串(比如邮箱),这时使用字符串替换,能增加输入效率。
执行命令字符替换::ab 源字符 替换为字符
例如:
当输入mymail
时,转变为邮箱(输入mymail
后按空格后转变)。
:ab mymail xxxxxxxxxx@163.com
注意:“源字符”不应设置的太短,否则有可能影响输入(和本中不应替换的字符重叠,就非常麻烦了)。
同样也是临时生效,需要永久生效,需要写入vim
编辑器的配置文件中,同上。
4、多文件打开
在vim
中可以同时打开两个文件,执行如下命令:
[root@localhost ~]# vim -o abc(文件) bcd(文件)
[root@localhost ~]# vim -O abc bcd
说明:
#-o
:小写。会上下分屏打开两个文件。#-O
:大写。会左右分屏打开两个文件。
这样可以同时打开两个文件,方便操作。
如果是-o
(小写)上下打开两个文件,可以通过先按ctrl+w
,(松开)再按“上下箭头”的方式在两个文件之间切换。(就可以进行复制粘贴等常规操作了)
如果是-O
(大写)左右打开两个文件,可以通过先按ctrlt+w
,(松开)再按“左右箭头”的方式在两个文件之间切换。(同上)
退出时,依次执行:wq
退出即可,需执行两次。
『学了就忘』vim编辑器基础 — 97、vim使用技巧的更多相关文章
- 『学了就忘』vim编辑器基础 — 96、末行模式中的相关命令
目录 1.在文档中显示行号 2.是否显示文档内容相关颜色 3.是否将查找的字符串高亮显示 4.是否显示右下角的状态栏 5.是否在左下角显示如"--INSERT--"之类的状态栏 6 ...
- 『学了就忘』Linux权限管理 — 56、不可改变位权限(chattr)
目录 1.命令格式 2.查看文件系统属性chattr权限 3.示例 文件系统属性chattr权限,也叫不可改变位权限,该权限没有风险,但是他能限制root用户. 1.命令格式 [root@localh ...
- 『学了就忘』vim编辑器基础 — 94、vim编辑器介绍
目录 1.vim编辑器简介 2.vim的工作模式 (1)命令模式 (2)输入模式 (3)最后行模式(末行模式) 1.vim编辑器简介 vim是一个全屏幕纯文本(绘个表格或者插个图片就不要想了)编辑器, ...
- 『学了就忘』vim编辑器基础 — 95、命令模式中的相关命令
目录 1.移动光标操作 2.删除或剪切操作 3.复制操作 4.撤销操作 5.替换操作 6.补充一个知识点 命令模式中的命令主要取代的是Linux系统中鼠标的操作. vim编辑器的快捷键一般都集中在命令 ...
- 『学了就忘』Linux用户管理 — 52、用户组管理相关命令
目录 1.添加用户组 2.删除用户组 3.把用户添加进组或从组中删除 4.有效组(了解) 1.添加用户组 添加用户组的命令是groupadd. 命令格式如下: [root@localhost ~]# ...
- 『学了就忘』Linux权限管理 — 54、sudo授权
目录 1.什么是sudo授权 2. sudo授权说明 3.sudo命令的使用 示例1 示例2 示例3 1.什么是sudo授权 在Linux系统中,/sbin/和/usr/sbin/两个目录中的命令只有 ...
- 『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤
目录 1.手工建立一个5GB的分区 2.建立需要做限制的三个用户 3.在分区上开启磁盘配额功能 4.建立磁盘配额的配置文件 5.开始设置用户和组的配额限制 6.启动和关闭配额 7.磁盘配额的查询 8. ...
- 『学了就忘』Linux系统定时任务 — 89、任务调度工具anacron
目录 1.任务调度工具anacron介绍 2.新旧版本Linux中anacron工具的区别 3./etc/cron.{daily,weekly,monthly}目录说明 4.anacron命令 5./ ...
- 『学了就忘』Linux日志管理 — 90、Linux中日志介绍
目录 1.日志相关服务 2.系统中常见的日志文件 1.日志相关服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.RedHat认为syslogd已经不能满足在工 ...
随机推荐
- 使用dumi生成react组件库文档并发布到github pages
周末两天玩了下号称西湖区东半球最牛逼的react文档站点生成工具dumi,顺带结合github pages生成了react-uni-comps文档站, 一套弄下来,感觉真香,现在还只是浅尝,高级的特性 ...
- C/C++ Qt 数据库与TreeView组件绑定
在上一篇博文<C/C++ Qt 数据库QSql增删改查组件应用>介绍了Qt中如何使用SQL操作函数,并实现了对数据库的增删改查等基本功能,从本篇开始将实现数据库与View组件的绑定,通过数 ...
- 日常Java 2021/10/12
封装 在面向对象程式设计方法中,封装是指-种将抽象性函式接口的实现细节部分包装.隐藏起来的方法 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问 要访问该类的代码和数据,必 ...
- A Child's History of England.44
At this period of his reign, when his troubles seemed so few and his prospects so bright, those dome ...
- HDFS【Namenode、SecondaryNamenode、Datanode】
目录 一. NameNode和SecondaryNameNode 1.NN和2NN 工作机制 2. NN和2NN中的fsimage.edits分析 3.checkpoint设置 4.namenode故 ...
- 【Linux】【Shell】【Basic】函数
1. 函数:function,把一段独立功能的代码当作一个整体,并为之一个名字:命名的代码段,此即为函数: 注意:定义函数的代码段不会自动执行,在调用时执行:所谓调用函数,在代码中给定函数名即可: 函 ...
- 阿里云esc 安装 docker
1. 更新 yum 到最新: yum update (用 root 用户登录,无需加 sudo,如果不是,需要加,即 yum update ) 2. 安装软件包:yum-util(提供 yum-co ...
- Pycharm, 添加requirements.txt
引用:https://www.jetbrains.com/help/pycharm/managing-dependencies.html 1) 2) 3)
- C#中继承和多态
1.继承的概念 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用已存在的类的功能. 为了提高软件模块的可复用性和可扩充性,以便提高软件的开发效率,我们总 ...
- react原理分析--this.state修改引起的重新渲染
整理向,非原创,目的是整理出浅显易懂的方向性说明. 比如现有 this.state={name:"小明",age:18} 我们说修改组件的状态要用this.setState()来实 ...