Linux:Vim
模式介绍:
Vim具备6种基本模式和5中派生模式。
普通模式
启动后的默认模式,用于:移动光标、删除文本等待,常用命令:
- dd:删除当前行。
- [number]dd:连续执行number对应次数的dd命令,如:2dd等于连续执行两次dd。
- d[移动命令]:删除当前行到移动命令移动范围之间的所有行,如:dj等于2dd。
按a(append)或i(insert)进入插入模式。
插入模式
键盘的输入会向文本缓冲区中插入文本。按ESC键回到普通模式。
可视模式
为了便于选择文本,Vim引入了可视模式。在普通模式下按v进入可视模式。该模式下移动命 令会扩大高亮的文本区域。当执行一个非移动命令时,命令会被作用到这块高亮的文本区域 上,然后Vim回到普通模式。
选择模式
命令模式
执行命令(:键)、搜索(/和?键)、过滤(!),执行命令后,Vim返回命令模式之前的模 式,通常是普通模式。
Ex模式
进入Vim
vim note.txt
如果先使用vim,然后进入命令模式输入:: note.txt,同样可以打开相应的文件。
光标移动
- h 左
- l 右
- j 下
- k 上
- w 下一个单词
- b 上一个单词
进入插入模式
- i 在光标处进行编辑
- I 在行首进行编辑
- a 在光标后进行编辑
- A 在行尾进行编辑
- o 在当前行后插入一个新行
- O 在当前行前插入一个新行
- cw 替换从光标到一个单词结尾的字符
退出Vim
- q!:强制退出,不保存。
- q:退出
- wq!:强制保存并退出
- w [文件路径]: 另存为
- saveas 文件路径:另存为
- x:保存并退出
- wq:保存并退出
- SHIFT+zz:保存并退出
普通模式下删除文本
- x:删除游标所在字符
- X:删除游标所在前一个字符
Delete:同x
dd:删除正行
dw:删除一个单词(不适用中文)
d$或D:删除至行尾
d^:删除至行首
dG:删除至文档结尾处
dgg:删除至文档首部
Vim重复命令
- 在普通模式下,.表示重复上一次的命令操作。
- 在普通模式下,N[command],N表示重复后面的命令的次数。
游标的快速跳转
- gg:跳转到第一行
- G:跳转到最后一行
- nG:跳转到第n行,如果没有显示行号,先使用:set nu显示行号。
- CTRL+o:跳转到之前的位置
- w:跳转到下一个单词的开头
- e:跳转到下一个单词的结尾
- b:跳转到前一个单词的开头
- ge:跳转到前一个单词的结尾
- ^:跳转到行头
- $:跳转到行尾
- f[字母]:向后搜索字母并跳转到第一个匹配的位置
- F[字母]:向前搜素字母并跳转到第一个匹配的位置
复制、粘贴、剪切
普通模式中使用y复制,yy表示复制所在的行,3yy表示复制3行,y后面可以跟随光标移动命 令,代表复制的范围,如:y^、yw、y2w、yG等。
普通模式中p粘贴,p代表粘贴在吧、光标后,P代表粘贴在光标前。
dd删除命令就是剪切。
替换
- r + [待替换字符]:将游标所在字符替换为指定字符
- R:连续替换,直到按下ESC。
- cc:替换整行,即:删除游标所在行,进入插入模式。
- C:替换游标以后至行尾
- c + [移动命令]:替换移动命令包含的文本,即:删除移动命令包含的文本,进入插入模 式。
- ~:翻转游标所在字符的大小写
撤销
- u + n:撤销一次或n次
- U:撤销当前行的所有修改
- CTRL + r:撤销undo的操作
调整文本位置
:向右缩进
- <<:向左缩进
- 进入命令模式输入shiftwidth值可以控制缩进字符数
搜索
- / + 搜索内容:正向搜索
- ? + 搜索内容:反向搜索
- n:继续查找
- N:反向继续查找
- *:正向搜索光标处的单词
- #:反向搜索光标处的单词
多文件编辑
可以使用vim同时打开多个文件,在使用:n编辑下一个文件,使用:n!强制切换下一个文件。 使用:N编辑前一个文件,使用:N!强制编辑前一个文件。
打开新文件的方式有:
- :e file:打开指定文件
- :e#:回到前一个文件
- :e! file:打卡指定的文件,放弃正在编辑的文件的修改。
- :ls:列出之前编辑过的文件
- :f:显示正在编辑的文件名
- :f file:重命名在编辑的文件名字
- :b file:可以直接进入文件编辑
可视模式
在普通模式下输入v、SHIFT+v、CTRL+v进入选择模式,再按同样的键退出选择模式。输入d 删除选择区的内容,输入y复制选择区的内容。
多视窗
- sp file 新建横向视图
- vsp file 新建纵向视图
- ctrl+w+s 将当前视图分割成两个横向的视图
- ctrl+w+v 将当前视图分割成两个纵向的视图
- ctrl+w+q 关闭当前视图
- ctrl+w+o 打开一个视图并关闭之前的所有视图
Linux:Vim的更多相关文章
- Linux : Vim 使用与配置 (附 GitHub 自动化配置脚本)
由于经常使用 vim 编辑配置文件,有时候也会进行使用vim 编写一些脚本和c/c++ 程序,所以配置一个常用的 vim 是很是必要的.这篇博文主要是记录vim使用和配置相关的一些知识点. 关于vim ...
- Linux:VIM编辑器的使用
打开vim编辑器 命令格式: vim 文件路径 vim编辑器的工作模式 进入编辑器后 默认为命令模式 进入输入模式 a 在光标后插入 o 换行插入 i 在光标前插入 返回命令模式 esc 键 进入末行 ...
- Linux :vim 模式下的常用命令
[参考文章]:vim 复制一整行 复制多行 1. 查找命令 ?text 查找text,按n健查找下一个,按N健查找前一个 /text 反向查找text,按n健查找下一个,按N健查找前一个 ...
- Linux:VIM简单入手
现在的Linux系统一般都会默认安装VIM编辑器,如果没有安装VIM编辑器,也默认一定会有VI编辑器,VI编辑器产生的时间比鼠标来的更早,虽然功能很强大,但我建议安装VIM工具,安装了VIM之后,VI ...
- linux:vim中全选复制
全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v : 是进入V ...
- Linux:vim环境设置
vim环境设置 vim的环境设置在/etc/vimrc的这个文件中,不过不建议直接修改该配置文件.但是可以修改~/.vimrc文件,默认是不存在的,要手动创建并写入设置值. set hlsearch ...
- linux命令学习之:vim
1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtu ...
- 吴裕雄--天生自然Linux操作系统:Linux vi/vim
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- Linux:Day6(下) vim编辑器
vim编辑器 简介: vi:Visual Interface,文本编辑器 文本:ASCII,Unicode 文本编辑种类: 行编辑器:sed 全屏编辑器:nano,vi VIM - Vi IMprov ...
随机推荐
- ADAS技术应用
ADAS技术应用: LDW:Lane Departure Warning 车道偏离警告VD: Vihicle Detection 车辆检测FCW: Front Collision Warning 前向 ...
- supervisor 配置
1. 生成配置文件$ echo_supervisord_conf > /etc/supervisord.conf 2.修改配置文件vi /etc/supervisord.conf找到[inclu ...
- .NET高级工程师面试题之SQL篇
1 题目 这确实是一个真实的面试题,琢磨一下吧!知识不用,就会丢掉,我太依赖各种框架和dll了,已经忘记了最基本的东西.有多久没有写过SQL了,我已经不记得了. 已知表信息如下: Department ...
- Maven-3.2.2安装配置
(1)安装JDK,这里是1.7.0_51 (2)Maven-3.2.2下载地址:http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.2/binaries/ ...
- 我所了解的 京东、携程、eBay、小米 的 OpenStack 云
参加过几次 OpenStack meetup 活动,听过这几家公司的Architect 讲他们公司的 OpenStack产品.本文试着凭借影响加网络搜索,按照自己的理解,对这些公司的 OpenStac ...
- php 处理别人直接丢过来的json字符串
如果 json校验成功 出现莫名其妙的不能decode 就看下转义 最好是直接使用php定界符eof来赋值字符串
- 第三十六章 metrics(4)- metrics-graphite
将metrics report给graphite(carbon-relay) 一.代码 1.pom.xml <!-- metrics-graphite --> <dependency ...
- Java关键字:transient,strictfp和volatile简介
关键字:transient 使用对象:字段 介绍:transient说明一个属性是临时的,不会被序列化. 当对象进行序列化(Serializable)过程时候,有一些属性的状态是瞬时的,这样的对象是无 ...
- Median of Two Sorted Arrays
题目:https://leetcode.com/problems/median-of-two-sorted-arrays/ 算法分析 这道题的目的,是为了从两个有序列中找到合并序列之后的中位数,即两个 ...
- 建立自己的git repository
环境是windows 1.首先安装Git,下载Git安装包,这个google 就好了 2.注册自己的git账号 https://github.com 3.建立仓库 填好名字 最后那个Initializ ...